【发布时间】:2019-05-02 21:32:15
【问题描述】:
我想将整数张量转换为布尔张量。
具体来说,我希望能够拥有一个将tensor([0,10,0,16]) 转换为tensor([0,1,0,1]) 的函数
这在 Tensorflow 中很简单,只需使用 tf.cast(x,tf.bool)。
我希望强制转换将所有大于 0 的整数更改为 1,并将所有等于 0 的整数更改为 0。这相当于大多数语言中的 !!。
由于 pytorch 似乎没有专用的布尔类型可以转换,所以这里最好的方法是什么?
编辑:我正在寻找一种矢量化解决方案,而不是循环遍历每个元素。
【问题讨论】:
-
在每个元素上调用
bool(int)。或者在 numpy 中:使用array.astype(...) -
这是需要for循环的简单解决方案,是的。但是有矢量化的解决方案吗?
-
astype版本几乎肯定是矢量化的。 -
@ThomasLang 在 pytorch 中没有
.astype,所以必须要convert to numpy-> cast -> load to pytorch哪个 IMO 效率低下
标签: python casting boolean pytorch tensor