33 #include <type_traits> 68 Tensor(
const std::vector<T>& init_vals,
72 :
Tensor(shape, dtype, device) {
77 "Tensor initialization values' size {} does not match the " 83 AssertTemplateDtype<T>();
84 if (!std::is_pod<T>()) {
91 init_vals.size() * dtype.
ByteSize());
100 :
Tensor(shape, dtype, device) {
102 AssertTemplateDtype<T>();
117 const std::shared_ptr<Blob>& blob)
153 template <
typename T>
162 template <
typename Object>
166 "Assignment with scalar only works for scalar Tensor of " 169 AssertTemplateDtype<Object>();
177 template <
typename S>
180 template <
typename Object>
195 template <
typename T>
217 template <
typename T>
220 std::vector<T> ele_list{val};
222 return Tensor(ele_list, shape, type, device);
227 template <
typename T>
230 return InitWithInitializerList<T, 1>(in_list, device);
235 template <
typename T>
237 const std::initializer_list<std::initializer_list<T>>& in_list,
239 return InitWithInitializerList<T, 2>(in_list, device);
244 template <
typename T>
246 const std::initializer_list<
247 std::initializer_list<std::initializer_list<T>>>& in_list,
249 return InitWithInitializerList<T, 3>(in_list, device);
419 std::string
ToString(
bool with_suffix =
true,
420 const std::string& indent =
"")
const;
438 int64_t step = 1)
const;
463 void IndexSet(
const std::vector<Tensor>& index_tensors,
464 const Tensor& src_tensor);
494 template <
typename T>
498 "Tensor::Item() only works for Tensor with exactly one " 501 AssertTemplateDtype<T>();
855 double atol = 1e-8)
const;
877 double atol = 1e-8)
const;
885 template <
typename T>
887 AssertTemplateDtype<T>();
925 std::tuple<Tensor, Tensor, Tensor>
LU(
const bool permute_l =
false)
const;
939 std::tuple<Tensor, Tensor>
LUIpiv()
const;
974 std::tuple<Tensor, Tensor>
Triul(
const int diagonal = 0)
const;
982 std::tuple<Tensor, Tensor, Tensor>
SVD()
const;
1004 template <
typename T>
1006 return const_cast<T*
>(
const_cast<const Tensor*
>(
this)->GetDataPtr<T>());
1009 template <
typename T>
1013 "Requested values have type {} but Tensor has type {}. " 1014 "Please use non templated GetDataPtr() with manual " 1035 template <
typename T>
1039 "Requested values have type {} but Tensor has type {}",
1055 void Save(
const std::string& file_name)
const;
1058 static Tensor Load(
const std::string& file_name);
1062 const std::string& error_msg =
"")
const;
1066 const std::string& error_msg =
"")
const;
1070 const std::string& error_msg =
"")
const;
1074 const std::string& error_msg =
"")
const;
1081 template <
typename T,
size_t D>
1082 static Tensor InitWithInitializerList(
1086 std::vector<T> values =
1087 tensor_init::ToFlatVector<T, D>(shape, nested_list);
1088 return Tensor(values, shape, Dtype::FromType<T>(), device);
1132 :
Tensor(shape, dtype, device) {
1136 "Tensor initialization values' size {} does not match the " 1142 AssertTemplateDtype<bool>();
1146 std::vector<uint8_t> init_vals_uchar(init_vals.size());
1147 std::transform(init_vals.begin(), init_vals.end(), init_vals_uchar.begin(),
1148 [](
bool v) -> uint8_t {
return static_cast<uint8_t
>(v); });
1151 init_vals_uchar.data(),
1152 init_vals_uchar.size() * dtype.
ByteSize());
1157 AssertTemplateDtype<bool>();
1166 std::transform(values_uchar.begin(), values_uchar.end(), values.begin(),
1167 [](uint8_t v) ->
bool {
return static_cast<bool>(v); });
1175 "Tensor::Item only works for Tensor with one element.");
1177 AssertTemplateDtype<bool>();
1181 return static_cast<bool>(value);
1184 template <
typename S>
1187 scalar_t casted_v =
static_cast<scalar_t
>(v);
1194 template <
typename Object>
1201 template <
typename T>
1203 return rhs + scalar_lhs;
1206 template <
typename T>
1211 template <
typename T>
1213 return rhs * scalar_lhs;
1216 template <
typename T>
Tensor Cos_()
Element-wise cosine of a tensor, in-place.
Definition: Tensor.cpp:987
Tensor(const SizeVector &shape, Dtype dtype, const Device &device=Device("CPU:0"))
Constructor for creating a contiguous Tensor.
Definition: Tensor.h:55
int64_t NumElements() const
Definition: Tensor.h:1031
void AssertShapeCompatible(const DynamicSizeVector &expected_shape, const std::string &error_msg="") const
Assert that Tensor's shape is compatible with a dynamic shape.
Definition: Tensor.cpp:1513
Tensor operator[](int64_t i) const
Extract the i-th Tensor along the first axis, returning a new view.
Definition: Tensor.cpp:638
Tensor GetItem(const TensorKey &tk) const
Definition: Tensor.cpp:307
Tensor Sin_()
Element-wise sine of a tensor, in-place.
Definition: Tensor.cpp:976
Tensor Sqrt_()
Element-wise square root of a tensor, in-place.
Definition: Tensor.cpp:965
std::string ToString(bool with_suffix=true, const std::string &indent="") const
Definition: Tensor.cpp:579
Tensor operator*=(const Tensor &value)
Definition: Tensor.h:543
Tensor LogicalOr(const Tensor &value) const
Definition: Tensor.cpp:1146
Definition: SizeVector.h:47
The common header of DLPack.
int64_t NumDims() const
Definition: Tensor.h:1033
static void MemcpyFromHost(void *dst_ptr, const Device &dst_device, const void *host_ptr, size_t num_bytes)
Same as Memcpy, but with host (CPU:0) as default src_device.
Definition: MemoryManager.cpp:80
Tensor Sum(const SizeVector &dims, bool keepdim=false) const
Definition: Tensor.cpp:899
Tensor(const SizeVector &shape, const SizeVector &strides, void *data_ptr, Dtype dtype, const std::shared_ptr< Blob > &blob)
Definition: Tensor.h:113
static Tensor Init(const std::initializer_list< std::initializer_list< T >> &in_list, const Device &device=Device("CPU:0"))
Definition: Tensor.h:236
Tensor operator||(const Tensor &value) const
Definition: Tensor.h:713
Tensor Lt_(const Tensor &value)
Definition: Tensor.cpp:1249
Tensor Inverse() const
Definition: Tensor.cpp:1597
Tensor Ge(const Tensor &value) const
Definition: Tensor.cpp:1261
Tensor SetItem(const Tensor &value)
Set all items. Equivalent to tensor[:] = value in Python.
Definition: Tensor.cpp:395
static Tensor Full(const SizeVector &shape, T fill_value, Dtype dtype, const Device &device=Device("CPU:0"))
Create a tensor fill with specified value.
Definition: Tensor.h:196
bool AllClose(const Tensor &other, double rtol=1e-5, double atol=1e-8) const
Definition: Tensor.cpp:1467
std::shared_ptr< Blob > blob_
Underlying memory buffer for Tensor.
Definition: Tensor.h:1124
Tensor ArgMin(const SizeVector &dims) const
Definition: Tensor.cpp:945
C Tensor object, manage memory of DLTensor. This data structure is intended to facilitate the borrowi...
Definition: DLPack.h:193
Tensor Solve(const Tensor &rhs) const
Definition: Tensor.cpp:1555
Tensor AsStrided(const SizeVector &new_shape, const SizeVector &new_strides) const
Create a Tensor view of specified shape and strides. The underlying buffer and data_ptr offsets remai...
Definition: Tensor.cpp:754
Tensor Gt_(const Tensor &value)
Definition: Tensor.cpp:1221
void * GetDataPtr()
Definition: Tensor.h:1021
Tensor Mul_(const Tensor &value)
Definition: Tensor.cpp:859
Tensor LogicalXor(const Tensor &value) const
Definition: Tensor.cpp:1175
TensorKey is used to represent single index, slice or advanced indexing on a Tensor.
Definition: TensorKey.h:45
void Save(const std::string &file_name) const
Save tensor to numpy's npy format.
Definition: Tensor.cpp:1459
Tensor IsClose(const Tensor &other, double rtol=1e-5, double atol=1e-8) const
Definition: Tensor.cpp:1472
Tensor LogicalAnd_(const Tensor &value)
Definition: Tensor.cpp:1133
Tensor operator==(const Tensor &value) const
Definition: Tensor.h:786
Tensor(const T *init_vals, const SizeVector &shape, Dtype dtype, const Device &device=Device("CPU:0"))
Constructor from raw host buffer. The memory will be copied.
Definition: Tensor.h:96
Tensor Exp() const
Element-wise exponential of a tensor, returning a new tensor.
Definition: Tensor.cpp:1003
Definition: Optional.h:912
const SizeVector & GetStridesRef() const
Definition: Tensor.h:998
Tensor Broadcast(const SizeVector &dst_shape) const
Broadcast Tensor to a new broadcastable shape.
Definition: Tensor.cpp:465
Tensor Eq(const Tensor &value) const
Element-wise equals-to of tensors, returning a new boolean tensor.
Definition: Tensor.cpp:1317
Tensor operator/(const Tensor &value) const
Definition: Tensor.h:549
Tensor IsInf() const
Definition: Tensor.cpp:1035
Tensor operator*=(Scalar value)
Definition: Tensor.h:544
Tensor NonZero() const
Definition: Tensor.cpp:1382
Tensor Sub_(const Tensor &value)
Definition: Tensor.cpp:831
Tensor operator>=(const Tensor &value) const
Definition: Tensor.h:765
int64_t GetLength() const
Definition: SizeVector.h:147
Tensor LogicalNot() const
Definition: Tensor.cpp:1105
Tensor LogicalXor_(const Tensor &value)
Definition: Tensor.cpp:1192
std::tuple< Tensor, Tensor, Tensor > LU(const bool permute_l=false) const
Computes LU factorisation of the 2D square tensor, using A = P * L * U; where P is the permutation ma...
Definition: Tensor.cpp:1567
Tensor operator+=(const Tensor &value)
Definition: Tensor.h:517
static void MemcpyToHost(void *host_ptr, const void *src_ptr, const Device &src_device, size_t num_bytes)
Same as Memcpy, but with host (CPU:0) as default dst_device.
Definition: MemoryManager.cpp:88
std::tuple< Tensor, Tensor, Tensor > SVD() const
Definition: Tensor.cpp:1603
Tensor Min(const SizeVector &dims, bool keepdim=false) const
Definition: Tensor.cpp:931
std::string ToString() const
Definition: Dtype.h:81
bool IsNonZero() const
Definition: Tensor.cpp:1384
Tensor Ceil() const
Element-wise ceil value of a tensor, returning a new tensor.
Definition: Tensor.cpp:1080
void Assign(const Tensor &other)
Assign (copy) values from another Tensor, shape, dtype, device may change.
Definition: Tensor.cpp:454
Tensor Reverse() const
Reverse a Tensor's elements by viewing the tensor as a 1D array.
Definition: Tensor.cpp:299
Device GetDevice() const
Definition: Tensor.cpp:1098
Definition: SizeVector.h:102
#define LogError(...)
Definition: Console.h:79
std::tuple< Tensor, Tensor > LUIpiv() const
Computes LU factorisation of the 2D square tensor, using A = P * L * U; where P is the permutation ma...
Definition: Tensor.cpp:1573
Tensor View(const SizeVector &dst_shape) const
Definition: Tensor.cpp:522
Tensor Permute(const SizeVector &dims) const
Permute (dimension shuffle) the Tensor, returns a view.
Definition: Tensor.cpp:721
SizeVector strides_
Definition: Tensor.h:1103
static Tensor Diag(const Tensor &input)
Create a square matrix with specified diagonal elements in input.
Definition: Tensor.cpp:258
Tensor Matmul(const Tensor &rhs) const
Definition: Tensor.cpp:1549
Tensor operator+(Scalar value) const
Definition: Tensor.h:511
Tensor Max(const SizeVector &dims, bool keepdim=false) const
Definition: Tensor.cpp:938
Dtype GetDtype() const
Definition: Tensor.h:1025
static Tensor EmptyLike(const Tensor &other)
Definition: Tensor.h:190
Tensor operator*(const Tensor &value) const
Definition: Tensor.h:536
Tensor operator<=(const Tensor &value) const
Definition: Tensor.h:776
bool Any() const
Definition: Tensor.cpp:1404
int64_t GetStride(int64_t dim) const
Definition: Tensor.h:1000
Tensor Clip_(Scalar min_val, Scalar max_val)
Definition: Tensor.cpp:1061
Tensor Lt(const Tensor &value) const
Element-wise less-than of tensors, returning a new boolean tensor.
Definition: Tensor.cpp:1233
Tensor ArgMax(const SizeVector &dims) const
Definition: Tensor.cpp:952
Tensor Transpose(int64_t dim0, int64_t dim1) const
Transpose a Tensor by swapping dimension dim0 and dim1.
Definition: Tensor.cpp:761
Tensor IndexGet(const std::vector< Tensor > &index_tensors) const
Advanced indexing getter.
Definition: Tensor.cpp:704
Tensor T() const
Expects input to be <= 2-D Tensor by swapping dimension 0 and 1.
Definition: Tensor.cpp:772
static Tensor Empty(const SizeVector &shape, Dtype dtype, const Device &device=Device("CPU:0"))
Create a tensor with uninitialized values.
Definition: Tensor.cpp:234
Tensor LogicalAnd(const Tensor &value) const
Definition: Tensor.cpp:1116
Tensor Neg() const
Element-wise negation of a tensor, returning a new tensor.
Definition: Tensor.cpp:992
Tensor Le(const Tensor &value) const
Definition: Tensor.cpp:1289
bool All() const
Definition: Tensor.cpp:1397
Tensor Ge_(const Tensor &value)
Definition: Tensor.cpp:1277
Tensor operator &&(const Tensor &value) const
Definition: Tensor.h:696
Tensor Prod(const SizeVector &dims, bool keepdim=false) const
Definition: Tensor.cpp:924
Tensor Neg_()
Element-wise negation of a tensor, in-place.
Definition: Tensor.cpp:998
void IndexSet(const std::vector< Tensor > &index_tensors, const Tensor &src_tensor)
Advanced indexing getter.
Definition: Tensor.cpp:713
Tensor operator-=(Scalar value)
Definition: Tensor.h:531
Tensor Clip(Scalar min_val, Scalar max_val) const
Definition: Tensor.cpp:1055
Tensor To(Dtype dtype, bool copy=false) const
Definition: Tensor.cpp:540
Tensor Contiguous() const
Definition: Tensor.cpp:571
Tensor & operator=(const Tensor &other) &
Definition: Tensor.cpp:201
Tensor IsNan() const
Definition: Tensor.cpp:1025
Tensor operator-(const Tensor &value) const
Definition: Tensor.h:523
Tensor Ne_(const Tensor &value)
Definition: Tensor.cpp:1361
SizeVector shape_
Definition: Tensor.h:1094
std::shared_ptr< Blob > GetBlob() const
Definition: Tensor.h:1029
bool IsContiguous() const
Definition: Tensor.h:897
std::tuple< Tensor, Tensor > Triul(const int diagonal=0) const
Returns the tuple of upper and lower triangular matrix of the 2D tensor, above and below the given di...
Definition: Tensor.cpp:1591
const void * GetDataPtr() const
Definition: Tensor.h:1023
Tensor operator+=(Scalar value)
Definition: Tensor.h:518
Tensor Eq_(const Tensor &value)
Definition: Tensor.cpp:1333
Tensor Mean(const SizeVector &dims, bool keepdim=false) const
Definition: Tensor.cpp:906
Tensor LogicalOr_(const Tensor &value)
Definition: Tensor.cpp:1163
Tensor Div_(const Tensor &value)
Definition: Tensor.cpp:887
void AssertTemplateDtype() const
Definition: Tensor.h:1036
int64_t WrapDim(int64_t dim, int64_t max_dim, bool inclusive)
Wrap around negative dim.
Definition: ShapeUtil.cpp:150
void FillObject(const Object &v)
Definition: Tensor.h:1195
Tensor Expand(const SizeVector &dst_shape) const
Definition: Tensor.cpp:475
Tensor & AssignObject(const Object &v) &&
Definition: Tensor.h:163
void AssertDtype(const Dtype &expected_dtype, const std::string &error_msg="") const
Assert that the Tensor has the specified dtype.
Definition: Tensor.cpp:1534
static const Dtype Undefined
Definition: Dtype.h:41
Tensor IsFinite() const
Definition: Tensor.cpp:1045
static Tensor Zeros(const SizeVector &shape, Dtype dtype, const Device &device=Device("CPU:0"))
Create a tensor fill with zeros.
Definition: Tensor.cpp:240
#define DISPATCH_DTYPE_TO_TEMPLATE_WITH_BOOL(DTYPE,...)
Definition: Dispatch.h:86
typename NestedInitializerImpl< T, D >::type NestedInitializerList
Definition: TensorInit.h:55
SizeVector InferShape(const L &list)
Definition: TensorInit.h:101
char type
Definition: FilePCD.cpp:60
Dtype dtype_
Data type.
Definition: Tensor.h:1121
void CopyFrom(const Tensor &other)
Copy Tensor values to current tensor from the source tensor.
Definition: Tensor.cpp:569
static Tensor Load(const std::string &file_name)
Load tensor from numpy's npy format.
Definition: Tensor.cpp:1463
Tensor Gt(const Tensor &value) const
Element-wise greater-than of tensors, returning a new boolean tensor.
Definition: Tensor.cpp:1205
Tensor Add_(const Tensor &value)
Definition: Tensor.cpp:803
SizeVector GetShape() const
Definition: Tensor.h:988
Tensor operator+(const Tensor &value) const
Definition: Tensor.h:510
bool IsSame(const Tensor &other) const
Definition: Tensor.cpp:1492
int64_t NumElements() const
Definition: SizeVector.h:131
Tensor LogicalNot_()
Definition: Tensor.cpp:1111
Tensor operator-=(const Tensor &value)
Definition: Tensor.h:530
Tensor Trunc() const
Element-wise trunc value of a tensor, returning a new tensor.
Definition: Tensor.cpp:1092
DLManagedTensor * ToDLPack() const
Convert the Tensor to DLManagedTensor.
Definition: Tensor.cpp:1411
static const Dtype Int64
Definition: Dtype.h:47
int64_t GetShape(int64_t dim) const
Definition: Tensor.h:992
SizeVector GetStrides() const
Definition: Tensor.h:996
Tensor Reshape(const SizeVector &dst_shape) const
Definition: Tensor.cpp:508
Definition: PinholeCameraIntrinsic.cpp:35
Tensor Div(const Tensor &value) const
Divides a tensor and returns the resulting tensor.
Definition: Tensor.cpp:871
static Tensor Ones(const SizeVector &shape, Dtype dtype, const Device &device=Device("CPU:0"))
Create a tensor fill with ones.
Definition: Tensor.cpp:246
Tensor()
Definition: Tensor.h:52
int64_t ByteSize() const
Definition: Dtype.h:75
Tensor Triu(const int diagonal=0) const
Returns the upper triangular matrix of the 2D tensor, above the given diagonal index. [The value of diagonal = col - row, therefore 0 is the main diagonal (row = col), and it shifts towards right for positive values (for diagonal = 1, col - row = 1), and towards left for negative values. The value of the diagonal parameter must be between [-m, n] for a {m,n} shaped tensor.
Definition: Tensor.cpp:1579
Tensor Sub(const Tensor &value) const
Substracts a tensor and returns the resulting tensor.
Definition: Tensor.cpp:815
Tensor Mul(const Tensor &value) const
Multiplies a tensor and returns the resulting tensor.
Definition: Tensor.cpp:843
Tensor operator/=(const Tensor &value)
Definition: Tensor.h:556
Tensor Slice(int64_t dim, int64_t start, int64_t stop, int64_t step=1) const
Definition: Tensor.cpp:656
Tensor Sqrt() const
Element-wise square root of a tensor, returns a new tensor.
Definition: Tensor.cpp:959
Tensor Ne(const Tensor &value) const
Element-wise not-equals-to of tensors, returning a new boolean tensor.
Definition: Tensor.cpp:1345
Tensor Le_(const Tensor &value)
Definition: Tensor.cpp:1305
double Det() const
Compute the determinant of a 2D square tensor.
Definition: Tensor.cpp:785
static Tensor Arange(Scalar start, Scalar stop, Scalar step=1, Dtype dtype=Dtype::Int64, const Device &device=core::Device("CPU:0"))
Create a 1D tensor with evenly spaced values in the given interval.
Definition: Tensor.cpp:270
Tensor operator!=(const Tensor &value) const
Definition: Tensor.h:796
Tensor Round() const
Element-wise round value of a tensor, returning a new tensor.
Definition: Tensor.cpp:1086
Tensor operator-(Scalar value) const
Definition: Tensor.h:524
Tensor Exp_()
Element-wise base-e exponential of a tensor, in-place.
Definition: Tensor.cpp:1009
T * GetDataPtr()
Definition: Tensor.h:1005
static Tensor Init(const T val, const Device &device=Device("CPU:0"))
Definition: Tensor.h:218
Tensor operator/(Scalar value) const
Definition: Tensor.h:550
Tensor IndexExtract(int64_t dim, int64_t idx) const
Definition: Tensor.cpp:640
Tensor operator*(Scalar value) const
Definition: Tensor.h:537
const T * GetDataPtr() const
Definition: Tensor.h:1010
void AssertDevice(const Device &expected_device, const std::string &error_msg="") const
Assert that the Tensor has the specified device.
Definition: Tensor.cpp:1518
static Tensor Eye(int64_t n, Dtype dtype, const Device &device)
Create an identity matrix of size n x n.
Definition: Tensor.cpp:252
static Tensor Init(const std::initializer_list< std::initializer_list< std::initializer_list< T >>> &in_list, const Device &device=Device("CPU:0"))
Definition: Tensor.h:245
std::vector< Tensor > NonZeroNumpy() const
Definition: Tensor.cpp:1373
Tensor operator<(const Tensor &value) const
Definition: Tensor.h:754
Tensor operator>(const Tensor &value) const
Definition: Tensor.h:744
Tensor Tril(const int diagonal=0) const
Returns the lower triangular matrix of the 2D tensor, above the given diagonal index. [The value of diagonal = col - row, therefore 0 is the main diagonal (row = col), and it shifts towards right for positive values (for diagonal = 1, col - row = 1), and towards left for negative values. The value of the diagonal parameter must be between [-m, n] where {m, n} is the shape of input tensor.
Definition: Tensor.cpp:1585
Tensor Abs() const
Element-wise absolute value of a tensor, returning a new tensor.
Definition: Tensor.cpp:1014
Tensor(const std::vector< T > &init_vals, const SizeVector &shape, Dtype dtype, const Device &device=Device("CPU:0"))
Constructor for creating a contiguous Tensor with initial values.
Definition: Tensor.h:68
Tensor AsRvalue() const
Definition: Tensor.h:448
void * data_ptr_
Definition: Tensor.h:1118
Tensor LeastSquares(const Tensor &rhs) const
Definition: Tensor.cpp:1561
int64_t GetLength() const
Definition: Tensor.h:986
SizeVector DefaultStrides(const SizeVector &shape)
Compute default strides for a shape when a tensor is contiguous.
Definition: ShapeUtil.cpp:233
bool IsObject() const
Definition: Dtype.h:79
static Tensor FromDLPack(const DLManagedTensor *dlmt)
Convert DLManagedTensor to Tensor.
Definition: Tensor.cpp:1415
std::vector< T > ToFlatVector() const
Retrive all values as an std::vector, for debugging and testing.
Definition: Tensor.h:886
Tensor & operator=(const T v) &&
Definition: Tensor.h:154
Tensor Abs_()
Element-wise absolute value of a tensor, in-place.
Definition: Tensor.cpp:1020
T Item() const
Definition: Tensor.h:495
Tensor Add(const Tensor &value) const
Adds a tensor and returns the resulting tensor.
Definition: Tensor.cpp:787
Tensor Sin() const
Element-wise sine of a tensor, returning a new tensor.
Definition: Tensor.cpp:970
std::string ScalarPtrToString(const void *ptr) const
Definition: Tensor.cpp:624
Tensor Clone() const
Copy Tensor to the same device.
Definition: Tensor.h:394
Tensor Floor() const
Element-wise floor value of a tensor, returning a new tensor.
Definition: Tensor.cpp:1074
void Fill(S v)
Fill the whole Tensor with a scalar value, the scalar will be casted to the Tensor's Dtype...
Definition: Tensor.h:1185
Tensor Cos() const
Element-wise cosine of a tensor, returning a new tensor.
Definition: Tensor.cpp:981
void AssertShape(const SizeVector &expected_shape, const std::string &error_msg="") const
Assert that the Tensor has the specified shape.
Definition: Tensor.cpp:1498
static Tensor Init(const std::initializer_list< T > &in_list, const Device &device=Device("CPU:0"))
Definition: Tensor.h:228
const SizeVector & GetShapeRef() const
Definition: Tensor.h:990
Tensor operator/=(Scalar value)
Definition: Tensor.h:557