tensorflow:: Tensor
#include <tensor.h>Representa uma matriz de valores de dimensão n.
Resumo
Construtores e Destrutores | |
|---|---|
Tensor () Cria um tensor de ponto flutuante unidimensional com 0 elementos. | |
Tensor (DataType type, const TensorShape & shape) | |
Tensor (Allocator *a, DataType type, const TensorShape & shape) Cria um tensor com o type e shape de entrada, usando o alocador a para alocar o buffer subjacente. | |
Tensor (Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr) Cria um tensor com o type e shape de entrada, usando o alocador a e o atributo de alocação especificado para alocar o buffer subjacente. | |
Tensor (DataType type, const TensorShape & shape, TensorBuffer *buf) Cria um tensor com o tipo de dados, formato e buffer de entrada. | |
Tensor (DataType type) Cria um Tensor vazio do tipo de dados fornecido. | |
Tensor (float scalar_value) | |
Tensor (double scalar_value) | |
Tensor (int32 scalar_value) | |
Tensor (uint32 scalar_value) | |
Tensor (uint16 scalar_value) | |
Tensor (uint8 scalar_value) | |
Tensor (int16 scalar_value) | |
Tensor (int8 scalar_value) | |
Tensor (tstring scalar_value) | |
Tensor (complex64 scalar_value) | |
Tensor (complex128 scalar_value) | |
Tensor (int64 scalar_value) | |
Tensor (uint64 scalar_value) | |
Tensor (bool scalar_value) | |
Tensor (qint8 scalar_value) | |
Tensor (quint8 scalar_value) | |
Tensor (qint16 scalar_value) | |
Tensor (quint16 scalar_value) | |
Tensor (qint32 scalar_value) | |
Tensor (bfloat16 scalar_value) | |
Tensor (Eigen::half scalar_value) | |
Tensor (ResourceHandle scalar_value) | |
Tensor (const char *scalar_value) | |
Tensor (const Tensor & other) Construtor de cópia. | |
Tensor ( Tensor && other) Construtor de movimentação. | |
~Tensor () |
Funções públicas | |
|---|---|
AllocatedBytes () const | size_t |
AsProtoField (TensorProto *proto) const | void Preenche o proto com o conteúdo *this tensor. |
AsProtoTensorContent (TensorProto *proto) const | void |
BitcastFrom (const Tensor & other, DataType dtype, const TensorShape & shape) | Copie o outro tensor para este tensor, remodele-o e reinterprete o tipo de dados do buffer. |
CopyFrom (const Tensor & other, const TensorShape & shape) TF_MUST_USE_RESULT | bool Copie o outro tensor para este tensor e remodele-o. |
DebugString (int num_values) const | string Um resumo do tensor em linguagem acessível para humanos, adequado para depuração. |
DebugString () const | string |
DeviceSafeDebugString () const | string |
FillDescription (TensorDescription *description) const | void Preencha o protocolo TensorDescription com metadados sobre o tensor que sejam úteis para monitoramento e depuração. |
FromProto (const TensorProto & other) TF_MUST_USE_RESULT | bool Analise other e construa o tensor. |
FromProto (Allocator *a, const TensorProto & other) TF_MUST_USE_RESULT | bool |
IsAligned () const | bool Retorna verdadeiro se e somente se este tensor estiver alinhado. |
IsInitialized () const | bool Se necessário, este tensor foi inicializado? |
IsSameSize (const Tensor & b) const | bool |
NumElements () const | int64 Acessor prático para o formato do tensor. |
SharesBufferWith (const Tensor & b) const | bool |
Slice (int64 dim0_start, int64 dim0_limit) const | Corte esse tensor ao longo da primeira dimensão. |
SubSlice (int64 index) const | Selecione uma subfatia desse tensor ao longo da primeira dimensão. |
SummarizeValue (int64 max_entries, bool print_v2) const | string Converta os primeiros valores max_entries em *this para uma string. |
TotalBytes () const | size_t Retorna a estimativa do uso de memória deste tensor. |
UnsafeCopyFromInternal (const Tensor & other, DataType dtype, const TensorShape & shape) | void Semelhante ao BitcastFrom, mas o CHECK falha se alguma das pré-condições não for atendida. |
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) | TTypes< T, NDIMS >:: Tensor Retorne os dados do tensor para um Eigen::Tensor com o novo formato especificado em new_sizes e converta para um novo dtype T |
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) const | TTypes< T, NDIMS >::ConstTensor Retorne os dados do tensor para um Eigen::Tensor com o novo formato especificado em new_sizes e converta para um novo dtype T |
bit_casted_tensor () | TTypes< T, NDIMS >:: Tensor Retorna os dados do tensor para um Eigen::Tensor com o mesmo tamanho, mas com uma conversão bit a bit para o tipo de dados T especificado. |
bit_casted_tensor () const | TTypes< T, NDIMS >::ConstTensor Retorna os dados do tensor para um Eigen::Tensor com o mesmo tamanho, mas com uma conversão bit a bit para o tipo de dados T especificado. |
dim_size (int d) const | int64 Acessor prático para o formato do tensor. |
dims () const | int Acessor prático para o formato do tensor. |
dtype () const | DataType Retorna o tipo de dados. |
flat () | TTypes< T >::Flat Retorna os dados do tensor como um Eigen::Tensor do tipo de dados e com um formato especificado. |
flat () const | TTypes< T >::ConstFlat |
flat_inner_dims () | TTypes< T, NDIMS >:: Tensor Retorna os dados como um Eigen::Tensor com dimensões NDIMS, colapsando todas as dimensões do Tensor , exceto a última NDIMS-1, na primeira dimensão do resultado. |
flat_inner_dims () const | TTypes< T, NDIMS >::ConstTensor |
flat_inner_outer_dims (int64 begin) | TTypes< T, NDIMS >:: Tensor |
flat_inner_outer_dims (int64 begin) const | TTypes< T, NDIMS >::ConstTensor |
flat_outer_dims () | TTypes< T, NDIMS >:: Tensor Retorna os dados como um Eigen::Tensor com dimensões NDIMS, colapsando todas as dimensões do Tensor , exceto a primeira NDIMS-1, na última dimensão do resultado. |
flat_outer_dims () const | TTypes< T, NDIMS >::ConstTensor |
matrix () | TTypes< T >::Matrix |
matrix () const | TTypes< T >::ConstMatrix |
operator= (const Tensor & other) | Tensor & Operador de atribuição. Este tensor compartilha o armazenamento subjacente de outros. |
operator= ( Tensor && other) | Tensor & Operador de movimentação. Consulte o construtor de movimentação para obter detalhes. |
reinterpret_last_dimension () | TTypes< T, NDIMS >:: Tensor Retorna os dados do tensor para um Eigen::Tensor com os elementos da última dimensão convertidos em elementos únicos de um tipo maior. |
reinterpret_last_dimension () const | TTypes< T, NDIMS >::ConstTensor Retorna os dados do tensor para um Eigen::Tensor com os elementos da última dimensão convertidos em elementos únicos de um tipo maior. |
scalar () | TTypes< T >::Scalar |
scalar () const | TTypes< T >::ConstScalar |
shape () const | const TensorShape & Retorna o formato do tensor. |
shaped (gtl::ArraySlice< int64 > new_sizes) | TTypes< T, NDIMS >:: Tensor |
shaped (gtl::ArraySlice< int64 > new_sizes) const | TTypes< T, NDIMS >::ConstTensor |
tensor () | TTypes< T, NDIMS >:: Tensor |
tensor () const | TTypes< T, NDIMS >::ConstTensor |
tensor_data () const | StringPiece Retorna um StringPiece que mapeia o buffer do tensor atual. |
unaligned_flat () | TTypes< T >::UnalignedFlat |
unaligned_flat () const | TTypes< T >::UnalignedConstFlat |
unaligned_shaped (gtl::ArraySlice< int64 > new_sizes) | TTypes< T, NDIMS >::UnalignedTensor |
unaligned_shaped (gtl::ArraySlice< int64 > new_sizes) const | TTypes< T, NDIMS >::UnalignedConstTensor |
vec () | TTypes< T >::Vec Retorna os dados do tensor como um Eigen::Tensor com o tipo e os tamanhos deste Tensor . |
vec () const | TTypes< T >::ConstVec Versões constantes de todos os métodos acima. |
Funções públicas
Bytes alocados
size_t AllocatedBytes() const
AsProtoField
void AsProtoField( TensorProto *proto ) const
Preenche o proto com o conteúdo *this tensor.
AsProtoField() preenche o campo repetido para proto.dtype() , enquanto AsProtoTensorContent() codifica o conteúdo em proto.tensor_content() em um formato compacto.
AsProtoTensorContent
void AsProtoTensorContent( TensorProto *proto ) const
BitcastFrom
Status BitcastFrom( const Tensor & other, DataType dtype, const TensorShape & shape )
Copie o outro tensor para este tensor, remodele-o e reinterprete o tipo de dados do buffer.
Se Status::OK() for retornado, os dois tensores agora compartilham o mesmo armazenamento subjacente.
Essa chamada exige que o other tensor e o tipo e formato fornecidos sejam "compatíveis" (ou seja, ocupem o mesmo número de bytes).
Especificamente:
forma.num_elementos() * DataTypeSize(tipo)
deve ser igual
other.num_elements() * DataTypeSize(other.dtype())
Além disso, esta função requer:
- DataTypeSize(other.dtype()) != 0
- DataTypeSize(tipo) != 0
Caso algum dos requisitos não seja atendido, será retornado o valor `errors::InvalidArgument`.
Copiar de
bool CopyFrom( const Tensor & other, const TensorShape & shape ) TF_MUST_USE_RESULT
Copie o outro tensor para este tensor e remodele-o.
Este tensor compartilha o armazenamento subjacente de outro. Retorna true se e somente se other.shape() tiver o mesmo número de elementos da shape fornecida.
DebugString
string DebugString( int num_values ) const
Um resumo do tensor em linguagem acessível para humanos, adequado para depuração.
DebugString
string DebugString() const
String de depuração segura do dispositivo
string DeviceSafeDebugString() const
Descrição de preenchimento
void FillDescription( TensorDescription *description ) const
Preencha o protocolo TensorDescription com metadados sobre o tensor que sejam úteis para monitoramento e depuração.
Do Proto
bool FromProto( const TensorProto & other ) TF_MUST_USE_RESULT
Analise other e construa o tensor.
Retorna true se e somente se a análise for bem-sucedida. Se a análise falhar, o estado de *this permanece inalterado.
Do Proto
bool FromProto( Allocator *a, const TensorProto & other ) TF_MUST_USE_RESULT
Está alinhado
bool IsAligned() const
Retorna verdadeiro se e somente se este tensor estiver alinhado.
Está inicializado
bool IsInitialized() const
Se necessário, este tensor foi inicializado?
Tensores com zero elementos são sempre considerados inicializados, mesmo que nunca tenham sido atribuídos a nenhum elemento e não possuam memória alocada.
É do mesmo tamanho
bool IsSameSize( const Tensor & b ) const
NumElementos
int64 NumElements() const
Acessor prático para o formato do tensor.
CompartilhamentosBufferCom
bool SharesBufferWith( const Tensor & b ) const
Fatiar
Tensor Slice( int64 dim0_start, int64 dim0_limit ) const
Corte esse tensor ao longo da primeira dimensão.
Ou seja, o tensor retornado satisfaz returned[i, ...] == this[dim0_start + i, ...]. O tensor retornado compartilha o buffer de tensor subjacente com este tensor.
NOTA: O tensor retornado pode não satisfazer o mesmo requisito de alinhamento que este tensor, dependendo do formato. O chamador deve verificar o alinhamento do tensor retornado antes de chamar certos métodos que possuem requisitos de alinhamento (por exemplo, flat() , tensor() ).
NOTA: Quando alimentado com um tensor de N dimensões, este método retorna um tensor também com N dimensões. Se você quiser selecionar um subtensor, consulte SubSlice.
REQUISITOS: dims() >= 1 REQUISITOS: 0 <= dim0_start <= dim0_limit <= dim_size(0)
Subfatia
Tensor SubSlice( int64 index ) const
Selecione uma subfatia desse tensor ao longo da primeira dimensão.
Ao receber um tensor de dimensão N, este método retorna um tensor com N-1 dimensões, onde o tensor retornado é uma subfatia do tensor de entrada ao longo da primeira dimensão. As N-1 dimensões do tensor retornado são as últimas N-1 dimensões do tensor de entrada.
NOTA: O tensor retornado pode não satisfazer o mesmo requisito de alinhamento que este tensor, dependendo do formato. O chamador deve verificar o alinhamento do tensor retornado antes de chamar certos métodos que possuem requisitos de alinhamento (por exemplo, flat() , tensor() ).
REQUISITOS: dims() >= 1 REQUISITOS: 0 <= dim0_start < dim_size(0)
ResumirValor
string SummarizeValue( int64 max_entries, bool print_v2 ) const
Converta os primeiros valores max_entries em *this para uma string.
Tensor
Tensor()
Cria um tensor de ponto flutuante unidimensional com 0 elementos.
O Tensor retornado não é um escalar (formato {}), mas sim um Tensor unidimensional vazio (formato {0}, NumElements() == 0). Como não possui elementos, não precisa receber um valor e é inicializado por padrão ( IsInitialized() é verdadeiro). Se isso for indesejável, considere criar um escalar com um único elemento que precise ser inicializado:
Tensor(DT_FLOAT, TensorShape({}))
Tensor
Tensor( DataType type, const TensorShape & shape )
Cria um tensor do type e shape especificados.
Se LogMemory::IsEnabled(), a alocação é registrada como proveniente de um kernel e passo desconhecidos. Chamar o construtor de Tensor diretamente de dentro de uma Op está obsoleto: use os métodos allocate_* de OpKernelConstruction/OpKernelContext para alocar um novo tensor, que registram o kernel e o passo.
O buffer subjacente é alocado usando um CPUAllocator .
Tensor
Tensor( Allocator *a, DataType type, const TensorShape & shape )
Cria um tensor com o type e shape de entrada, usando o alocador a para alocar o buffer subjacente.
Se LogMemory::IsEnabled(), a alocação é registrada como proveniente de um kernel e passo desconhecidos. Chamar o construtor de Tensor diretamente de dentro de uma Op está obsoleto: use os métodos allocate_* de OpKernelConstruction/OpKernelContext para alocar um novo tensor, que registram o kernel e o passo.
a deve sobreviver à vida útil deste Tensor .
Tensor
Tensor( Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr )
Cria um tensor com o type e shape de entrada, usando o alocador a e o atributo de alocação especificado para alocar o buffer subjacente.
Se o kernel e o passo forem conhecidos, `allocation_attr.allocation_will_be_logged` deve ser definido como `true` e `LogMemory::RecordTensorAllocation` deve ser chamado após a construção do tensor. Chamar o construtor de `Tensor` diretamente de dentro de uma operação (Op) é desaconselhado: use os métodos `allocate_*` de `OpKernelConstruction`/`OpKernelContext` para alocar um novo tensor, que registram o kernel e o passo.
a deve sobreviver à vida útil deste Tensor .
Tensor
Tensor( DataType type, const TensorShape & shape, TensorBuffer *buf )
Cria um tensor com o tipo de dados, formato e buffer de entrada.
Adquire uma referência em buf que pertence a este Tensor .
Tensor
Tensor( DataType type )
Cria um Tensor vazio do tipo de dados fornecido.
Assim como Tensor() , retorna um tensor unidimensional de 0 elementos com IsInitialized() retornando True. Consulte a documentação de Tensor() para obter detalhes.
Tensor
Tensor( float scalar_value )
Tensor
Tensor( double scalar_value )
Tensor
Tensor( int32 scalar_value )
Tensor
Tensor( uint32 scalar_value )
Tensor
Tensor( uint16 scalar_value )
Tensor
Tensor( uint8 scalar_value )
Tensor
Tensor( int16 scalar_value )
Tensor
Tensor( int8 scalar_value )
Tensor
Tensor( tstring scalar_value )
Tensor
Tensor( complex64 scalar_value )
Tensor
Tensor( complex128 scalar_value )
Tensor
Tensor( int64 scalar_value )
Tensor
Tensor( uint64 scalar_value )
Tensor
Tensor( bool scalar_value )
Tensor
Tensor( qint8 scalar_value )
Tensor
Tensor( quint8 scalar_value )
Tensor
Tensor( qint16 scalar_value )
Tensor
Tensor( quint16 scalar_value )
Tensor
Tensor( qint32 scalar_value )
Tensor
Tensor( bfloat16 scalar_value )
Tensor
Tensor( Eigen::half scalar_value )
Tensor
Tensor( ResourceHandle scalar_value )
Tensor
Tensor( const char *scalar_value )
Tensor
Tensor( Tensor && other )
Construtor de movimentação.
Após essa chamada,
Total de bytes
size_t TotalBytes() const
Retorna a estimativa do uso de memória deste tensor.
UnsafeCopyFromInternal
void UnsafeCopyFromInternal( const Tensor & other, DataType dtype, const TensorShape & shape )
Semelhante ao BitcastFrom, mas o CHECK falha se alguma das pré-condições não for atendida.
Obsoleto. Use BitcastFrom em vez disso e verifique o Status retornado.
bit_casted_shaped
TTypes< T, NDIMS >::Tensor bit_casted_shaped( gtl::ArraySlice< int64 > new_sizes )
Retorne os dados do tensor para um Eigen::Tensor com o novo formato especificado em new_sizes e converta para um novo dtype T
O uso de bitcast é útil para operações de movimentação e cópia. O bitcast permitido é a única diferença em relação shaped() .
bit_casted_shaped
TTypes< T, NDIMS >::ConstTensor bit_casted_shaped( gtl::ArraySlice< int64 > new_sizes ) const
Retorne os dados do tensor para um Eigen::Tensor com o novo formato especificado em new_sizes e converta para um novo dtype T
O uso de bitcast é útil para operações de movimentação e cópia. O bitcast permitido é a única diferença em relação shaped() .
tensor_convertido_em_bits
TTypes< T, NDIMS >::Tensor bit_casted_tensor()
Retorna os dados do tensor para um Eigen::Tensor com o mesmo tamanho, mas com uma conversão bit a bit para o tipo de dados T especificado.
O uso de bitcast é útil para operações de movimentação e cópia. NOTA: isso é o mesmo que tensor() exceto que permite bitcast.
tensor_convertido_em_bits
TTypes< T, NDIMS >::ConstTensor bit_casted_tensor() const
Retorna os dados do tensor para um Eigen::Tensor com o mesmo tamanho, mas com uma conversão bit a bit para o tipo de dados T especificado.
O uso de bitcast é útil para operações de movimentação e cópia. NOTA: isso é o mesmo que tensor() exceto que permite bitcast.
tamanho_dim
int64 dim_size( int d ) const
Acessor prático para o formato do tensor.
dimensões
int dims() const
Acessor prático para o formato do tensor.
Para todos os acessadores de forma, consulte os comentários dos métodos relevantes de TensorShape em tensor_shape.h .
tipo d
DataType dtype() const
Retorna o tipo de dados.
plano
TTypes< T >::Flat flat()
Retorna os dados do tensor como um Eigen::Tensor do tipo de dados e com um formato especificado.
Esses métodos permitem acessar os dados com as dimensões e tamanhos de sua escolha. Você não precisa saber o número de dimensões do Tensor para chamá-los. No entanto, eles CHECK se o tipo corresponde e se as dimensões solicitadas criam um Eigen::Tensor com o mesmo número de elementos que o tensor.
Exemplo:
typedef float T; Tensor my_ten(...built with Shape{planes: 4, rows: 3, cols: 5}...); // 1D Eigen::Tensor, size 60: auto flat = my_ten.flat(); // 2D Eigen::Tensor 12 x 5: auto inner = my_ten.flat_inner_dims (); // 2D Eigen::Tensor 4 x 15: auto outer = my_ten.shaped<T, 2>({4, 15}); // CHECK fails, bad num elements: auto outer = my_ten.shaped<T, 2>({4, 8}); // 3D Eigen::Tensor 6 x 5 x 2: auto weird = my_ten.shaped<T, 3>({6, 5, 2}); // CHECK fails, type mismatch: auto bad = my_ten.flat ();
flat
TTypes< T >::ConstFlat flat() const
dimensões_internas_planas
TTypes< T, NDIMS >::Tensor flat_inner_dims()
dimensões_internas_planas
TTypes< T, NDIMS >::ConstTensor flat_inner_dims() const
dimensões_internas_externas planas
TTypes< T, NDIMS >::Tensor flat_inner_outer_dims( int64 begin )
Retorna os dados como um Eigen::Tensor com dimensões NDIMS, colapsando as primeiras dimensões do Tensor 'begin' na primeira dimensão do resultado e as dimensões do Tensor dos últimos dims() - 'begin' - NDIMS na última dimensão do resultado.
Se 'begin' < 0, as dimensões iniciais |'begin'| de tamanho 1 serão adicionadas. Se 'begin' + NDIMS > dims() , então 'begin' + NDIMS - dims() serão adicionadas às dimensões finais de tamanho 1.
dimensões_internas_externas planas
TTypes< T, NDIMS >::ConstTensor flat_inner_outer_dims( int64 begin ) const
dimensões_externas_planas
TTypes< T, NDIMS >::Tensor flat_outer_dims()
dimensões_externas_planas
TTypes< T, NDIMS >::ConstTensor flat_outer_dims() const
matriz
TTypes< T >::Matrix matrix()
matriz
TTypes< T >::ConstMatrix matrix() const
operador=
Tensor & operator=( const Tensor & other )
Operador de atribuição. Este tensor compartilha o armazenamento subjacente de outros.
operador=
Tensor & operator=( Tensor && other )
Operador de movimentação. Consulte o construtor de movimentação para obter detalhes.
reinterpret_última_dimensão
TTypes< T, NDIMS >::Tensor reinterpret_last_dimension()
Retorna os dados do tensor para um Eigen::Tensor com os elementos da última dimensão convertidos em elementos únicos de um tipo maior.
Por exemplo, isso é útil para kernels que podem tratar tensores NCHW_VECT_C int8 como tensores NCHW int32. O sizeof(T) deve ser igual ao tamanho do tipo de elemento original multiplicado pelo número de elementos na última dimensão original. O NDIMS deve ser 1 menor que o número original de dimensões.
reinterpret_última_dimensão
TTypes< T, NDIMS >::ConstTensor reinterpret_last_dimension() const
Retorna os dados do tensor para um Eigen::Tensor com os elementos da última dimensão convertidos em elementos únicos de um tipo maior.
Por exemplo, isso é útil para kernels que podem tratar tensores NCHW_VECT_C int8 como tensores NCHW int32. O sizeof(T) deve ser igual ao tamanho do tipo de elemento original multiplicado pelo número de elementos na última dimensão original. O NDIMS deve ser 1 menor que o número original de dimensões.
escalar
TTypes< T >::Scalar scalar()
escalar
TTypes< T >::ConstScalar scalar() const
forma
const TensorShape & shape() const
Retorna o formato do tensor.
em forma
TTypes< T, NDIMS >::Tensor shaped( gtl::ArraySlice< int64 > new_sizes )
em forma
TTypes< T, NDIMS >::ConstTensor shaped( gtl::ArraySlice< int64 > new_sizes ) const
tensor
TTypes< T, NDIMS >::Tensor tensor()
tensor
TTypes< T, NDIMS >::ConstTensor tensor() const
dados_tensores
StringPiece tensor_data() const
Retorna um StringPiece que mapeia o buffer do tensor atual.
O StringPiece retornado pode apontar para um local de memória em dispositivos que a CPU não consegue endereçar diretamente.
NOTA: O buffer de tensor subjacente é contabilizado por referência, portanto, o tempo de vida do conteúdo mapeado pelo StringPiece corresponde ao tempo de vida do buffer; os chamadores devem garantir que o buffer não seja destruído enquanto o StringPiece ainda estiver em uso.
REQUER: DataTypeCanUseMemcpy(dtype()) .
plano desalinhado
TTypes< T >::UnalignedFlat unaligned_flat()
plano desalinhado
TTypes< T >::UnalignedConstFlat unaligned_flat() const
desalinhado_forma
TTypes< T, NDIMS >::UnalignedTensor unaligned_shaped( gtl::ArraySlice< int64 > new_sizes )
desalinhado_forma
TTypes< T, NDIMS >::UnalignedConstTensor unaligned_shaped( gtl::ArraySlice< int64 > new_sizes ) const
vetor
TTypes< T >::Vec vec()
Retorna os dados do tensor como um Eigen::Tensor com o tipo e os tamanhos deste Tensor.
Use esses métodos quando você souber o tipo de dados e o número de dimensões do Tensor e quiser que um Eigen::Tensor seja dimensionado automaticamente para os tamanhos do Tensor. A verificação de implementação falha se o tipo ou os tamanhos não corresponderem.
Exemplo:
typedef float T; Tensor my_mat(...built with Shape{rows: 3, cols: 5}...); auto mat = my_mat.matrix(); // 2D Eigen::Tensor, 3 x 5. auto mat = my_mat.tensor<T, 2>(); // 2D Eigen::Tensor, 3 x 5. auto vec = my_mat.vec (); // CHECK fails as my_mat is 2D. auto vec = my_mat.tensor<T, 3>(); // CHECK fails as my_mat is 2D. auto mat = my_mat.matrix ();// CHECK fails as type mismatch.
vec
TTypes< T >::ConstVec vec() const
Versões constantes de todos os métodos acima.
~Tensor
~Tensor()