Cette page a été traduite par l'API Cloud Translation.
Switch to English

tensorflow :: Tensor

#include <tensor.h>

Représente un tableau à n dimensions de valeurs.

Résumé

Constructeurs et Destructeurs

Tensor ()
Crée un 1-dimensionnelle, 0-élément tenseur de flotteur.
Tensor (DataType type, const TensorShape & shape)
Crée un Tenseur du donné le type et la shape .
Tensor (Allocator *a, DataType type, const TensorShape & shape)
Crée un tenseur avec l'entrée de type et de shape , en utilisant l'allocateur a à allouer le tampon sous - jacent.
Tensor (Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr)
Crée un tenseur avec l'entrée de type et de shape , en utilisant l'allocateur a et l'spécifié « allocation_attr » pour allouer le tampon sous - jacent.
Tensor (DataType type, const TensorShape & shape, TensorBuffer *buf)
Crée un tenseur avec le type de données d'entrée, la forme et buf.
Tensor (DataType type)
Crée un vide Tenseur du type de données.
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)
Copie constructeur.
Tensor ( Tensor && other)
Déplacer constructeur.
Tensor (T *t)
~Tensor ()

Les fonctions publiques

AllocatedBytes () const
size_t
AsProtoField (TensorProto *proto) const
void
Remplit proto avec *this contenu de tenseur.
AsProtoTensorContent (TensorProto *proto) const
void
BitcastFrom (const Tensor & other, DataType dtype, const TensorShape & shape)
Status
Copiez l'autre tenseur dans ce tenseur, remodeler et réinterpréter le type de données de la mémoire tampon.
CopyFrom (const Tensor & other, const TensorShape & shape) TF_MUST_USE_RESULT
bool
Copiez l'autre tenseur dans ce tenseur et le remodeler.
DebugString (int num_values) const
std::string
Un résumé lisible par l'homme du tenseur approprié pour le débogage.
DebugString () const
std::string
DeviceSafeDebugString () const
std::string
FillDescription (TensorDescription *description) const
void
Remplissez le TensorDescription proto avec des métadonnées sur le tenseur qui est utile pour le suivi et le débogage.
FromProto (const TensorProto & other) TF_MUST_USE_RESULT
bool
Parse other et construire le tenseur.
FromProto (Allocator *a, const TensorProto & other) TF_MUST_USE_RESULT
bool
IsAligned () const
bool
Renvoie true ssi ce tenseur est aligné.
IsInitialized () const
bool
Si nécessaire, cela a Tensor été initialisé?
IsSameSize (const Tensor & b) const
bool
NumElements () const
int64
Accesseur pratique pour la forme de tenseur.
RefCountIsOne () const
bool
SharesBufferWith (const Tensor & b) const
bool
Slice (int64 dim0_start, int64 dim0_limit) const
Trancher ce tenseur le long de la 1ère dimension.
SubSlice (int64 index) const
Sélectionnez un sous-tranche de ce tenseur le long de la 1ère dimension.
SummarizeValue (int64 max_entries, bool print_v2) const
std::string
Rendre les premiers max_entries valeurs *this dans une chaîne.
TotalBytes () const
size_t
Renvoie l'utilisation de la mémoire estimée de ce tenseur.
UnsafeCopyFromInternal (const Tensor & other, DataType dtype, const TensorShape & shape)
void
Comme BitcastFrom, mais CHECK échoue si aucune condition préalable ne sont pas remplies.
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes)
TTypes< T, NDIMS >:: Tensor
Retour les données de tenseur à un Eigen::Tensor avec la nouvelle forme spécifiée dans new_sizes et coulé à une nouvelle DTYPE T .
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) const
TTypes< T, NDIMS >::ConstTensor
Retour les données de tenseur à un Eigen::Tensor avec la nouvelle forme spécifiée dans new_sizes et coulé à une nouvelle DTYPE T .
bit_casted_tensor ()
TTypes< T, NDIMS >:: Tensor
Retour les données de tenseur à un Eigen::Tensor avec la même taille , mais un casting de la DTYPE au niveau du bit spécifié T .
bit_casted_tensor () const
TTypes< T, NDIMS >::ConstTensor
Retour les données de tenseur à un Eigen::Tensor avec la même taille , mais un casting de la DTYPE au niveau du bit spécifié T .
data () const
void *
dim_size (int d) const
int64
Accesseur pratique pour la forme de tenseur.
dims () const
int
Accesseur pratique pour la forme de tenseur.
dtype () const
DataType
Retourne le type de données.
flat ()
TTypes< T >::Flat
Retour les données de tenseur comme Eigen::Tensor du type de données et une forme spécifiée.
flat () const
TTypes< T >::ConstFlat
flat_inner_dims ()
TTypes< T, NDIMS >:: Tensor
Renvoie les données sous la forme d' un Eigen :: Tensor avec des dimensions NDIMS, toutes effondrant Tensor dimensions , mais les derniers NDIMS-1 dans la première dimension du résultat.
flat_inner_dims () const
TTypes< T, NDIMS >::ConstTensor
flat_inner_outer_dims (int64 begin)
TTypes< T, NDIMS >:: Tensor
Renvoie les données sous la forme d' un Eigen :: Tensor avec des dimensions NDIMS, le premier effondrement « commencer » Tensor dimensions dans la première dimension du résultat et les Tensor dimensions des dernières DiMS () - « commencer » - NDIMS dans la dernière dimension du résultat.
flat_inner_outer_dims (int64 begin) const
TTypes< T, NDIMS >::ConstTensor
flat_outer_dims ()
TTypes< T, NDIMS >:: Tensor
Renvoie les données sous la forme d' un Eigen :: Tensor avec des dimensions NDIMS, toutes effondrant Tensor dimensions , mais les premiers NDIMS-1 dans la dernière dimension du résultat.
flat_outer_dims () const
TTypes< T, NDIMS >::ConstTensor
matrix ()
TTypes< T >::Matrix
matrix () const
TTypes< T >::ConstMatrix
operator= (const Tensor & other)
Tensor &
opérateur d'attribuer. Cette part tenseurs D'autres sous-jacent de stockage.
operator= ( Tensor && other)
Tensor &
Déplacer l'opérateur. Voir constructeur de mouvement pour plus de détails.
reinterpret_last_dimension ()
TTypes< T, NDIMS >:: Tensor
Retour les données de tenseur à un Eigen::Tensor avec les derniers éléments de dimension convertis en éléments individuels d'un type plus grand.
reinterpret_last_dimension () const
TTypes< T, NDIMS >::ConstTensor
Retour les données de tenseur à un Eigen::Tensor avec les derniers éléments de dimension convertis en éléments individuels d'un type plus grand.
scalar ()
TTypes< T >::Scalar
Remettre les Tenseur données en tant que TensorMap de taille fixe 1: TensorMap > TensorMap > .
scalar () const
TTypes< T >::ConstScalar
shape () const
const TensorShape &
Renvoie la forme du tenseur.
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
Retourne une StringPiece cartographie de la mémoire tampon du tenseur courant.
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
Retour les données de tenseur comme Eigen::Tensor avec le type et la taille de cette Tensor .
vec () const
TTypes< T >::ConstVec
versions Const de toutes les méthodes ci-dessus.

Les fonctions publiques

AllocatedBytes

size_t AllocatedBytes() const 

AsProtoField

void AsProtoField(
  TensorProto *proto
) const 

Remplit proto avec *this contenu de tenseur.

AsProtoField() remplit le champ répété pour proto.dtype() , tandis que AsProtoTensorContent() code pour la teneur en proto.tensor_content() sous une forme compacte.

AsProtoTensorContent

void AsProtoTensorContent(
  TensorProto *proto
) const 

BitcastFrom

Status BitcastFrom(
  const Tensor & other,
  DataType dtype,
  const TensorShape & shape
)

Copiez l'autre tenseur dans ce tenseur, remodeler et réinterpréter le type de données de la mémoire tampon.

Si Statut :: OK () est retourné, les deux tenseurs partagent maintenant le même stockage sous-jacent.

Cet appel exige que l' other tenseur et le type donné et la forme sont « compatibles » (elles occupent le même nombre d'octets).

Plus précisément:

shape.num_elements () * DataTypeSize (type)

doit être égal

other.num_elements () * DataTypeSize (other.dtype ())

De plus, cette fonction nécessite:

  • DataTypeSize (other.dtype ())! = 0
  • DataTypeSize (type)! = 0

Si l'une des exigences ne sont pas remplies, les erreurs :: InvalidArgument est retourné.

CopyFrom

bool CopyFrom(
  const Tensor & other,
  const TensorShape & shape
) TF_MUST_USE_RESULT

Copiez l'autre tenseur dans ce tenseur et le remodeler.

Cette part tenseurs D'autres sous-jacent de stockage. Retours true ssi other.shape() a le même nombre d'éléments de la donnée shape .

DebugString

std::string DebugString(
  int num_values
) const 

Un résumé lisible par l'homme du tenseur approprié pour le débogage.

DebugString

std::string DebugString() const 

DeviceSafeDebugString

std::string DeviceSafeDebugString() const 

FillDescription

void FillDescription(
  TensorDescription *description
) const 

Remplissez le TensorDescription proto avec des métadonnées sur le tenseur qui est utile pour le suivi et le débogage.

FromProto

bool FromProto(
  const TensorProto & other
) TF_MUST_USE_RESULT

Parse other et construire le tenseur.

Retourne true ssi l'analyse syntaxique réussit. Si l'analyse syntaxique échoue, l'état de *this ne change pas.

FromProto

bool FromProto(
  Allocator *a,
  const TensorProto & other
) TF_MUST_USE_RESULT

IsAligned

bool IsAligned() const 

Renvoie true ssi ce tenseur est aligné.

isInitialized

bool IsInitialized() const 

Si nécessaire, cela a Tensor été initialisé?

sont toujours considérés comme initialisé tenseurs zéro élément, même si elles ont jamais été affectés à et ne pas la mémoire allouée.

IsSameSize

bool IsSameSize(
  const Tensor & b
) const 

numElements

int64 NumElements() const 

Accesseur pratique pour la forme de tenseur.

RefCountIsOne

bool RefCountIsOne() const 

SharesBufferWith

bool SharesBufferWith(
  const Tensor & b
) const 

Tranche

 Tensor Slice(
  int64 dim0_start,
  int64 dim0_limit
) const 

Trancher ce tenseur le long de la 1ère dimension.

À savoir, le satisfait tenseur retourné retour [i, ...] == ce [dim0_start + i, ...]. Les parts de tenseurs retourné le tampon tenseur sous-jacent avec ce tenseur.

NOTE: Le tenseur retourné ne peut pas satisfaire la même exigence d'alignement ce tenseur en fonction de la forme. L'appelant doit vérifier l'alignement du tenseur retourné avant d' appeler certaines méthodes qui ont besoin d' alignement (par exemple, à flat() , tensor() ).

Remarque: lorsque alimenté par un tenseur de N dimensions, cette méthode retourne un tenseur également à N dimensions. Si vous voulez sélectionner un tenseur de sous, voir sous-tranche.

Requiert: dims() > = 1 VERSION: 0 <= dim0_start <= dim0_limit <= dim_size(0)

sous-tranche

 Tensor SubSlice(
  int64 index
) const 

Sélectionnez un sous-tranche de ce tenseur le long de la 1ère dimension.

Lorsqu'il est alimenté par un tenseur N dimensions, cette méthode retourne un tenseur de dimensions N-1, dans lequel le tenseur de retour est une sous-tranche du tenseur d'entrée le long de la première dimension. Les dimensions N-1 du tenseur de retour sont les derniers N-1 dimensions du tenseur d'entrée.

NOTE: Le tenseur retourné ne peut pas satisfaire la même exigence d'alignement ce tenseur en fonction de la forme. L'appelant doit vérifier l'alignement du tenseur retourné avant d' appeler certaines méthodes qui ont besoin d' alignement (par exemple, à flat() , tensor() ).

Requiert: dims() > = 1 VERSION: 0 <= index < dim_size(0)

SummarizeValue

std::string SummarizeValue(
  int64 max_entries,
  bool print_v2
) const 

Rendre les premiers max_entries valeurs *this dans une chaîne.

Tensor

 Tensor()

Crée un 1-dimensionnelle, 0-élément tenseur de flotteur.

Le retour Tensor n'est pas un scalaire (forme {}), mais est au contraire un unidimensionnelle vide Tensor (forme {0}, numElements () == 0). Comme il n'a pas d' éléments, il n'a pas besoin d'être attribué une valeur et est initialisé par défaut ( IsInitialized () est vrai). Si cela est indésirable, envisager la création d'un scalaire d'un élément qui nécessite l'initialisation:

 Tensor (DT_FLOAT, TensorShape({}))

      

Tensor

 Tensor(
  DataType type,
  const TensorShape & shape
)

Crée un Tenseur du donné le type et la shape .

Si LogMemory :: IsEnabled () l'allocation est enregistrée comme provenant d'un noyau inconnu et l'étape. Appel du Tenseur constructeur directement à partir d'un Op est dépréciée: utiliser les méthodes de OpKernelConstruction / OpKernelContext allocate_ * d'allouer un nouveau tenseur, qui enregistrent le noyau et l' étape.

Le tampon sous - jacent est allouée en utilisant un CPUAllocator .

Tensor

 Tensor(
  Allocator *a,
  DataType type,
  const TensorShape & shape
)

Crée un tenseur avec l'entrée de type et de shape , en utilisant l'allocateur a à allouer le tampon sous - jacent.

Si LogMemory :: IsEnabled () l'allocation est enregistrée comme provenant d'un noyau inconnu et l'étape. Appel du Tenseur constructeur directement à partir d'un Op est dépréciée: utiliser les méthodes de OpKernelConstruction / OpKernelContext allocate_ * d'allouer un nouveau tenseur, qui enregistrent le noyau et l' étape.

a doit survivre à la durée de vie de ce Tensor .

Tensor

 Tensor(
  Allocator *a,
  DataType type,
  const TensorShape & shape,
  const AllocationAttributes & allocation_attr
)

Crée un tenseur avec l'entrée de type et de shape , en utilisant l'allocateur a et l'spécifié « allocation_attr » pour allouer le tampon sous - jacent.

Si le noyau et l'étape sont connus allocation_attr.allocation_will_be_logged doit être définie sur true et LogMemory :: RecordTensorAllocation doit être appelée après le tenseur est construit. Appel du Tenseur constructeur directement à partir d'un Op est dépréciée: utiliser les méthodes de OpKernelConstruction / OpKernelContext allocate_ * d'allouer un nouveau tenseur, qui enregistrent le noyau et l' étape.

a doit survivre à la durée de vie de ce Tensor .

Tensor

 Tensor(
  DataType type,
  const TensorShape & shape,
  TensorBuffer *buf
)

Crée un tenseur avec le type de données d'entrée, la forme et buf.

Acquiert ref sur buf qui appartient à cette Tensor .

Tensor

 Tensor(
  DataType type
)

Crée un vide Tenseur du type de données.

Comme Tensor () , retourne un 1-dimensionnelle, 0-élément Tensor avec IsInitialized () retournant Vrai. Voir la Tensor () documentation pour plus de détails.

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
)

Copie constructeur.

Tensor

 Tensor(
  Tensor && other
)

Déplacer constructeur.

Après cet appel, est en toute sécurité destructibles et peuvent être affectés, mais d'autres appels à ce sujet (par exemple, la manipulation de forme) ne sont pas valides.

Tensor

 Tensor(
  T *t
)=delete

TotalBytes

size_t TotalBytes() const 

Renvoie l'utilisation de la mémoire estimée de ce tenseur.

UnsafeCopyFromInternal

void UnsafeCopyFromInternal(
  const Tensor & other,
  DataType dtype,
  const TensorShape & shape
)

Comme BitcastFrom, mais CHECK échoue si aucune condition préalable ne sont pas remplies.

Obsolète. Utilisez BitcastFrom au lieu et vérifier l'état retourné.

bit_casted_shaped

TTypes< T, NDIMS >:: Tensor bit_casted_shaped(
  gtl::ArraySlice< int64 > new_sizes
)

Retour les données de tenseur à un Eigen::Tensor avec la nouvelle forme spécifiée dans new_sizes et coulé à une nouvelle DTYPE T .

L'utilisation d'un BitCast est utile pour les opérations de déplacement et de copie. Le BitCast autorisé est la seule différence de shaped() .

bit_casted_shaped

TTypes< T, NDIMS >::ConstTensor bit_casted_shaped(
  gtl::ArraySlice< int64 > new_sizes
) const 

Retour les données de tenseur à un Eigen::Tensor avec la nouvelle forme spécifiée dans new_sizes et coulé à une nouvelle DTYPE T .

L'utilisation d'un BitCast est utile pour les opérations de déplacement et de copie. Le BitCast autorisé est la seule différence de shaped() .

bit_casted_tensor

TTypes< T, NDIMS >:: Tensor bit_casted_tensor()

Retour les données de tenseur à un Eigen::Tensor avec la même taille , mais un casting de la DTYPE au niveau du bit spécifié T .

L'utilisation d'un BitCast est utile pour les opérations de déplacement et de copie. NOTE: c'est le même que tensor() à l' exception d' un BitCast est autorisé.

bit_casted_tensor

TTypes< T, NDIMS >::ConstTensor bit_casted_tensor() const 

Retour les données de tenseur à un Eigen::Tensor avec la même taille , mais un casting de la DTYPE au niveau du bit spécifié T .

L'utilisation d'un BitCast est utile pour les opérations de déplacement et de copie. NOTE: c'est le même que tensor() à l' exception d' un BitCast est autorisé.

Les données

void * data() const 

dim_size

int64 dim_size(
  int d
) const 

Accesseur pratique pour la forme de tenseur.

DiMS

int dims() const 

Accesseur pratique pour la forme de tenseur.

Pour tous les accesseurs de forme, voir les commentaires pour les méthodes pertinentes de TensorShape dans tensor_shape.h .

DTYPE

DataType dtype() const 

Retourne le type de données.

plat

TTypes< T >::Flat flat()

Retour les données de tenseur comme Eigen::Tensor du type de données et une forme spécifiée.

Ces méthodes vous permettent d'accéder aux données avec les dimensions et les dimensions de votre choix. Vous n'avez pas besoin de connaître le nombre de dimensions du Tenseur de les appeler. Cependant, ils CHECK que les matchs de type et les dimensions demandées crée un Eigen::Tensor avec le même nombre d'éléments que le tenseur.

Exemple:

  
    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({4, 15});
    // CHECK fails, bad num elements:
    auto outer = my_ten.shaped({4, 8});
    // 3D Eigen::Tensor 6 x 5 x 2:
    auto weird = my_ten.shaped({6, 5, 2});
    // CHECK fails, type mismatch:
    auto bad   = my_ten.flat();

      

plat

TTypes< T >::ConstFlat flat() const 

flat_inner_dims

TTypes< T, NDIMS >:: Tensor flat_inner_dims()

Renvoie les données sous la forme d' un Eigen :: Tensor avec des dimensions NDIMS, toutes effondrant Tensor dimensions , mais les derniers NDIMS-1 dans la première dimension du résultat.

Si NDIMS> DiMS () puis principales dimensions de la taille 1 seront ajoutés pour le rang de sortie NDIMS.

flat_inner_dims

TTypes< T, NDIMS >::ConstTensor flat_inner_dims() const 

flat_inner_outer_dims

TTypes< T, NDIMS >:: Tensor flat_inner_outer_dims(
  int64 begin
)

Renvoie les données sous la forme d' un Eigen :: Tensor avec des dimensions NDIMS, le premier effondrement « commencer » Tensor dimensions dans la première dimension du résultat et les Tensor dimensions des dernières DiMS () - « commencer » - NDIMS dans la dernière dimension du résultat.

Si « commencer » <0 alors | « commencer » | principales dimensions de la taille 1 seront ajoutés. Si 'begin' + NDIMS> DiMS () puis 'commencer' + NDIMS - DiMS () dimensions arrière de la taille 1 seront ajoutés.

flat_inner_outer_dims

TTypes< T, NDIMS >::ConstTensor flat_inner_outer_dims(
  int64 begin
) const 

flat_outer_dims

TTypes< T, NDIMS >:: Tensor flat_outer_dims()

Renvoie les données sous la forme d' un Eigen :: Tensor avec des dimensions NDIMS, toutes effondrant Tensor dimensions , mais les premiers NDIMS-1 dans la dernière dimension du résultat.

Si NDIMS> DiMS () dimensions de fuite alors de taille 1 seront ajoutés pour le rang de sortie NDIMS.

flat_outer_dims

TTypes< T, NDIMS >::ConstTensor flat_outer_dims() const 

matrice

TTypes< T >::Matrix matrix()

matrice

TTypes< T >::ConstMatrix matrix() const 

= Opérateur

 Tensor & operator=(
  const Tensor & other
)

opérateur d'attribuer. Cette part tenseurs D'autres sous-jacent de stockage.

= Opérateur

 Tensor & operator=(
  Tensor && other
)

Déplacer l'opérateur. Voir constructeur de mouvement pour plus de détails.

reinterpret_last_dimension

TTypes< T, NDIMS >:: Tensor reinterpret_last_dimension()

Retour les données de tenseur à un Eigen::Tensor avec les derniers éléments de dimension convertis en éléments individuels d'un type plus grand.

Par exemple, ce qui est utile pour les noyaux qui peuvent traiter NCHW_VECT_C int8 tenseurs comme NCHW int32 tenseurs. Le sizeof (T) est égal à la taille du type d'élément d'origine des éléments * num dans la dernière dimension d'origine. NDIMS devrait être 1 inférieur au nombre initial de dimensions.

reinterpret_last_dimension

TTypes< T, NDIMS >::ConstTensor reinterpret_last_dimension() const 

Retour les données de tenseur à un Eigen::Tensor avec les derniers éléments de dimension convertis en éléments individuels d'un type plus grand.

Par exemple, ce qui est utile pour les noyaux qui peuvent traiter NCHW_VECT_C int8 tenseurs comme NCHW int32 tenseurs. Le sizeof (T) est égal à la taille du type d'élément d'origine des éléments * num dans la dernière dimension d'origine. NDIMS devrait être 1 inférieur au nombre initial de dimensions.

scalaire

TTypes< T >::Scalar scalar()

Remettre les Tenseur données en tant que TensorMap de taille fixe 1: TensorMap > TensorMap > .

L' utilisation scalar() permet au compilateur d'effectuer des optimisations comme la taille du tenseur est connu au moment de la compilation.

scalaire

TTypes< T >::ConstScalar scalar() const 

forme

const TensorShape & shape() const 

Renvoie la forme du tenseur.

en forme de

TTypes< T, NDIMS >:: Tensor shaped(
  gtl::ArraySlice< int64 > new_sizes
)

en forme de

TTypes< T, NDIMS >::ConstTensor shaped(
  gtl::ArraySlice< int64 > new_sizes
) const 

tenseur

TTypes< T, NDIMS >:: Tensor tensor()

tenseur

TTypes< T, NDIMS >::ConstTensor tensor() const 

tensor_data

StringPiece tensor_data() const 

Retourne une StringPiece cartographie de la mémoire tampon du tenseur courant.

Le retour StringPiece peut pointer vers l' emplacement de mémoire sur les appareils que la CPU ne peut pas répondre directement.

REMARQUE: Le tampon de tenseur sous - jacent est refcounted, de sorte que la durée de vie du contenu mis en correspondance par le StringPiece correspond à la durée de vie du tampon; les appelants doivent prendre des dispositions pour vous assurer que la mémoire tampon ne soit pas détruit alors que le StringPiece est encore utilisé.

EXIGE: DataTypeCanUseMemcpy(dtype()) .

unaligned_flat

TTypes< T >::UnalignedFlat unaligned_flat()

unaligned_flat

TTypes< T >::UnalignedConstFlat unaligned_flat() const 

unaligned_shaped

TTypes< T, NDIMS >::UnalignedTensor unaligned_shaped(
  gtl::ArraySlice< int64 > new_sizes
)

unaligned_shaped

TTypes< T, NDIMS >::UnalignedConstTensor unaligned_shaped(
  gtl::ArraySlice< int64 > new_sizes
) const 

vEC

 TTypes <T> :: Vec VEC () 

Retour les données de tenseur comme Eigen :: Tensor avec le type et la taille de cette Tensor.

Utilisez ces méthodes lorsque vous connaissez le type de données et le nombre de dimensions du Tenseur et que vous voulez un Eigen :: Tensor automatiquement redimensionné à la taille Tensor. Le contrôle de la mise en œuvre échoue si l'incompatibilité de type ou de tailles.

Exemple:

 typedef flotteur T; Tensor my_mat (... construit avec la forme {lignes: 3, 5:} cols ...); Tapis auto = my_mat.matrix  (); // 2D Eigen :: Tensor, 3 x 5 = mat auto my_mat.tensor  (); // 2D Eigen :: Tensor, 3 x 5. auto VEC = my_mat.vec  (); // vérification échoue comme my_mat est en 2D. auto VEC = my_mat.tensor  (); // vérification échoue comme my_mat est en 2D. Tapis auto = my_mat.matrix  (); // vérification échoue en tant que non-concordance de type. 

vEC

 TTypes <T> :: ConstVec VEC () const 

versions Const de toutes les méthodes ci-dessus.

~ Tensor

 ~ Tensor ()