我正在尝试将 atorch::Tensor
与sizes
其他东西进行比较,但似乎我做错了。
我试过了:
auto t = torch::ones({ 3,3 }).sizes();
std::cout << c10::IntArrayRef{ 3,3 } << std::endl;
std::cout << (t.equals(c10::IntArrayRef{ 3,3 })) << std::endl;
总是返回假。
我也试过:
t == c10::IntArrayRef{ 3,3 };
这也返回false。由于 IntArratRef 本身不拥有存储空间,因此我尝试了:
c10::IntArrayRef x(std::vector<int>{ 3, 3 });
但它失败了,说:
Error C2664 'c10::ArrayRef<int64_t>::ArrayRef(c10::ArrayRef<int64_t> &&)': cannot convert argument 1 from 'std::vector<T,std::allocator<int>>' to 'const T &'
我目前正在单独比较每个维度,这远非理想,更不用说麻烦了。这里有什么问题?