テンソルフロー::テンソル
#include <tensor.h>
値の n 次元配列を表します。
まとめ
コンストラクターとデストラクター | |
---|---|
Tensor () 1 次元の 0 要素の float テンソルを作成します。 | |
Tensor (DataType type, const TensorShape & shape) | |
Tensor (Allocator *a, DataType type, const TensorShape & shape) アロケーター a を使用して基礎となるバッファーを割り当て、入力type とshape でテンソルを作成します。 | |
Tensor (Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr) アロケーター a と指定された "allocation_attr" を使用して、基になるバッファーを割り当てる、入力type とshape でテンソルを作成します。 | |
Tensor (DataType type, const TensorShape & shape, TensorBuffer *buf) 入力データ型、形状、およびバッファを使用してテンソルを作成します。 | |
Tensor (DataType type) 指定されたデータ型の空の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 (const Tensor & other) コンストラクターをコピーします。 | |
Tensor ( Tensor && other) コンストラクターを移動します。 | |
~Tensor () |
公共機能 | |
---|---|
AllocatedBytes () const | size_t |
AsProtoField (TensorProto *proto) const | void proto に*this tensor の内容を入力します。 |
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 | string デバッグに適した人間が読めるテンソルの概要。 |
DebugString () const | string |
DeviceSafeDebugString () const | string |
FillDescription (TensorDescription *description) const | void TensorDescription プロトに、モニタリングとデバッグに役立つテンソルに関するメタデータを入力します。 |
FromProto (const TensorProto & other) TF_MUST_USE_RESULT | bool other を解析してテンソルを構築します。 |
FromProto (Allocator *a, const TensorProto & other) TF_MUST_USE_RESULT | bool |
IsAligned () const | bool このテンソルが位置合わせされている場合は true を返します。 |
IsInitialized () const | bool 必要に応じて、このTensor は初期化されていますか? |
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 | 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 上記のすべてのメソッドの定数バージョン。 |
公共機能
割り当てられたバイト数
size_t AllocatedBytes() const
プロトフィールドとして
void AsProtoField( TensorProto *proto ) const
proto
に*this
tensor の内容を入力します。
AsProtoField()
proto.dtype()
の繰り返しフィールドを埋めますが、 AsProtoTensorContent()
proto.tensor_content()
のコンテンツをコンパクトな形式でエンコードします。
AsProtoTensorContent
void AsProtoTensorContent( TensorProto *proto ) const
ビットキャストから
Status BitcastFrom( const Tensor & other, DataType dtype, const TensorShape & shape )
他のテンソルをこのテンソルにコピーし、それを再形成し、バッファのデータ型を再解釈します。
Status::OK() が返された場合、2 つのテンソルは同じ基礎となるストレージを共有します。
この呼び出しでは、 other
テンソルと指定された型および形状が「互換性がある」(つまり、同じバイト数を占有する) 必要があります。
具体的には:
shape.num_elements() * DataTypeSize(タイプ)
等しい必要があります
other.num_elements() * DataTypeSize(other.dtype())
さらに、この関数には以下が必要です。
- DataTypeSize(other.dtype()) != 0
- DataTypeSize(タイプ) != 0
いずれかの要件が満たされていない場合は、errors::InvalidArgument が返されます。
コピー元
bool CopyFrom( const Tensor & other, const TensorShape & shape ) TF_MUST_USE_RESULT
他のテンソルをこのテンソルにコピーし、再形成します。
このテンソルは他のテンソルの基礎となるストレージを共有します。 other.shape()
に指定されたshape
の要素が同じ数ある場合はtrue
を返します。
デバッグ文字列
string DebugString( int num_values ) const
デバッグに適した人間が読めるテンソルの概要。
デバッグ文字列
string DebugString() const
DeviceSafeDebugString
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
IsAligned
bool IsAligned() const
このテンソルが位置合わせされている場合は true を返します。
初期化されています
bool IsInitialized() const
必要に応じて、このTensor は初期化されていますか?
ゼロ要素 Tensor は、メモリが割り当てられておらず、メモリが割り当てられていない場合でも、常に初期化されているとみなされます。
同じサイズです
bool IsSameSize( const Tensor & b ) const
要素数
int64 NumElements() const
テンソル形状の便利なアクセサー。
RefCountIsOne
bool RefCountIsOne() const
バッファを共有
bool SharesBufferWith( const Tensor & b ) const
スライス
Tensor Slice( int64 dim0_start, int64 dim0_limit ) const
このテンソルを 1 次元に沿ってスライスします。
つまり、返されたテンソルは、returned[i, ...] == this[dim0_start + i, ...] を満たします。返されたテンソルは、基になるテンソル バッファーをこのテンソルと共有します。
注: 返されたテンソルは、形状によっては、このテンソルと同じ位置合わせ要件を満たさない場合があります。呼び出し元は、アライメント要件のある特定のメソッド ( flat()
、 tensor()
) を呼び出す前に、返された tensor のアライメントをチェックする必要があります。
注: N 次元のテンソルが与えられると、このメソッドは同じく N 次元のテンソルを返します。サブテンソルを選択する場合は、「サブスライス」を参照してください。
必須: 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()
) を呼び出す前に、返された tensor のアライメントをチェックする必要があります。
必須: dims()
>= 1 必須: 0 <= index < dim_size(0)
要約値
string SummarizeValue( int64 max_entries, bool print_v2 ) const
*this
の最初のmax_entries
値を文字列にレンダリングします。
テンソル
Tensor()
1 次元の 0 要素の float テンソルを作成します。
返されたTensor はスカラー (形状 {}) ではなく、空の 1 次元Tensor (形状 {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 )
アロケーターa
と指定された "allocation_attr" を使用して、基になるバッファーを割り当てる、入力type
とshape
でテンソルを作成します。
カーネルとステップがわかっている場合は、allocation_attr.allocation_will_be_logged を true に設定し、テンソルの構築後に LogMemory::RecordTensorAllocation を呼び出す必要があります。 Op 内からTensorコンストラクターを直接呼び出すことは非推奨です。OpKernelConstruction/OpKernelContext assign_* メソッドを使用して、カーネルとステップを記録する新しいテンソルを割り当てます。
a
このTensorの存続期間を超えて存続する必要があります。
テンソル
Tensor( DataType type, const TensorShape & shape, TensorBuffer *buf )
入力データ型、形状、およびバッファを使用してテンソルを作成します。
このTensorに属する buf の ref を取得します。
テンソル
Tensor( DataType type )
指定されたデータ型の空のTensorを作成します。
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( Tensor && other )
コンストラクターを移動します。
この電話の後、
合計バイト数
size_t TotalBytes() const
このテンソルの推定メモリ使用量を返します。
安全でない内部からコピー
void UnsafeCopyFromInternal( const Tensor & other, DataType dtype, const TensorShape & shape )
BitcastFrom と似ていますが、前提条件が満たされていない場合、CHECK は失敗します。
廃止されました。代わりに BitcastFrom を使用し、返されたステータスを確認してください。
ビットキャストされた形状
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()
との唯一の違いです。
bit_casted_tensor
TTypes< T, NDIMS >::Tensor bit_casted_tensor()
テンソル データを、同じサイズで、指定された dtype T
にビットごとにキャストしたEigen::Tensor
に返します。
ビットキャストの使用は、移動およびコピー操作に便利です。注: これは、ビットキャストが許可されていることを除いて、 tensor()
と同じです。
bit_casted_tensor
TTypes< T, NDIMS >::ConstTensor bit_casted_tensor() const
テンソル データを、同じサイズで、指定された dtype T
にビットごとにキャストしたEigen::Tensor
に返します。
ビットキャストの使用は、移動およびコピー操作に便利です。注: これは、ビットキャストが許可されていることを除いて、 tensor()
と同じです。
データ
void * data() const
dim_size
int64 dim_size( int d ) const
テンソル形状の便利なアクセサー。
薄暗くなります
int dims() const
テンソル形状の便利なアクセサー。
すべてのシェイプ アクセサーについては、 tensor_shape.h
のTensorShape
の関連メソッドのコメントを参照してください。
dtype
DataType dtype() const
データ型を返します。
フラット
TTypes< T >::Flat flat()
テンソル データを、データ型と指定された形状のEigen::Tensor
として返します。
これらのメソッドを使用すると、選択したディメンションとサイズでデータにアクセスできます。それらを呼び出すために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 ({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 ();
flat
TTypes< T >::ConstFlat flat() const
flat_inner_dims
TTypes< T, NDIMS >::Tensor flat_inner_dims()
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 )
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()
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) は、元の要素タイプのサイズ * 元の最後の次元の num 要素と等しくなければなりません。 NDIMS は、元の次元数より 1 小さい値にする必要があります。
最後の次元を再解釈する
TTypes< T, NDIMS >::ConstTensor reinterpret_last_dimension() const
最後の次元要素がより大きな型の単一要素に変換された状態で、テンソル データをEigen::Tensor
に返します。
たとえば、これは NCHW_VECT_C int8 テンソルを NCHW int32 テンソルとして扱うことができるカーネルに役立ちます。 sizeof(T) は、元の要素タイプのサイズ * 元の最後の次元の num 要素と等しくなければなりません。 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()
テンソル データを、この Tensor の型とサイズを含む Eigen::Tensor として返します。
Tensor のデータ型と次元数がわかっていて、Eigen::Tensor を 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 (); // 2D Eigen::Tensor, 3 x 5. auto vec = my_mat.vec (); // CHECK fails as my_mat is 2D. auto vec = my_mat.tensor (); // CHECK fails as my_mat is 2D. auto mat = my_mat.matrix ();// CHECK fails as type mismatch.
vec
TTypes< T >::ConstVec vec() const
上記のすべてのメソッドの定数バージョン。
~テンソル
~Tensor()