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)
Tạo một Tensortypeshape nhất định.
Tensor (Allocator *a, DataType type, const TensorShape & shape)
Tạo một tensor với typeshape đầ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 typeshape đầ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, 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à buf.
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 (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)
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)
Status
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.
RefCountIsOne () const
bool
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.
data () const
void *
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
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ả.
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)
Chỉ định toán tử. Tenor này chia sẻ bộ nhớ cơ bản của người khác.
operator= ( Tensor && other)
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
Trả về dữ liệu Tensor dưới dạng TensorMap có kích thước cố định 1: TensorMap > TensorMap > .
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.

RefCountIsOne

bool RefCountIsOne() const 

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 <= index < 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 Tensortypeshape 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 typeshape đầ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 typeshape đầ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,
  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à buf.

Có được một giới thiệu về buf thuộc về 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(
  tstring 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(
  const Tensor & other
)

Sao chép hàm tạo.

Tenxơ

 Tensor(
  Tensor && other
)

Di chuyển hàm tạo.

Sau cuộc gọi này, có thể phá hủy một cách an toàn và có thể được gán cho nó, nhưng các lệnh gọi khác trên nó (ví dụ: thao tác hình dạng) không hợp lệ.

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 Trạng thái đượ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.

dữ liệu

void * data() const 

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({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 

phẳng_inner_dims

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

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ả.

Nếu NDIMS > dims() thì các kích thước đầu có kích thước 1 sẽ được thêm vào để xếp hạng đầu ra NDIMS.

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()

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ả.

Nếu NDIMS > dims() thì kích thước cuối cùng có kích thước 1 sẽ được thêm vào để xếp hạng đầu ra NDIMS.

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ử ở chiều 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ể coi các tensor NCHW_VECT_C int8 là 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ử ở chiều 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()

Trả về dữ liệu Tensor dưới dạng TensorMap có kích thước cố định 1: TensorMap > TensorMap > .

Việc sử dụng scalar() cho phép trình biên dịch thực hiện tối ưu hóa vì kích thước của tensor đã được biết tại thời điểm biên dịch.

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(); // 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 

Phiên bản Const của tất cả các phương pháp trên.

~ Tenor

 ~Tensor()