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)
Cria um tensor do type e shape especificados.
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 (T *t)
~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)
Status
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
std::string
Um resumo do tensor em linguagem acessível para humanos, adequado para depuração.
DebugString () const
std::string
DeviceSafeDebugString () const
std::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.
RefCountIsOne () const
bool
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
std::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.
data () const
void *
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
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.
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)
Operador de atribuição. Este tensor compartilha o armazenamento subjacente de outros.
operator= ( Tensor && other)
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
Retorna os dados do Tensor como um TensorMap de tamanho fixo 1: TensorMap > .
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

std::string DebugString(
  int num_values
) const 

Um resumo do tensor em linguagem acessível para humanos, adequado para depuração.

DebugString

std::string DebugString() const 

String de depuração segura do dispositivo

std::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.

IsInitialized

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.

RefCountIsOne

bool RefCountIsOne() const 

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 <= index < dim_size(0)

ResumirValor

std::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(
  const Tensor & other
)

Construtor de cópia.

Tensor

 Tensor(
  Tensor && other
)

Construtor de movimentação.

Após essa chamada, É destrutível com segurança e pode ser atribuído a um objeto, mas outras chamadas a ele (como manipulação de forma) não são válidas.

Tensor

 Tensor(
  T *t
)=delete

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.

dados

void * data() const 

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 do 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()

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.

Se NDIMS > dims() , as dimensões iniciais de tamanho 1 serão adicionadas para que a classificação de saída seja NDIMS.

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()

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.

Se NDIMS > dims() , dimensões adicionais de tamanho 1 serão adicionadas para que a classificação de saída seja igual a NDIMS.

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()

Retorna os dados do Tensor como um TensorMap de tamanho fixo 1: TensorMap > .

O uso de scalar() permite que o compilador execute otimizações, pois o tamanho do tensor é conhecido em tempo de compilação.

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()