tensorflow:: Tensor
#include <tensor.h>Biểu diễn một mảng giá trị n chiều.
Bản tóm tắt
Hàm khởi tạo và hàm hủy | |
|---|---|
Tensor () Tạo một tensor float một chiều, không có phần tử nào. | |
Tensor (DataType type, const TensorShape & shape) | |
Tensor (Allocator *a, DataType type, const TensorShape & shape) Tạo một tensor với type dữ liệu và shape đầu vào, sử dụng bộ cấp phát a để cấp phát bộ đệm cơ bản. | |
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à thuộc tính `allocation_attr` được chỉ định để cấp phát bộ đệm cơ bản. | |
Tensor (DataType type, const TensorShape & shape, TensorBuffer *buf) Tạo một tensor với kiểu dữ liệu đầu vào, hình dạng và bộ đệm. | |
Tensor (DataType type) Tạo một Tensor rỗng với 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 (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) Hàm tạo sao chép. | |
Tensor ( Tensor && other) Hàm tạo di chuyển. | |
~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 tensor *this . |
AsProtoTensorContent (TensorProto *proto) const | void |
BitcastFrom (const Tensor & other, DataType dtype, const TensorShape & shape) | Sao chép tensor kia 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 buffer. |
CopyFrom (const Tensor & other, const TensorShape & shape) TF_MUST_USE_RESULT | bool Sao chép tensor kia vào tensor này và định hình lại nó. |
DebugString (int num_values) const | string Bản tóm tắt dễ hiểu dành cho người dùng về tensor, thích hợp cho việc gỡ lỗi. |
DebugString () const | string |
DeviceSafeDebugString () const | string |
FillDescription (TensorDescription *description) const | void Hãy điền thông tin siêu dữ liệu về tensor vào proto TensorDescription , những thông tin này 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 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 ích 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 theo chiều thứ nhất. |
SubSlice (int64 index) const | Chọn một lát cắt con từ tensor này dọc theo chiều thứ nhất. |
SummarizeValue (int64 max_entries, bool print_v2) const | string Chuyển đổi các giá trị max_entries đầu tiên trong *this thành chuỗi. |
TotalBytes () const | size_t Trả về ước tính mức sử dụng bộ nhớ của tensor này. |
UnsafeCopyFromInternal (const Tensor & other, DataType dtype, const TensorShape & shape) | void Tương tự như BitcastFrom, nhưng CHECK sẽ thất bại nếu bất kỳ điều kiện tiên quyết nào không được đáp ứng. |
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) | TTypes< T, NDIMS >:: Tensor Trả về dữ liệu tensor cho một Eigen::Tensor với hình dạng mới được chỉ định trong new_sizes và ép kiểu sang kiểu dữ liệu mới T |
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) const | TTypes< T, NDIMS >::ConstTensor Trả về dữ liệu tensor cho một Eigen::Tensor với hình dạng mới được chỉ định trong new_sizes và ép kiểu sang kiểu dữ liệu mới T |
bit_casted_tensor () | TTypes< T, NDIMS >:: Tensor Trả về dữ liệu tensor cho một Eigen::Tensor có cùng kích thước nhưng được ép kiểu bitwise sang kiểu dữ liệu T đã chỉ định. |
bit_casted_tensor () const | TTypes< T, NDIMS >::ConstTensor Trả về dữ liệu tensor cho một Eigen::Tensor có cùng kích thước nhưng được ép kiểu bitwise sang kiểu dữ liệu T đã chỉ định. |
dim_size (int d) const | int64 Công cụ truy cập tiện ích cho hình dạng tensor. |
dims () const | int Công cụ truy cập tiện ích 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 với 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 kích thước NDIMS, thu gọn tất cả các kích thước Tensor ngoại trừ NDIMS-1 cuối cùng vào 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 kích thước NDIMS, thu gọn tất cả các kích thước Tensor ngoại trừ NDIMS-1 đầu tiên vào 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 & Gán toán tử. Tensor này chia sẻ bộ nhớ lưu trữ cơ bản với các tensor khác. |
operator= ( Tensor && other) | Tensor & Toán tử di chuyển. Xem hàm tạo di chuyển để biết thêm chi tiết. |
reinterpret_last_dimension () | TTypes< T, NDIMS >:: Tensor Trả về dữ liệu tensor cho một Eigen::Tensor với các phần tử chiều cuối cùng được chuyển đổi thành các phần tử đơn lẻ có kiểu dữ liệu lớn hơn. |
reinterpret_last_dimension () const | TTypes< T, NDIMS >::ConstTensor Trả về dữ liệu tensor cho một Eigen::Tensor với các phần tử chiều cuối cùng được chuyển đổi thành các phần tử đơn lẻ có kiểu dữ liệu 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ạ đến 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 kiểu dữ liệu và kích thước của Tensor này. |
vec () const | TTypes< T >::ConstVec Các phiên bản hằng số của tất cả các phương thức trên. |
Chức năng công cộng
Số 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 tensor *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ưới dạng gọn.
AsProtoTensorContent
void AsProtoTensorContent( TensorProto *proto ) const
BitcastFrom
Status BitcastFrom( const Tensor & other, DataType dtype, const TensorShape & shape )
Sao chép tensor kia 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 buffer.
Nếu Status::OK() được trả về, hai tensor lúc này sẽ dùng chung một bộ nhớ lưu trữ.
Lệnh gọi này yêu cầu tensor other và kiểu dữ liệu cũng như hình dạng được cung cấp phải "tương thích" (tức là chúng chiếm cùng số byte).
Cụ thể:
shape.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, hàm sẽ trả về lỗi::InvalidArgument.
Sao chép từ
bool CopyFrom( const Tensor & other, const TensorShape & shape ) TF_MUST_USE_RESULT
Sao chép tensor kia vào tensor này và định hình lại nó.
Tensor này chia sẻ bộ nhớ cơ bản với tensor khác. Trả về true nếu và chỉ nếu other.shape() có cùng số phần tử với shape đã cho.
Chuỗi gỡ lỗi
string DebugString( int num_values ) const
Bản tóm tắt dễ hiểu dành cho người dùng về tensor, thích hợp cho việc gỡ lỗi.
Chuỗi gỡ lỗi
string DebugString() const
Chuỗi gỡ lỗi an toàn thiết bị
string DeviceSafeDebugString() const
Điền mô tả
void FillDescription( TensorDescription *description ) const
Hãy điền thông tin siêu dữ liệu về tensor vào proto TensorDescription , những thông tin này 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 other và xây dựng tensor.
Trả về true nếu quá trình phân tích cú pháp thành công. Nếu quá trình phân tích cú pháp thất bại, trạng thái của *this không thay đổi.
Từ Proto
bool FromProto( Allocator *a, const TensorProto & other ) TF_MUST_USE_RESULT
IsAligned
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?
Các Tensor không có phần tử nào luôn được coi là đã được khởi tạo, ngay cả khi chúng chưa bao giờ được gán giá trị và không được cấp phát bất kỳ bộ nhớ nào.
Cùng kích thước
bool IsSameSize( const Tensor & b ) const
NumElements
int64 NumElements() const
Công cụ truy cập tiện ích cho hình dạng tensor.
SharesBufferWith
bool SharesBufferWith( const Tensor & b ) const
Lát cắt
Tensor Slice( int64 dim0_start, int64 dim0_limit ) const
Cắt tensor này theo chiều thứ nhất.
Tức là, tensor được trả về thỏa mãn returned[i, ...] == this[dim0_start + i, ...]. Tensor được trả về chia sẻ bộ đệm tensor cơ bản với tensor này.
LƯU Ý: Tensor trả về có thể không đáp ứng yêu cầu căn chỉnh giống như tensor này tùy thuộc vào hình dạng của nó. Người gọi phải kiểm tra sự căn chỉnh của tensor trả về trước khi gọi một số phương thức có yêu cầu căn chỉnh (ví dụ: flat() , tensor() ).
LƯU Ý: Khi được cung cấp một tensor N chiều, phương thức này sẽ trả về một tensor cũng có N chiều. Nếu bạn muốn chọn một tensor con, hãy xem SubSlice.
YÊU CẦU: dims() >= 1 YÊU CẦU: 0 <= dim0_start <= dim0_limit <= dim_size(0)
SubSlice
Tensor SubSlice( int64 index ) const
Chọn một lát cắt con từ tensor này dọc theo chiều thứ nhất.
Khi được cung cấp một tensor N chiều, phương thức này trả về một tensor có N-1 chiều, trong đó tensor trả về là một lát cắt của tensor đầu vào dọc theo chiều thứ nhất. N-1 chiều của tensor trả về là N-1 chiều cuối cùng của tensor đầu vào.
LƯU Ý: Tensor trả về có thể không đáp ứng yêu cầu căn chỉnh giống như tensor này tùy thuộc vào hình dạng của nó. Người gọi phải kiểm tra sự căn chỉnh của tensor trả về trước khi gọi một số phương thức 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
Chuyển đổi các giá trị max_entries đầu tiên trong *this thành chuỗi.
Tensor
Tensor()
Tạo một tensor float một chiều, không có phần tử nào.
Tensor trả về không phải là một giá trị vô hướng (hình dạng {}), mà là một Tensor một chiều rỗng (hình dạng {0}, NumElements() == 0). Vì nó không có phần tử nào, nên nó không cần được gán giá trị và được khởi tạo mặc định ( IsInitialized() là true). Nếu điều này không mong muốn, hãy xem xét tạo một giá trị vô hướng một phần tử cần được khởi tạo:
Tensor(DT_FLOAT, TensorShape({}))
Tensor
Tensor( DataType type, const TensorShape & shape )
Tạo một Tensor có type và shape đã cho.
Nếu LogMemory::IsEnabled() được sử dụng, việc cấp phát bộ nhớ sẽ được ghi lại là đến từ một kernel 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 một Op đã lỗi thời: hãy sử dụng các phương thức allocate_* của OpKernelConstruction/OpKernelContext để cấp phát một tensor mới, các phương thức này sẽ ghi lại kernel và bước.
Bộ đệm cơ bản được cấp phát bằng cách sử dụng CPUAllocator .
Tensor
Tensor( Allocator *a, DataType type, const TensorShape & shape )
Tạo một tensor với type dữ liệu và shape đầu vào, sử dụng bộ cấp phát a để cấp phát bộ đệm cơ bản.
Nếu LogMemory::IsEnabled() được sử dụng, việc cấp phát bộ nhớ sẽ được ghi lại là đến từ một kernel 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 một Op đã lỗi thời: hãy sử dụng các phương thức allocate_* của OpKernelConstruction/OpKernelContext để cấp phát một tensor mới, các phương thức này sẽ ghi lại kernel và bước.
a phải tồn tại lâu hơn tuổi thọ của Tensor này.
Tensor
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à thuộc tính `allocation_attr` được chỉ định để cấp phát bộ đệm cơ bản.
Nếu biết kernel và step, thì nên đặt allocation_attr.allocation_will_be_logged thành true và gọi LogMemory::RecordTensorAllocation sau khi tensor được tạo. Việc gọi trực tiếp hàm tạo Tensor từ bên trong một Op đã lỗi thời: hãy sử dụng các phương thức allocate_* của OpKernelConstruction/OpKernelContext để cấp phát một tensor mới, ghi lại kernel và step.
a phải tồn tại lâu hơn tuổi thọ của Tensor này.
Tensor
Tensor( DataType type, const TensorShape & shape, TensorBuffer *buf )
Tạo một tensor với kiểu dữ liệu đầu vào, hình dạng và bộ đệm.
Lấy tham chiếu đến `buf` thuộc về Tensor này.
Tensor
Tensor( DataType type )
Tạo một Tensor rỗng với kiểu dữ liệu đã cho.
Tương tự như Tensor() , phương thức này trả về một Tensor 1 chiều, 0 phần tử với phương thức IsInitialized() trả về True. Xem tài liệu về Tensor() để biết thêm chi tiết.
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( Tensor && other )
Hàm tạo di chuyển.
Sau cuộc gọi này,
Tổng số byte
size_t TotalBytes() const
Trả về ước tính mức sử dụng bộ nhớ của tensor này.
UnsafeCopyFromInternal
void UnsafeCopyFromInternal( const Tensor & other, DataType dtype, const TensorShape & shape )
Tương tự như BitcastFrom, nhưng CHECK sẽ thất bại nếu bất kỳ điều kiện tiên quyết nào không được đáp ứng.
Phương thức này đã lỗi thời. Thay vào đó, hãy sử dụng BitcastFrom và kiểm tra trạng thái trả về.
bit_casted_shaped
TTypes< T, NDIMS >::Tensor bit_casted_shaped( gtl::ArraySlice< int64 > new_sizes )
Trả về dữ liệu tensor cho một Eigen::Tensor với hình dạng mới được chỉ định trong new_sizes và ép kiểu sang kiểu dữ liệu mới T
Việc sử dụng bitcast rất hữu ích cho các thao tác di chuyển và sao chép. Bitcast được cho phép là điểm khác biệt duy nhất so với shaped() .
bit_casted_shaped
TTypes< T, NDIMS >::ConstTensor bit_casted_shaped( gtl::ArraySlice< int64 > new_sizes ) const
Trả về dữ liệu tensor cho một Eigen::Tensor với hình dạng mới được chỉ định trong new_sizes và ép kiểu sang kiểu dữ liệu mới T
Việc sử dụng bitcast rất hữu ích cho các thao tác di chuyển và sao chép. Bitcast được cho 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ả về dữ liệu tensor cho một Eigen::Tensor có cùng kích thước nhưng được ép kiểu bitwise sang kiểu dữ liệu T đã chỉ định.
Việc sử dụng bitcast rất hữu ích cho các thao tác di chuyển và sao chép. LƯU Ý: điều này tương tự như tensor() ngoại trừ việc cho phép sử dụng bitcast.
bit_casted_tensor
TTypes< T, NDIMS >::ConstTensor bit_casted_tensor() const
Trả về dữ liệu tensor cho một Eigen::Tensor có cùng kích thước nhưng được ép kiểu bitwise sang kiểu dữ liệu T đã chỉ định.
Việc sử dụng bitcast rất hữu ích cho các thao tác di chuyển và sao chép. LƯU Ý: điều này tương tự như tensor() ngoại trừ việc cho phép sử dụng bitcast.
kích thước
int64 dim_size( int d ) const
Công cụ truy cập tiện ích cho hình dạng tensor.
độ sáng
int dims() const
Công cụ truy cập tiện ích cho hình dạng tensor.
Để biết tất cả các phương thức truy cập hình dạng, hãy xem phần chú thích cho các phương thức liên quan của TensorShape trong tensor_shape.h .
kiểu dữ liệu
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 với 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à số chiều tùy chọn. Bạn không cần biết số chiều của Tensor để gọi chúng. Tuy nhiên, chúng CHECK xem kiểu dữ liệu có khớp và kích thước được yêu cầu hay không, tạo ra một Eigen::Tensor có cùng số phần tử với tensor ban đầu.
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
kích thước bên trong phẳng
TTypes< T, NDIMS >::Tensor flat_inner_dims()
kích thước bên trong phẳng
TTypes< T, NDIMS >::ConstTensor flat_inner_dims() const
kích thước bên trong và bên ngoài phẳng
TTypes< T, NDIMS >::Tensor flat_inner_outer_dims( int64 begin )
Trả về dữ liệu dưới dạng Eigen::Tensor với kích thước NDIMS, thu gọn kích thước Tensor 'begin' đầu tiên vào kích thước đầu tiên của kết quả và kích thước Tensor của dims() - 'begin' - NDIMS cuối cùng vào kích thước cuối cùng của kết quả.
Nếu 'begin' < 0 thì sẽ cộng thêm |'begin'| chiều dẫn đầu có kích thước 1. Nếu 'begin' + NDIMS > dims() thì sẽ cộng thêm 'begin' + NDIMS - dims() chiều cuối có kích thước 1.
kích thước bên trong và bên ngoài phẳng
TTypes< T, NDIMS >::ConstTensor flat_inner_outer_dims( int64 begin ) const
kích thước bên ngoài phẳng
TTypes< T, NDIMS >::Tensor flat_outer_dims()
kích thước bên ngoài phẳng
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 )
Gán toán tử. Tensor này chia sẻ bộ nhớ lưu trữ cơ bản với các tensor khác.
toán tử=
Tensor & operator=( Tensor && other )
Toán tử di chuyển. Xem hàm tạo di chuyển để biết thêm chi tiết.
diễn giải lại chiều cuối cùng
TTypes< T, NDIMS >::Tensor reinterpret_last_dimension()
Trả về dữ liệu tensor cho một Eigen::Tensor với các phần tử chiều cuối cùng được chuyển đổi thành các phần tử đơn lẻ có kiểu dữ liệu lớn hơn.
Ví dụ, điều này hữu ích cho các kernel có thể xử lý các tensor NCHW_VECT_C int8 như các tensor NCHW int32. Kích thước của (T) phải bằng kích thước của kiểu phần tử gốc * số phần tử trong chiều cuối cùng ban đầu. NDIMS phải nhỏ hơn số chiều ban đầu 1.
diễn giải lại chiều cuối cùng
TTypes< T, NDIMS >::ConstTensor reinterpret_last_dimension() const
Trả về dữ liệu tensor cho một Eigen::Tensor với các phần tử chiều cuối cùng được chuyển đổi thành các phần tử đơn lẻ có kiểu dữ liệu lớn hơn.
Ví dụ, điều này hữu ích cho các kernel có thể xử lý các tensor NCHW_VECT_C int8 như các tensor NCHW int32. Kích thước của (T) phải bằng kích thước của kiểu phần tử gốc * số phần tử trong chiều cuối cùng ban đầu. NDIMS phải nhỏ hơn số chiều ban đầu 1.
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.
hình dạng
TTypes< T, NDIMS >::Tensor shaped( gtl::ArraySlice< int64 > new_sizes )
hình dạng
TTypes< T, NDIMS >::ConstTensor shaped( gtl::ArraySlice< int64 > new_sizes ) const
tensor
TTypes< T, NDIMS >::Tensor tensor()
tensor
TTypes< T, NDIMS >::ConstTensor tensor() const
dữ liệu tensor
StringPiece tensor_data() const
Trả về một StringPiece ánh xạ đến bộ đệm của tensor hiện tại.
Đối StringPiece trả về có thể trỏ đến vị trí bộ nhớ trên các thiết bị mà CPU không thể truy cập trực tiếp.
LƯU Ý: Bộ đệm tensor cơ bản được đếm tham chiếu, do đó vòng đời của nội dung được ánh xạ bởi StringPiece trùng khớp với vòng đời của bộ đệm; người gọi nên đảm bảo rằng bộ đệm không bị hủy trong khi StringPiece vẫn đang được sử dụng.
YÊU CẦU: DataTypeCanUseMemcpy(dtype()) .
không căn chỉnh phẳng
TTypes< T >::UnalignedFlat unaligned_flat()
không căn chỉnh phẳng
TTypes< T >::UnalignedConstFlat unaligned_flat() const
hình dạng không thẳng hàng
TTypes< T, NDIMS >::UnalignedTensor unaligned_shaped( gtl::ArraySlice< int64 > new_sizes )
hình dạng không thẳng hàng
TTypes< T, NDIMS >::UnalignedConstTensor unaligned_shaped( gtl::ArraySlice< int64 > new_sizes ) const
vectơ
TTypes< T >::Vec vec()
Trả về dữ liệu tensor dưới dạng Eigen::Tensor với kiểu dữ liệu và kích thước của Tensor này.
Hãy sử dụng các phương pháp này khi bạn biết kiểu dữ liệu và số chiều của Tensor và muốn một Eigen::Tensor được tự động điều chỉnh kích thước sao cho phù hợp với kích thước của Tensor đó. Việc kiểm tra triển khai sẽ thất bại nếu kiểu dữ liệu 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
Các phiên bản hằng số của tất cả các phương thức trên.
~Tensor
~Tensor()