Trả lời cho sự kiện TensorFlow Everywhere tại địa phương của bạn ngay hôm nay!
Trang này được dịch bởi Cloud Translation API.
Switch to English

dòng chảy :: Tensor

#include <tensor.h>

Biểu diễn một mảng giá trị n chiều.

Tóm lược

Người xây dựng và Người phá hủy

Tensor ()
Tạo một tensor float 1 chiều, 0 phần tử.
Tensor (DataType type, const TensorShape & shape)
Tạo một Tensor của typeshape .
Tensor (Allocator *a, DataType type, const TensorShape & shape)
Tạo một tensor với type đầu vào và shape , 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 đầu vào và shape , sử dụng bộ cấp phát a và "phân bổ_tr" được chỉ định để cấp phát bộ đệm bên dưới.
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 với nội dung của *this tensor *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
Một bản tóm tắt mà con người có thể đọc được về tensor thích hợp để gỡ lỗi.
DebugString () const
string
DeviceSafeDebugString () const
string
FillDescription (TensorDescription *description) const
void
Điền vào phần TensorDescription với siêu dữ liệu về tensor hữu ích để theo dõi 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 iff 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
Bộ tiếp cận 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 liên kết con từ tensor này dọc theo chiều thứ nhất.
SummarizeValue (int64 max_entries, bool print_v2) const
string
Hiển thị 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 cho một Eigen::Tensor với hình dạng mới được chỉ định trong new_sizes và truyền sang kiểu mới T
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) const
TTypes< T, NDIMS >::ConstTensor
Trả lại dữ liệu tensor cho một Eigen::Tensor với hình dạng mới được chỉ định trong new_sizes và truyền sang kiểu mới T
bit_casted_tensor ()
TTypes< T, NDIMS >:: Tensor
Trả lại dữ liệu tensor cho một Eigen::Tensor có cùng kích thước nhưng được ép kiểu bit về kiểu T được chỉ định.
bit_casted_tensor () const
TTypes< T, NDIMS >::ConstTensor
Trả lại dữ liệu tensor cho một Eigen::Tensor có cùng kích thước nhưng được ép kiểu bit về kiểu T được chỉ định.
data () const
void *
dim_size (int d) const
int64
Bộ tiếp cận tiện lợi cho hình dạng tensor.
dims () const
int
Bộ tiếp cận 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 kích thước NDIMS, thu gọn tất cả các thứ nguyên Tensor trừ NDIMS-1 cuối cùng thành thứ nguyên đầ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 thứ nguyên NDIMS, thu gọn thứ nguyên Tensor 'bắt đầu' đầu tiên thành thứ nguyên đầu tiên của kết quả và thứ nguyên Tensor của chiều mờ cuối cùng () - 'begin' - NDIMS thành thứ nguyên 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 kích thước NDIMS, thu gọn tất cả các thứ nguyên Tensor trừ NDIMS-1 đầu tiên thành thứ nguyên 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 nhà điều hành. Tensor này chia sẻ bộ nhớ cơ bản của nhau.
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 cho 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 của loại lớn hơn.
reinterpret_last_dimension () const
TTypes< T, NDIMS >::ConstTensor
Trả lại dữ liệu tensor cho 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 của 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ề ánh xạ StringPiece của bộ đệm 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 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

AllocatedBytes

size_t AllocatedBytes() const 

AsProtoField

void AsProtoField(
  TensorProto *proto
) const 

Điền vào proto với nội dung của *this 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ạng thu gọn.

AsProtoTensorContent

void AsProtoTensorContent(
  TensorProto *proto
) const 

BitcastFrom

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ộ nhớ cơ bản.

Lệnh gọi này yêu cầu rằng tenxơ other và kiểu và hình dạng đã cho phải "tương thích" (tức là chúng chiếm cùng số byte).

Đặc biệt:

shape.num_elements () * DataTypeSize (loại)

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 (loại)! = 0

Nếu bất kỳ yêu cầu nào không được đáp ứng, lỗi :: InvalidArgument được trả về.

CopyFrom

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

Tensor này chia sẻ bộ nhớ cơ bản của khác. Trả về true iff other.shape() có cùng số phần tử của shape cho.

DebugString

string DebugString(
  int num_values
) const 

Một bản tóm tắt mà con người có thể đọc được về tensor thích hợp để gỡ lỗi.

DebugString

string DebugString() const 

DeviceSafeDebugString

string DeviceSafeDebugString() const 

FillDescription

void FillDescription(
  TensorDescription *description
) const 

Điền vào phần TensorDescription với siêu dữ liệu về tensor hữu ích để theo dõi và gỡ lỗi.

FromProto

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 iff khi 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 của *this không thay đổi.

FromProto

bool FromProto(
  Allocator *a,
  const TensorProto & other
) TF_MUST_USE_RESULT

IsAligned

bool IsAligned() const 

Trả về true iff tensor này được căn chỉnh.

IsInitialized

bool IsInitialized() const 

Nếu cần, Tensor này đã được khởi tạo chưa?

Các Tensors 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ó bất kỳ bộ nhớ nào được cấp phát.

IsSameSize

bool IsSameSize(
  const Tensor & b
) const 

NumElements

int64 NumElements() const 

Bộ tiếp cận tiện lợi cho hình dạng tensor.

RefCountIsOne

bool RefCountIsOne() const 

SharesBufferWith

bool SharesBufferWith(
  const Tensor & b
) const 

Lá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 được trả về thỏa mãn trả về [i, ...] == this [dim0_start + i, ...]. Teo trả về chia sẻ bộ đệm tensor cơ bản với tensor này.

LƯU Ý: Bộ căng được trả về có thể không đáp ứng yêu cầu căn chỉnh giống như bộ căng này tùy thuộc vào hình dạng. Người gọi phải kiểm tra 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 cấp bằng tensor N chiều, phương pháp này trả về tensor cũng có N kích thước. Nếu bạn muốn chọn một tensor phụ, hãy xem SubSlice.

0 <= dim0_start <= dim0_limit <= dim_size(0) : dims() > = 1 0 <= dim0_start <= dim0_limit <= dim_size(0) : 0 <= dim0_start <= dim0_limit <= dim_size(0)

SubSlice

Tensor SubSlice(
  int64 index
) const 

Chọn một liên kết con từ tensor này dọc theo chiều thứ nhất.

Khi được cung cấp với tensor N chiều, phương pháp này trả về tensor có kích thước N-1, trong đó tensor trả về là một tập hợp con của tensor đầu vào dọc theo kích thước đầu tiên. 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 Ý: Bộ căng được trả về có thể không đáp ứng yêu cầu căn chỉnh giống như bộ căng này tùy thuộc vào hình dạng. Người gọi phải kiểm tra 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() ).

0 <= index < dim_size(0) : dims() > = 1 0 <= index < dim_size(0) : 0 <= index < dim_size(0)

SummarizeValue

string SummarizeValue(
  int64 max_entries,
  bool print_v2
) const 

Hiển thị các giá trị max_entries đầu tiên trong *this thành một chuỗi.

Tensor

 Tensor()

Tạo một tensor float 1 chiều, 0 phần tử.

Tensor trả về không phải là một vô hướng (hình dạng {}), mà thay vào đó 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 theo mặc định ( IsInitialized () là true). Nếu điều này là không mong muốn, hãy xem xét tạo một đại lượng 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ủa typeshape .

Nếu LogMemory :: IsEnabled () thì việc cấp phát đượ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 hàm tạo Tensor trực tiếp từ bên trong Op không được dùng nữa: sử dụng các phương thức OpKernelConstruction / OpKernelContext seek_ * để cấp phát một tensor mới, ghi lại nhân và bước.

Bộ đệm bên dưới được cấp phát bằng CPUAllocator .

Tensor

 Tensor(
  Allocator *a,
  DataType type,
  const TensorShape & shape
)

Tạo một tensor với type đầu vào và shape , 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 cấp phát đượ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 hàm tạo Tensor trực tiếp từ bên trong Op không được dùng nữa: sử dụng các phương thức OpKernelConstruction / OpKernelContext seek_ * để cấp phát một tensor mới, ghi lại nhân và bước.

a phải sống lâu hơn tuổi thọ của này tensor .

Tensor

 Tensor(
  Allocator *a,
  DataType type,
  const TensorShape & shape,
  const AllocationAttributes & allocation_attr
)

Tạo một tensor với type đầu vào và shape , sử dụng bộ cấp phát a và "phân bổ_tr" được chỉ định để cấp phát bộ đệm bên dưới.

Nếu hạt nhân và bước được biết trước là delivery_attr.allocation_will_be_logged nên được đặt thành true và LogMemory :: RecordTensorAllocation sẽ được gọi sau khi tensor được xây dựng. Việc gọi hàm tạo Tensor trực tiếp từ bên trong Op không được dùng nữa: sử dụng các phương thức OpKernelConstruction / OpKernelContext seek_ * để cấp phát một tensor mới, ghi lại hạt nhân và bước.

a phải sống lâu hơn tuổi thọ của này tensor .

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à buf.

Có được một giới thiệu trên buf thuộc Tensor này.

Tensor

 Tensor(
  DataType type
)

Tạo một Tensor trống của kiểu dữ liệu đã cho.

Giống như tensor () , trả về một 1 chiều, 0 phần tử tensor với IsInitialized () trả về True. Xem tài liệu 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(
  const Tensor & other
)

Sao chép hàm tạo.

Tensor

 Tensor(
  Tensor && other
)

Di chuyển hàm tạo.

Sau cuộc gọi này, là có thể phá hủy một cách an toàn và có thể được gán cho, 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ệ.

TotalBytes

size_t TotalBytes() const 

Trả về mức sử dụng bộ nhớ ước tính của tensor này.

UnsafeCopyFromInternal

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 được chấp nhận. Sử dụng BitcastFrom thay thế và kiểm tra Trạng thái được trả lại.

bit_casted_shaped

TTypes< T, NDIMS >::Tensor bit_casted_shaped(
  gtl::ArraySlice< int64 > new_sizes
)

Trả lại dữ liệu tensor cho một Eigen::Tensor với hình dạng mới được chỉ định trong new_sizes và truyền sang kiểu mới T

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à sự khác biệt duy nhất từ ​​shape shaped() .

bit_casted_shaped

TTypes< T, NDIMS >::ConstTensor bit_casted_shaped(
  gtl::ArraySlice< int64 > new_sizes
) const 

Trả lại dữ liệu tensor cho một Eigen::Tensor với hình dạng mới được chỉ định trong new_sizes và truyền sang kiểu mới T

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à sự khác biệt duy nhất từ ​​shape shaped() .

bit_casted_tensor

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

Trả lại dữ liệu tensor cho một Eigen::Tensor có cùng kích thước nhưng được ép kiểu bit về kiểu T được 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ừ một bitcast được phép.

bit_casted_tensor

TTypes< T, NDIMS >::ConstTensor bit_casted_tensor() const 

Trả lại dữ liệu tensor cho một Eigen::Tensor có cùng kích thước nhưng được ép kiểu bitwise đến kiểu T được 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ừ một bitcast được phép.

dữ liệu

void * data() const 

dim_size

int64 dim_size(
  int d
) const 

Bộ tiếp cận tiện lợi cho hình dạng tensor.

mờ

int dims() const 

Bộ tiếp cận 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.

bằng 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 các kích thước và kích thước mà bạn lựa chọn. Bạn không cần biết số kích thước của Tensor để gọi chúng. Tuy nhiên, họ CHECK rằng kiểu khớp và kích thước được yêu cầu sẽ tạo ra một Eigen::Tensor có cùng số phần tử với tensor.

Thí 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 

flat_inner_dims

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

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 thứ nguyên Tensor trừ NDIMS-1 cuối cùng thành thứ nguyên đầu tiên của kết quả.

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

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
)

Trả về dữ liệu dưới dạng Eigen :: Tensor với thứ nguyên NDIMS, thu gọn thứ nguyên Tensor 'bắt đầu' đầu tiên thành thứ nguyên đầu tiên của kết quả và thứ nguyên Tensor của chiều mờ cuối cùng () - 'begin' - NDIMS thành chiều cuối cùng của kết quả.

Nếu 'begin' <0 thì dấu | 'begin' | 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ì kích thước theo sau 'begin' + NDIMS - dims () của kích thước 1 sẽ được thêm vào.

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

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 thứ nguyên Tensor trừ NDIMS-1 đầu tiên thành thứ nguyên cuối cùng của kết quả.

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

flat_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 nhà điều hành. Tensor này chia sẻ bộ nhớ cơ bản của nhau.

toán tử =

Tensor & operator=(
  Tensor && other
)

Toán tử di chuyển. Xem hàm tạo di chuyển để biết chi tiết.

reinterpret_last_dimension

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

Trả lại dữ liệu tensor cho 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 của loại lớn hơn.

Ví dụ, điều này rất hữu ích cho các hạt nhân có thể coi các tensors NCHW_VECT_C int8 là tensors NCHW int32. Kích thước của sizeof (T) phải bằng kích thước của các phần tử kiểu phần tử gốc * num trong kích thước cuối cùng ban đầu. NDIMS phải nhỏ hơn 1 so với số thứ nguyên ban đầu.

reinterpret_last_dimension

TTypes< T, NDIMS >::ConstTensor reinterpret_last_dimension() const 

Trả lại dữ liệu tensor cho 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 của loại lớn hơn.

Ví dụ, điều này rất hữu ích cho các hạt nhân có thể coi các tensors NCHW_VECT_C int8 là tensors NCHW int32. Kích thước của sizeof (T) phải bằng kích thước của các phần tử kiểu phần tử gốc * num trong kích thước 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 > .

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 đã 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
)

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 

tensor_data

StringPiece tensor_data() const 

Trả về ánh xạ StringPiece của bộ đệm tensor hiện tại.

StringPiece trả về có thể trỏ đến vị trí bộ nhớ trên các thiết bị mà CPU không thể giải quyết trực tiếp.

LƯU Ý: Bộ đệm tensor bên dưới được lắp lại, vì vậy tuổi thọ của nội dung được ánh xạ bởi StringPiece khớp với tuổi thọ 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.

DataTypeCanUseMemcpy(dtype()) : DataTypeCanUseMemcpy(dtype()) .

unaligned_flat

TTypes< T >::UnalignedFlat unaligned_flat()

unaligned_flat

TTypes< T >::UnalignedConstFlat unaligned_flat() const 

unaligned_shaped

TTypes< T, NDIMS >::UnalignedTensor unaligned_shaped(
  gtl::ArraySlice< int64 > new_sizes
)

unaligned_shaped

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 kiểu 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 kiểu dữ liệu và số lượng kích thước của Tensor và bạn muốn một Eigen :: Tensor tự động định 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.

Thí 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.

~ Tensor

 ~Tensor()