dòng chảy căng:: Tenxơ
#include <tensor.h>
Đại diện cho một mảng giá trị n chiều.
Bản tóm tắt
Hàm tạo và hàm hủy | |
---|---|
Tensor () Tạo tensor float 1 chiều, 0 phần tử. | |
Tensor (DataType type, const TensorShape & shape) | |
Tensor (Allocator *a, DataType type, const TensorShape & shape) Tạo một tensor với type và shape đầu vào, sử dụng bộ cấp phát a để phân bổ bộ đệm bên dưới. | |
Tensor (Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr) Tạo một tensor với type và shape đầu vào, sử dụng bộ cấp phát a và "allocation_attr" đã chỉ định để phân bổ bộ đệm cơ bản. | |
Tensor (DataType type) Tạo một Tensor trống của kiểu dữ liệu đã cho. | |
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 (string 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) Sao chép hàm tạo. | |
Tensor ( Tensor && other) Di chuyển hàm tạo. | |
~Tensor () |
Chức năng công cộng | |
---|---|
AllocatedBytes () const | size_t |
AsProtoField (TensorProto *proto) const | void Điền vào proto nội dung của *this . |
AsProtoTensorContent (TensorProto *proto) const | void |
BitcastFrom (const Tensor & other, DataType dtype, const TensorShape & shape) | Sao chép tensor khác vào tensor này, định hình lại nó và diễn giải lại kiểu dữ liệu của bộ đệm. |
CopyFrom (const Tensor & other, const TensorShape & shape) TF_MUST_USE_RESULT | bool Sao chép tensor khác vào tensor này và định hình lại nó. |
DebugString (int num_values) const | string Bản tóm tắt mà con người có thể đọc được về tensor phù hợp để gỡ lỗi. |
DebugString () const | string |
DeviceSafeDebugString () const | string |
FillDescription (TensorDescription *description) const | void Điền vào proto TensorDescription siêu dữ liệu về tensor hữu ích cho việc giám sát và gỡ lỗi. |
FromProto (const TensorProto & other) TF_MUST_USE_RESULT | bool Phân tích cú pháp other và xây dựng tensor. |
FromProto (Allocator *a, const TensorProto & other) TF_MUST_USE_RESULT | bool |
IsAligned () const | bool Trả về true nếu tensor này được căn chỉnh. |
IsInitialized () const | bool Nếu cần, Tensor này đã được khởi tạo chưa? |
IsSameSize (const Tensor & b) const | bool |
NumElements () const | int64 Công cụ truy cập tiện lợi cho hình dạng tensor. |
SharesBufferWith (const Tensor & b) const | bool |
Slice (int64 dim0_start, int64 dim0_limit) const | Cắt tensor này dọc theo chiều thứ nhất. |
SubSlice (int64 index) const | Chọn một lát con từ tensor này dọc theo chiều thứ nhất. |
SummarizeValue (int64 max_entries, bool print_v2) const | string Kết xuất các giá trị max_entries đầu tiên trong *this thành một chuỗi. |
TotalBytes () const | size_t Trả về mức sử dụng bộ nhớ ước tính của tensor này. |
UnsafeCopyFromInternal (const Tensor & other, DataType dtype, const TensorShape & shape) | void Giống như BitcastFrom, nhưng CHECK không thành công nếu không đáp ứng bất kỳ điều kiện tiên quyết nào. |
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) | TTypes< T, NDIMS >:: Tensor Trả lại dữ liệu tensor về Eigen::Tensor với hình dạng mới được chỉ định trong new_sizes và chuyển sang dtype T mới. |
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) const | TTypes< T, NDIMS >::ConstTensor Trả lại dữ liệu tensor về Eigen::Tensor với hình dạng mới được chỉ định trong new_sizes và chuyển sang dtype T mới. |
bit_casted_tensor () | TTypes< T, NDIMS >:: Tensor Trả lại dữ liệu tensor về một Eigen::Tensor có cùng kích thước nhưng được truyền theo từng bit thành dtype T đã chỉ định. |
bit_casted_tensor () const | TTypes< T, NDIMS >::ConstTensor Trả lại dữ liệu tensor về một Eigen::Tensor có cùng kích thước nhưng được truyền theo từng bit thành dtype T đã chỉ định. |
dim_size (int d) const | int64 Công cụ truy cập tiện lợi cho hình dạng tensor. |
dims () const | int Công cụ truy cập tiện lợi cho hình dạng tensor. |
dtype () const | DataType Trả về kiểu dữ liệu. |
flat () | TTypes< T >::Flat Trả về dữ liệu tensor dưới dạng Eigen::Tensor của kiểu dữ liệu và hình dạng được chỉ định. |
flat () const | TTypes< T >::ConstFlat |
flat_inner_dims () | TTypes< T, NDIMS >:: Tensor Trả về dữ liệu dưới dạng Eigen::Tensor với các kích thước NDIMS, thu gọn tất cả các kích thước Tensor trừ NDIMS-1 cuối cùng thành kích thước đầu tiên của kết quả. |
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 Trả về dữ liệu dưới dạng Eigen::Tensor với các kích thước NDIMS, thu gọn tất cả các kích thước Tensor trừ NDIMS-1 đầu tiên thành kích thước cuối cùng của kết quả. |
flat_outer_dims () const | TTypes< T, NDIMS >::ConstTensor |
matrix () | TTypes< T >::Matrix |
matrix () const | TTypes< T >::ConstMatrix |
operator= (const Tensor & other) | Tensor & Chỉ định toán tử. Tenor này chia sẻ bộ nhớ cơ bản của người khác. |
operator= ( Tensor && other) | Tensor & Di chuyển toán tử. Xem hàm tạo di chuyển để biết chi tiết. |
reinterpret_last_dimension () | TTypes< T, NDIMS >:: Tensor Trả lại dữ liệu tensor về Eigen::Tensor với các phần tử thứ nguyên cuối cùng được chuyển đổi thành các phần tử đơn lẻ thuộc loại lớn hơn. |
reinterpret_last_dimension () const | TTypes< T, NDIMS >::ConstTensor Trả lại dữ liệu tensor về Eigen::Tensor với các phần tử thứ nguyên cuối cùng được chuyển đổi thành các phần tử đơn lẻ thuộc loại lớn hơn. |
scalar () | TTypes< T >::Scalar |
scalar () const | TTypes< T >::ConstScalar |
shape () const | const TensorShape & Trả về hình dạng của 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 Trả về một StringPiece ánh xạ bộ đệm của tensor hiện tại. |
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 Trả về dữ liệu tensor dưới dạng Eigen::Tensor với loại và kích thước của Tensor này. |
vec () const | TTypes< T >::ConstVec Phiên bản Const của tất cả các phương pháp trên. |
Chức năng công cộng
Byte được phân bổ
size_t AllocatedBytes() const
AsProtoField
void AsProtoField( TensorProto *proto ) const
Điền vào proto
nội dung của *this
.
AsProtoField()
điền vào trường lặp lại cho proto.dtype()
, trong khi AsProtoTensorContent()
mã hóa nội dung trong proto.tensor_content()
ở dạng thu gọn.
AsProtoTensorNội dung
void AsProtoTensorContent( TensorProto *proto ) const
BitcastTừ
Status BitcastFrom( const Tensor & other, DataType dtype, const TensorShape & shape )
Sao chép tensor khác vào tensor này, định hình lại nó và diễn giải lại kiểu dữ liệu của bộ đệm.
Nếu Status::OK() được trả về, hai tensor hiện chia sẻ cùng một bộ lưu trữ cơ bản.
Lệnh gọi này yêu cầu tensor other
cũng như loại và hình dạng đã cho phải "tương thích" (tức là chúng chiếm cùng số byte).
Cụ thể:
hình dạng.num_elements() * DataTypeSize(type)
phải bằng
other.num_elements() * DataTypeSize(other.dtype())
Ngoài ra, chức năng này yêu cầu:
- DataTypeSize(other.dtype()) != 0
- DataTypeSize(type) != 0
Nếu bất kỳ yêu cầu nào không được đáp ứng, thì error::InvalidArgument sẽ được trả về.
Sao chép từ
bool CopyFrom( const Tensor & other, const TensorShape & shape ) TF_MUST_USE_RESULT
Sao chép tensor khác vào tensor này và định hình lại nó.
Tenor này chia sẻ bộ nhớ cơ bản của người khác. Trả về true
nếu other.shape()
có cùng số phần tử của shape
đã cho.
Chuỗi gỡ lỗi
string DebugString( int num_values ) const
Bản tóm tắt mà con người có thể đọc được về tensor phù hợp để gỡ lỗi.
Chuỗi gỡ lỗi
string DebugString() const
Chuỗi DeviceSafeDebug
string DeviceSafeDebugString() const
ĐiềnMô tả
void FillDescription( TensorDescription *description ) const
Điền vào proto TensorDescription
siêu dữ liệu về tensor hữu ích cho việc giám sát và gỡ lỗi.
TừProto
bool FromProto( const TensorProto & other ) TF_MUST_USE_RESULT
Phân tích cú pháp other
và xây dựng tensor.
Trả về true
nếu phân tích cú pháp thành công. Nếu phân tích cú pháp không thành công, trạng thái *this
không thay đổi.
TừProto
bool FromProto( Allocator *a, const TensorProto & other ) TF_MUST_USE_RESULT
được căn chỉnh
bool IsAligned() const
Trả về true nếu tensor này được căn chỉnh.
Được khởi tạo
bool IsInitialized() const
Nếu cần, Tensor này đã được khởi tạo chưa?
Tensor không phần tử luôn được coi là đã khởi tạo, ngay cả khi chúng chưa bao giờ được gán và không được phân bổ bất kỳ bộ nhớ nào.
Có cùng kích thước
bool IsSameSize( const Tensor & b ) const
số phần tử
int64 NumElements() const
Công cụ truy cập tiện lợi cho hình dạng tensor.
Bộ đệm chia sẻVới
bool SharesBufferWith( const Tensor & b ) const
Lát cắt
Tensor Slice( int64 dim0_start, int64 dim0_limit ) const
Cắt tensor này dọc theo chiều thứ nhất.
Tức là tensor trả về thỏa mãn return[i, ...] == this[dim0_start + i, ...]. Tenxor được trả về chia sẻ bộ đệm tensor cơ bản với tensor này.
LƯU Ý: Tenxor được trả về có thể không đáp ứng yêu cầu căn chỉnh giống như tenxơ này tùy thuộc vào hình dạng. Phương thức gọi phải kiểm tra sự căn chỉnh của tensor được trả về trước khi gọi một số phương thức nhất định có yêu cầu căn chỉnh (ví dụ: flat()
, tensor()
).
LƯU Ý: Khi được cung cấp một tenxơ N chiều, phương thức này cũng trả về một tenxơ có N chiều. Nếu bạn muốn chọn một tensor phụ, hãy xem SubSlice.
YÊU CẦU: dims()
>= 1 YÊU CẦU: 0 <= dim0_start <= dim0_limit <= dim_size(0)
lát phụ
Tensor SubSlice( int64 index ) const
Chọn một lát con từ tensor này dọc theo chiều thứ nhất.
Khi được cung cấp một tenxơ N chiều, phương thức này trả về một tenxơ có kích thước N-1, trong đó tenxơ được trả về là một phần con của tenxơ đầu vào dọc theo chiều thứ nhất. Kích thước N-1 của tensor trả về là kích thước N-1 cuối cùng của tensor đầu vào.
LƯU Ý: Tenxor được trả về có thể không đáp ứng yêu cầu căn chỉnh giống như tenxơ này tùy thuộc vào hình dạng. Phương thức gọi phải kiểm tra sự căn chỉnh của tensor được trả về trước khi gọi một số phương thức nhất định có yêu cầu căn chỉnh (ví dụ: flat()
, tensor()
).
YÊU CẦU: dims()
>= 1 YÊU CẦU: 0 <= dim0_start < dim_size(0)
Tóm tắt giá trị
string SummarizeValue( int64 max_entries, bool print_v2 ) const
Kết xuất các giá trị max_entries
đầu tiên trong *this
thành một chuỗi.
Tenxơ
Tensor()
Tạo tensor float 1 chiều, 0 phần tử.
Tensor được trả về không phải là một đại lượng vô hướng (hình dạng {}), mà thay vào đó là một Tensor một chiều trống (hình dạng {0}, NumElements() == 0). Vì nó không có phần tử nên nó không cần được gán giá trị và được khởi tạo theo mặc định ( IsInitialized() là đúng). Nếu điều này là không mong muốn, hãy xem xét việc tạo vô hướng một phần tử yêu cầu khởi tạo:
Tensor(DT_FLOAT, TensorShape({}))
Tensor
Tensor( DataType type, const TensorShape & shape )
Tạo một Tensor có type
và shape
nhất định.
Nếu LogMemory::IsEnabled() thì việc phân bổ được ghi lại là đến từ một hạt nhân và bước không xác định. Việc gọi trực tiếp hàm tạo Tensor từ bên trong Op không còn được dùng nữa: hãy sử dụng các phương thức OpKernelConstruction/OpKernelContext phân bổ_* để phân bổ một tensor mới, ghi lại kernel và bước.
Bộ đệm cơ bản được phân bổ bằng CPUAllocator
.
Tenxơ
Tensor( Allocator *a, DataType type, const TensorShape & shape )
Tạo một tensor với type
và shape
đầu vào, sử dụng bộ cấp phát a
để phân bổ bộ đệm bên dưới.
Nếu LogMemory::IsEnabled() thì việc phân bổ được ghi lại là đến từ một hạt nhân và bước không xác định. Việc gọi trực tiếp hàm tạo Tensor từ bên trong Op không còn được dùng nữa: hãy sử dụng các phương thức OpKernelConstruction/OpKernelContext phân bổ_* để phân bổ một tensor mới, ghi lại kernel và bước.
a
phải tồn tại lâu hơn thời gian tồn tại của Tensor này.
Tenxơ
Tensor( Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr )
Tạo một tensor với type
và shape
đầu vào, sử dụng bộ cấp phát a
và "allocation_attr" đã chỉ định để phân bổ bộ đệm cơ bản.
Nếu kernel và bước đã biết phân bổ_attr.allocation_will_be_logged thì phải được đặt thành true và LogMemory::RecordTensorAllocation nên được gọi sau khi tensor được xây dựng. Việc gọi trực tiếp hàm tạo Tensor từ bên trong Op không còn được dùng nữa: hãy sử dụng các phương thức OpKernelConstruction/OpKernelContext phân bổ_* để phân bổ một tensor mới, ghi lại kernel và bước.
a
phải tồn tại lâu hơn thời gian tồn tại của Tensor này.
Tenxơ
Tensor( DataType type )
Tạo một Tensor trống của kiểu dữ liệu đã cho.
Giống như Tensor() , trả về Tensor 1 chiều, 0 phần tử với IsInitialized() trả về True. Xem tài liệu Tensor() để biết chi tiết.
Tenxơ
Tensor( float scalar_value )
Tenxơ
Tensor( double scalar_value )
Tenxơ
Tensor( int32 scalar_value )
Tenxơ
Tensor( uint32 scalar_value )
Tenxơ
Tensor( uint16 scalar_value )
Tenxơ
Tensor( uint8 scalar_value )
Tenxơ
Tensor( int16 scalar_value )
Tenxơ
Tensor( int8 scalar_value )
Tenxơ
Tensor( string scalar_value )
Tenxơ
Tensor( complex64 scalar_value )
Tenxơ
Tensor( complex128 scalar_value )
Tenxơ
Tensor( int64 scalar_value )
Tenxơ
Tensor( uint64 scalar_value )
Tenxơ
Tensor( bool scalar_value )
Tenxơ
Tensor( qint8 scalar_value )
Tenxơ
Tensor( quint8 scalar_value )
Tenxơ
Tensor( qint16 scalar_value )
Tenxơ
Tensor( quint16 scalar_value )
Tenxơ
Tensor( qint32 scalar_value )
Tenxơ
Tensor( bfloat16 scalar_value )
Tenxơ
Tensor( Eigen::half scalar_value )
Tenxơ
Tensor( ResourceHandle scalar_value )
Tenxơ
Tensor( const char *scalar_value )
Tenxơ
Tensor( Tensor && other )
Di chuyển hàm tạo.
Sau cuộc gọi này,
Tổng số byte
size_t TotalBytes() const
Trả về mức sử dụng bộ nhớ ước tính của tensor này.
Không an toànSao chépTừNội bộ
void UnsafeCopyFromInternal( const Tensor & other, DataType dtype, const TensorShape & shape )
Giống như BitcastFrom, nhưng CHECK không thành công nếu không đáp ứng bất kỳ điều kiện tiên quyết nào.
Không dùng nữa. Thay vào đó, hãy sử dụng BitcastFrom và kiểm tra Status được trả về.
bit_casted_shape
TTypes< T, NDIMS >::Tensor bit_casted_shaped( gtl::ArraySlice< int64 > new_sizes )
Trả lại dữ liệu tensor về Eigen::Tensor
với hình dạng mới được chỉ định trong new_sizes
và chuyển sang dtype T
mới.
Sử dụng bitcast rất hữu ích cho các hoạt động di chuyển và sao chép. Bitcast được phép là điểm khác biệt duy nhất so với shaped()
.
bit_casted_shape
TTypes< T, NDIMS >::ConstTensor bit_casted_shaped( gtl::ArraySlice< int64 > new_sizes ) const
Trả lại dữ liệu tensor về Eigen::Tensor
với hình dạng mới được chỉ định trong new_sizes
và chuyển sang dtype T
mới.
Sử dụng bitcast rất hữu ích cho các hoạt động di chuyển và sao chép. Bitcast được phép là điểm khác biệt duy nhất so với shaped()
.
bit_casted_tensor
TTypes< T, NDIMS >::Tensor bit_casted_tensor()
Trả lại dữ liệu tensor về một Eigen::Tensor
có cùng kích thước nhưng được truyền theo từng bit thành dtype T
đã chỉ định.
Sử dụng bitcast rất hữu ích cho các hoạt động di chuyển và sao chép. LƯU Ý: điều này giống như tensor()
ngoại trừ việc cho phép bitcast.
bit_casted_tensor
TTypes< T, NDIMS >::ConstTensor bit_casted_tensor() const
Trả lại dữ liệu tensor về một Eigen::Tensor
có cùng kích thước nhưng được truyền theo từng bit thành dtype T
đã chỉ định.
Sử dụng bitcast rất hữu ích cho các hoạt động di chuyển và sao chép. LƯU Ý: điều này giống như tensor()
ngoại trừ việc cho phép bitcast.
mờ_kích thước
int64 dim_size( int d ) const
Công cụ truy cập tiện lợi cho hình dạng tensor.
mờ đi
int dims() const
Công cụ truy cập tiện lợi cho hình dạng tensor.
Đối với tất cả các trình truy cập hình dạng, hãy xem nhận xét về các phương pháp có liên quan của TensorShape
trong tensor_shape.h
.
dtype
DataType dtype() const
Trả về kiểu dữ liệu.
phẳng
TTypes< T >::Flat flat()
Trả về dữ liệu tensor dưới dạng Eigen::Tensor
của kiểu dữ liệu và hình dạng được chỉ định.
Các phương pháp này cho phép bạn truy cập dữ liệu với kích thước và kích thước bạn chọn. Bạn không cần biết số chiều của Tensor để gọi chúng. Tuy nhiên, họ CHECK
loại có khớp không và kích thước được yêu cầu có tạo ra Eigen::Tensor
có cùng số phần tử như tensor hay không.
Ví dụ:
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
phẳng_inner_dims
TTypes< T, NDIMS >::Tensor flat_inner_dims()
phẳng_inner_dims
TTypes< T, NDIMS >::ConstTensor flat_inner_dims() const
phẳng_inner_outer_dims
TTypes< T, NDIMS >::Tensor flat_inner_outer_dims( int64 begin )
Trả về dữ liệu dưới dạng Eigen::Tensor với các kích thước NDIMS, thu gọn các kích thước Tensor 'bắt đầu' đầu tiên thành chiều thứ nhất của kết quả và các kích thước Tensor của dims() cuối cùng - 'bắt đầu' - NDIMS vào chiều cuối cùng của kết quả.
Nếu 'bắt đầu' < 0 thì |'bắt đầu'| kích thước hàng đầu của kích thước 1 sẽ được thêm vào. Nếu 'begin' + NDIMS > dims() thì 'begin' + NDIMS - dims() kích thước cuối cùng có kích thước 1 sẽ được thêm vào.
phẳng_inner_outer_dims
TTypes< T, NDIMS >::ConstTensor flat_inner_outer_dims( int64 begin ) const
phẳng_outer_dims
TTypes< T, NDIMS >::Tensor flat_outer_dims()
phẳng_outer_dims
TTypes< T, NDIMS >::ConstTensor flat_outer_dims() const
ma trận
TTypes< T >::Matrix matrix()
ma trận
TTypes< T >::ConstMatrix matrix() const
toán tử=
Tensor & operator=( const Tensor & other )
Chỉ định toán tử. Tenor này chia sẻ bộ nhớ cơ bản của người khác.
toán tử=
Tensor & operator=( Tensor && other )
Di chuyển toán tử. Xem hàm tạo di chuyển để biết chi tiết.
diễn giải lại_last_dimension
TTypes< T, NDIMS >::Tensor reinterpret_last_dimension()
Trả lại dữ liệu tensor về Eigen::Tensor
với các phần tử thứ nguyên cuối cùng được chuyển đổi thành các phần tử đơn lẻ thuộc loại lớn hơn.
Ví dụ: điều này hữu ích cho các hạt nhân có thể xử lý các tensor NCHW_VECT_C int8 như các tensor NCHW int32. sizeof(T) phải bằng kích thước của loại phần tử ban đầu * num phần tử ở thứ nguyên cuối cùng ban đầu. NDIMS phải nhỏ hơn 1 so với số thứ nguyên ban đầu.
diễn giải lại_last_dimension
TTypes< T, NDIMS >::ConstTensor reinterpret_last_dimension() const
Trả lại dữ liệu tensor về Eigen::Tensor
với các phần tử thứ nguyên cuối cùng được chuyển đổi thành các phần tử đơn lẻ thuộc loại lớn hơn.
Ví dụ: điều này hữu ích cho các hạt nhân có thể xử lý các tensor NCHW_VECT_C int8 như các tensor NCHW int32. sizeof(T) phải bằng kích thước của loại phần tử ban đầu * num phần tử ở thứ nguyên cuối cùng ban đầu. NDIMS phải nhỏ hơn 1 so với số thứ nguyên ban đầu.
vô hướng
TTypes< T >::Scalar scalar()
vô hướng
TTypes< T >::ConstScalar scalar() const
hình dạng
const TensorShape & shape() const
Trả về hình dạng của tensor.
có hình dạng
TTypes< T, NDIMS >::Tensor shaped( gtl::ArraySlice< int64 > new_sizes )
có hình dạng
TTypes< T, NDIMS >::ConstTensor shaped( gtl::ArraySlice< int64 > new_sizes ) const
tenxơ
TTypes< T, NDIMS >::Tensor tensor()
tenxơ
TTypes< T, NDIMS >::ConstTensor tensor() const
dữ liệu tensor
StringPiece tensor_data() const
Trả về một StringPiece
ánh xạ bộ đệm của tensor hiện tại.
StringPiece
được trả về có thể trỏ đến vị trí bộ nhớ trên các thiết bị mà CPU không thể xử lý trực tiếp.
LƯU Ý: Bộ đệm tensor cơ bản được tính lại, do đó thời gian tồn tại của nội dung được StringPiece
ánh xạ khớp với thời gian tồn tại của bộ đệm; người gọi nên sắp xếp để đảm bảo bộ đệm không bị phá hủy trong khi StringPiece
vẫn được sử dụng.
YÊU CẦU: DataTypeCanUseMemcpy(dtype())
.
unaligned_flat
TTypes< T >::UnalignedFlat unaligned_flat()
unaligned_flat
TTypes< T >::UnalignedConstFlat unaligned_flat() const
không có hình dạng
TTypes< T, NDIMS >::UnalignedTensor unaligned_shaped( gtl::ArraySlice< int64 > new_sizes )
không có hình dạng
TTypes< T, NDIMS >::UnalignedConstTensor unaligned_shaped( gtl::ArraySlice< int64 > new_sizes ) const
vec
TTypes< T >::Vec vec()
Trả về dữ liệu tensor dưới dạng Eigen::Tensor với loại và kích thước của Tensor này.
Sử dụng các phương pháp này khi bạn biết loại dữ liệu và số lượng kích thước của Tensor và bạn muốn Eigen::Tensor tự động có kích thước theo kích thước Tensor. Việc kiểm tra triển khai không thành công nếu loại hoặc kích thước không khớp.
Ví dụ:
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
Phiên bản Const của tất cả các phương pháp trên.
~ Tenor
~Tensor()