@@ -22,8 +22,10 @@ namespace torch {
2222#define TENSOR (T, S, _1 ) \
2323 inline at::Tensor tensor ( \
2424 at::ArrayRef<T> values, const at::TensorOptions& options) { \
25- at::Tensor result = \
26- at::tensor (values, at::TensorOptions (options).is_variable (false )); \
25+ at::Tensor result = ([&]() { \
26+ at::AutoNonVariableTypeMode non_var_type_mode (true ); \
27+ return at::tensor (values, at::TensorOptions (options).is_variable (false )); \
28+ })(); \
2729 return autograd::make_variable (result, options.requires_grad ()); \
2830 } \
2931 inline at::Tensor tensor ( \
@@ -62,8 +64,10 @@ inline at::Tensor from_blob(
6264 at::IntArrayRef strides,
6365 const Deleter& deleter,
6466 const at::TensorOptions& options = at::TensorOptions()) {
65- at::Tensor tensor =
66- at::from_blob (data, sizes, strides, deleter, options.is_variable (false ));
67+ at::Tensor tensor = ([&]() {
68+ at::AutoNonVariableTypeMode non_var_type_mode (true );
69+ return at::from_blob (data, sizes, strides, deleter, options.is_variable (false ));
70+ })();
6771 return autograd::make_variable (tensor, options.requires_grad ());
6872}
6973
@@ -96,8 +100,10 @@ inline at::Tensor from_blob(
96100 at::IntArrayRef sizes,
97101 const Deleter& deleter,
98102 const at::TensorOptions& options = at::TensorOptions()) {
99- at::Tensor tensor =
100- at::from_blob (data, sizes, deleter, options.is_variable (false ));
103+ at::Tensor tensor = ([&]() {
104+ at::AutoNonVariableTypeMode non_var_type_mode (true );
105+ return at::from_blob (data, sizes, deleter, options.is_variable (false ));
106+ })();
101107 return autograd::make_variable (tensor, options.requires_grad ());
102108}
103109
0 commit comments