tensorflow::Tensor
#include <tensor.h>n次元の値の配列を表します。
まとめ
コンストラクターとデストラクタ | |
|---|---|
Tensor () 1次元、要素数0の浮動小数点テンソルを作成します。 | |
Tensor (DataType type, const TensorShape & shape) | |
Tensor (Allocator *a, DataType type, const TensorShape & shape)入力された typeとshape持つテンソルを作成し、アロケータaを使用して基となるバッファを割り当てます。 | |
Tensor (Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr)入力 typeとshapeのテンソルを作成し、アロケータaと指定された "allocation_attr" を使用して基となるバッファを割り当てます。 | |
Tensor (DataType type, const TensorShape & shape, TensorBuffer *buf)入力されたデータ型、形状、バッファを持つテンソルを作成します。 | |
Tensor (DataType type)指定されたデータ型の空のテンソルを作成します。 | |
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)コピーコンストラクタ。 | |
Tensor ( Tensor && other)コンストラクタを移動します。 | |
Tensor (T *t) | |
~Tensor () |
公的機能 | |
|---|---|
AllocatedBytes () const | size_t |
AsProtoField (TensorProto *proto) const | void*thisテンソルの内容でprotoを埋めます。 |
AsProtoTensorContent (TensorProto *proto) const | void |
BitcastFrom (const Tensor & other, DataType dtype, const TensorShape & shape) | Status他のテンソルをこのテンソルにコピーし、形状を変更して、バッファのデータ型を再解釈します。 |
CopyFrom (const Tensor & other, const TensorShape & shape) TF_MUST_USE_RESULT | bool他のテンソルをこのテンソルにコピーして、形状を変更します。 |
DebugString (int num_values) const | std::stringデバッグに適した、人間が読みやすいテンソルの要約。 |
DebugString () const | std::string |
DeviceSafeDebugString () const | std::string |
FillDescription (TensorDescription *description) const | voidTensorDescriptionプロトコルに、監視やデバッグに役立つテンソルに関するメタデータを記述してください。 |
FromProto (const TensorProto & other) TF_MUST_USE_RESULT | boolotherを解析し、テンソルを構築する。 |
FromProto (Allocator *a, const TensorProto & other) TF_MUST_USE_RESULT | bool |
IsAligned () const | boolこのテンソルが整列している場合にのみtrueを返します。 |
IsInitialized () const | bool必要であれば、このテンソルは初期化されていますか? |
IsSameSize (const Tensor & b) const | bool |
NumElements () const | int64テンソル形状のための便利なアクセサ。 |
RefCountIsOne () const | bool |
SharesBufferWith (const Tensor & b) const | bool |
Slice (int64 dim0_start, int64 dim0_limit) const | このテンソルを1次元目に沿ってスライスします。 |
SubSlice (int64 index) const | このテンソルから、1次元目に沿ってサブスライスを選択します。 |
SummarizeValue (int64 max_entries, bool print_v2) const | std::string*this内の最初のmax_entries値を文字列としてレンダリングします。 |
TotalBytes () const | size_tこのテンソルの推定メモリ使用量を返します。 |
UnsafeCopyFromInternal (const Tensor & other, DataType dtype, const TensorShape & shape) | void BitcastFromと同様ですが、前提条件が満たされていない場合はCHECKが失敗します。 |
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) | TTypes< T, NDIMS >:: Tensorテンソルデータを、 new_sizesで指定された新しい形状のEigen::Tensorに返し、新しいdtype Tにキャストします。 |
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) const | TTypes< T, NDIMS >::ConstTensorテンソルデータを、 new_sizesで指定された新しい形状のEigen::Tensorに返し、新しいdtype Tにキャストします。 |
bit_casted_tensor () | TTypes< T, NDIMS >:: Tensorテンソルデータを、同じサイズで指定されたdtype Tにビット単位でキャストしたEigen::Tensorに返します。 |
bit_casted_tensor () const | TTypes< T, NDIMS >::ConstTensorテンソルデータを、同じサイズで指定されたdtype Tにビット単位でキャストしたEigen::Tensorに返します。 |
data () const | void * |
dim_size (int d) const | int64テンソル形状のための便利なアクセサ。 |
dims () const | intテンソル形状のための便利なアクセサ。 |
dtype () const | DataTypeデータ型を返します。 |
flat () | TTypes< T >::Flat指定されたデータ型と形状の Eigen::Tensorとしてテンソルデータを返します。 |
flat () const | TTypes< T >::ConstFlat |
flat_inner_dims () | TTypes< T, NDIMS >:: TensorデータをNDIMS次元のEigen::Tensorとして返します。最後のNDIMS-1を除くすべてのTensor次元は、結果の最初の次元に集約されます。 |
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データをNDIMS次元のEigen::Tensorとして返します。最初のNDIMS-1を除くすべてのTensor次元は、結果の最後の次元に集約されます。 |
flat_outer_dims () const | TTypes< T, NDIMS >::ConstTensor |
matrix () | TTypes< T >::Matrix |
matrix () const | TTypes< T >::ConstMatrix |
operator= (const Tensor & other) | Tensor &代入演算子。このテンソルは、他のテンソルの基となるストレージを共有します。 |
operator= ( Tensor && other) | Tensor &ムーブ演算子。詳細はムーブコンストラクタを参照してください。 |
reinterpret_last_dimension () | TTypes< T, NDIMS >:: Tensorテンソルデータを Eigen::Tensorに返しますが、最後の次元の要素はより大きな型の単一要素に変換されます。 |
reinterpret_last_dimension () const | TTypes< T, NDIMS >::ConstTensorテンソルデータを Eigen::Tensorに返しますが、最後の次元の要素はより大きな型の単一要素に変換されます。 |
scalar () | TTypes< T >::Scalar |
scalar () const | TTypes< T >::ConstScalar |
shape () const | const TensorShape &テンソルの形状を返します。 |
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現在のテンソルのバッファをマッピングする StringPieceを返します。 |
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この Tensorの型とサイズを持つEigen::Tensorとしてテンソルデータを返します。 |
vec () const | TTypes< T >::ConstVec上記のすべてのメソッドのconstバージョン。 |
公的機能
割り当てられたバイト数
size_t AllocatedBytes() const
AsProtoField
void AsProtoField( TensorProto *proto ) const
*thisテンソルの内容でprotoを埋めます。
AsProtoField()はproto.dtype()の繰り返しフィールドに値を入力し、 AsProtoTensorContent()はproto.tensor_content()の内容をコンパクトな形式でエンコードします。
AsProtoTensorContent
void AsProtoTensorContent( TensorProto *proto ) const
BitcastFrom
Status BitcastFrom( const Tensor & other, DataType dtype, const TensorShape & shape )
他のテンソルをこのテンソルにコピーし、形状を変更して、バッファのデータ型を再解釈します。
Status::OK() が返された場合、2 つのテンソルは同じ基盤となるストレージを共有することになります。
この呼び出しでは、 otherテンソルと指定された型および形状が「互換性がある」(つまり、同じバイト数を占める)ことが必要です。
具体的には:
shape.num_elements() * DataTypeSize(type)
等しくなければならない
other.num_elements() * DataTypeSize(other.dtype())
さらに、この機能には以下が必要です。
- DataTypeSize(other.dtype()) != 0
- DataTypeSize(type) != 0
いずれかの要件が満たされていない場合、errors::InvalidArgument が返されます。
コピー元
bool CopyFrom( const Tensor & other, const TensorShape & shape ) TF_MUST_USE_RESULT
他のテンソルをこのテンソルにコピーして、形状を変更します。
このテンソルは、他のテンソルの基となるストレージを共有します。other.shape other.shape()指定されたshapeの要素を同じ数だけ持っている場合に限り、 true返します。
デバッグ文字列
std::string DebugString( int num_values ) const
デバッグに適した、人間が読みやすいテンソルの要約。
デバッグ文字列
std::string DebugString() const
DeviceSafeDebugString
std::string DeviceSafeDebugString() const
記入説明
void FillDescription( TensorDescription *description ) const
TensorDescriptionプロトコルに、監視やデバッグに役立つテンソルに関するメタデータを記述してください。
フロムプロト
bool FromProto( const TensorProto & other ) TF_MUST_USE_RESULT
otherを解析し、テンソルを構築する。
解析が成功した場合にのみtrueを返します。解析が失敗した場合、 *thisの状態は変更されません。
フロムプロト
bool FromProto( Allocator *a, const TensorProto & other ) TF_MUST_USE_RESULT
整列しています
bool IsAligned() const
このテンソルが整列している場合にのみtrueを返します。
初期化済み
bool IsInitialized() const
必要であれば、このテンソルは初期化されていますか?
要素がゼロのテンソルは、たとえ一度もメモリが割り当てられておらず、メモリ領域も確保されていなくても、常に初期化済みとみなされます。
同じサイズ
bool IsSameSize( const Tensor & b ) const
要素数
int64 NumElements() const
テンソル形状のための便利なアクセサ。
RefCountIsOne
bool RefCountIsOne() const
SharesBufferWith
bool SharesBufferWith( const Tensor & b ) const
スライス
Tensor Slice( int64 dim0_start, int64 dim0_limit ) const
このテンソルを1次元目に沿ってスライスします。
つまり、返されるテンソルは returned[i, ...] == this[dim0_start + i, ...] を満たします。返されるテンソルは、このテンソルと基となるテンソルバッファを共有します。
注: 返されるテンソルは、形状によっては、このテンソルと同じアライメント要件を満たさない場合があります。呼び出し元は、アライメント要件のある特定のメソッド ( flat() 、 tensor() ) を呼び出す前に、返されるテンソルのアライメントを確認する必要があります。
注:N次元テンソルを入力として受け取ると、このメソッドはN次元のテンソルを返します。サブテンソルを選択する場合は、SubSliceを参照してください。
必須条件: dims() >= 1 必須条件: 0 <= dim0_start <= dim0_limit <= dim_size(0)
サブスライス
Tensor SubSlice( int64 index ) const
このテンソルから、1次元目に沿ってサブスライスを選択します。
N次元テンソルを入力として受け取ると、このメソッドはN-1次元のテンソルを返します。返されるテンソルは、入力テンソルの最初の次元に沿った部分スライスです。返されるテンソルのN-1次元は、入力テンソルの最後のN-1次元です。
注: 返されるテンソルは、形状によっては、このテンソルと同じアライメント要件を満たさない場合があります。呼び出し元は、アライメント要件のある特定のメソッド ( flat() 、 tensor() ) を呼び出す前に、返されるテンソルのアライメントを確認する必要があります。
必須条件: dims() >= 1 必須条件: 0 <= index < dim_size(0)
要約値
std::string SummarizeValue( int64 max_entries, bool print_v2 ) const
*this内の最初のmax_entries値を文字列としてレンダリングします。
テンソル
Tensor()
1次元、要素数0の浮動小数点テンソルを作成します。
返されるテンソルはスカラー(形状 {})ではなく、空の1次元テンソル(形状 {0}、 NumElements() == 0)です。要素がないため、値を割り当てる必要はなく、デフォルトで初期化されます( IsInitialized()は true)。これが望ましくない場合は、初期化が必要な1要素のスカラーを作成することを検討してください。
Tensor(DT_FLOAT, TensorShape({}))
Tensor
Tensor( DataType type, const TensorShape & shape )
テンソル
Tensor( Allocator *a, DataType type, const TensorShape & shape )
テンソル
Tensor( Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr )
入力typeとshapeのテンソルを作成し、アロケータaと指定された "allocation_attr" を使用して基となるバッファを割り当てます。
カーネルとステップが既知の場合は、allocation_attr.allocation_will_be_logged を true に設定し、テンソルの構築後に LogMemory::RecordTensorAllocation を呼び出す必要があります。Op 内からTensorコンストラクタを直接呼び出すことは非推奨です。カーネルとステップを記録する新しいテンソルを割り当てるには、OpKernelConstruction/OpKernelContext の allocate_* メソッドを使用してください。
このテンソルの寿命よりもa存続しなければならない。
テンソル
Tensor( DataType type, const TensorShape & shape, TensorBuffer *buf )
入力されたデータ型、形状、バッファを持つテンソルを作成します。
このテンソルに属するbufの参照を取得します。
テンソル
Tensor( DataType type )
指定されたデータ型の空のテンソルを作成します。
Tensor()と同様に、 IsInitialized()が True を返す 1 次元、要素数 0 のTensor を返します。詳細はTensor() のドキュメントを参照してください。
テンソル
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( T *t )=delete
合計バイト数
size_t TotalBytes() const
このテンソルの推定メモリ使用量を返します。
内部からの安全でないコピー
void UnsafeCopyFromInternal( const Tensor & other, DataType dtype, const TensorShape & shape )
BitcastFromと同様ですが、前提条件が満たされていない場合はCHECKが失敗します。
非推奨です。代わりに BitcastFrom を使用し、返される Status を確認してください。
ビットキャスト形状
TTypes< T, NDIMS >::Tensor bit_casted_shaped( gtl::ArraySlice< int64 > new_sizes )
テンソルデータを、 new_sizesで指定された新しい形状のEigen::Tensorに返し、新しいdtype Tにキャストします。
ビットキャストは、移動やコピー操作に便利です。許可されるビットキャストはshaped()との唯一の違いです。
ビットキャスト形状
TTypes< T, NDIMS >::ConstTensor bit_casted_shaped( gtl::ArraySlice< int64 > new_sizes ) const
テンソルデータを、 new_sizesで指定された新しい形状のEigen::Tensorに返し、新しいdtype Tにキャストします。
ビットキャストは、移動やコピー操作に便利です。許可されるビットキャストはshaped()との唯一の違いです。
ビットキャストされたテンソル
TTypes< T, NDIMS >::Tensor bit_casted_tensor()
テンソルデータを、同じサイズで指定されたdtype Tにビット単位でキャストしたEigen::Tensorに返します。
ビットキャストは、移動やコピー操作に便利です。注:これはtensor()と同じですが、ビットキャストが許可されています。
ビットキャストされたテンソル
TTypes< T, NDIMS >::ConstTensor bit_casted_tensor() const
テンソルデータを、同じサイズで指定されたdtype Tにビット単位でキャストしたEigen::Tensorに返します。
ビットキャストは、移動やコピー操作に便利です。注:これはtensor()と同じですが、ビットキャストが許可されています。
データ
void * data() const
寸法サイズ
int64 dim_size( int d ) const
テンソル形状のための便利なアクセサ。
寸法
int dims() const
テンソル形状のための便利なアクセサ。
すべての形状アクセサについては、 tensor_shape.hのTensorShapeの関連メソッドのコメントを参照してください。
dtype
DataType dtype() const
データ型を返します。
フラット
TTypes< T >::Flat flat()
指定されたデータ型と形状のEigen::Tensorとしてテンソルデータを返します。
これらのメソッドを使用すると、任意の次元とサイズでデータにアクセスできます。これらのメソッドを呼び出す際に、テンソルの次元数を知っている必要はありません。ただし、これらのメソッドは、型が一致していること、および要求された次元によって、テンソルと同じ数の要素を持つEigen::Tensor作成されることをCHECK 。
例:
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
フラットインナーディメンション
TTypes< T, NDIMS >::Tensor flat_inner_dims()
フラットインナーディメンション
TTypes< T, NDIMS >::ConstTensor flat_inner_dims() const
フラットインナーアウター寸法
TTypes< T, NDIMS >::Tensor flat_inner_outer_dims( int64 begin )
フラットインナーアウター寸法
TTypes< T, NDIMS >::ConstTensor flat_inner_outer_dims( int64 begin ) const
フラットアウター寸法
TTypes< T, NDIMS >::Tensor flat_outer_dims()
フラットアウター寸法
TTypes< T, NDIMS >::ConstTensor flat_outer_dims() const
マトリックス
TTypes< T >::Matrix matrix()
マトリックス
TTypes< T >::ConstMatrix matrix() const
最後の次元を再解釈
TTypes< T, NDIMS >::Tensor reinterpret_last_dimension()
テンソルデータをEigen::Tensorに返しますが、最後の次元の要素はより大きな型の単一要素に変換されます。
例えば、これは NCHW_VECT_C int8 テンソルを NCHW int32 テンソルとして扱えるカーネルに役立ちます。sizeof(T) は、元の要素型のサイズ * 元の最後の次元の要素数と等しくなければなりません。NDIMS は、元の次元数より 1 少なくなければなりません。
最後の次元を再解釈
TTypes< T, NDIMS >::ConstTensor reinterpret_last_dimension() const
テンソルデータをEigen::Tensorに返しますが、最後の次元の要素はより大きな型の単一要素に変換されます。
例えば、これは NCHW_VECT_C int8 テンソルを NCHW int32 テンソルとして扱えるカーネルに役立ちます。sizeof(T) は、元の要素型のサイズ * 元の最後の次元の要素数と等しくなければなりません。NDIMS は、元の次元数より 1 少なくなければなりません。
スカラー
TTypes< T >::Scalar scalar()
スカラー
TTypes< T >::ConstScalar scalar() const
形
const TensorShape & shape() const
テンソルの形状を返します。
形作られた
TTypes< T, NDIMS >::Tensor shaped( gtl::ArraySlice< int64 > new_sizes )
形作られた
TTypes< T, NDIMS >::ConstTensor shaped( gtl::ArraySlice< int64 > new_sizes ) const
テンソル
TTypes< T, NDIMS >::Tensor tensor()
テンソル
TTypes< T, NDIMS >::ConstTensor tensor() const
テンソルデータ
StringPiece tensor_data() const
現在のテンソルのバッファをマッピングするStringPieceを返します。
返されるStringPieceは、CPUが直接アドレス指定できないデバイス上のメモリ位置を指している可能性があります。
注: 基となるテンソルバッファは参照カウントされるため、StringPiece によってマッピングされるコンテンツの有効期間はバッファの有効期間と一致します。呼び出し元は、StringPiece が使用されている間はバッファが破棄されないようにする必要があります。
必須: DataTypeCanUseMemcpy(dtype()) 。
非整列フラット
TTypes< T >::UnalignedFlat unaligned_flat()
非整列フラット
TTypes< T >::UnalignedConstFlat unaligned_flat() const
整列していない形状
TTypes< T, NDIMS >::UnalignedTensor unaligned_shaped( gtl::ArraySlice< int64 > new_sizes )
整列していない形状
TTypes< T, NDIMS >::UnalignedConstTensor unaligned_shaped( gtl::ArraySlice< int64 > new_sizes ) const
ベクター
TTypes< T >::Vec vec()
このテンソルの型とサイズを持つ Eigen::Tensor としてテンソルデータを返します。
テンソルのデータ型と次元数がわかっている場合、Eigen::Tensor をテンソルのサイズに合わせて自動的にサイズ調整したい場合は、これらのメソッドを使用してください。型またはサイズが一致しない場合、実装チェックが失敗します。
例:
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
上記のすべてのメソッドのconstバージョン。
~テンソル
~Tensor()