【发布时间】:2020-01-20 00:07:51
【问题描述】:
我有一个 sigmoid 函数的列表输出作为 PyTorch 中的张量
例如
output (type) = torch.Size([4]) tensor([0.4481, 0.4014, 0.5820, 0.2877], device='cuda:0',
在进行二进制分类时,我想将所有低于 0.5 的值变为 0,将高于 0.5 的值变为 1。
传统上,您可以使用 NumPy 数组使用列表迭代器:
output_prediction = [1 if x > 0.5 else 0 for x in outputs ]
这可行,但是我必须稍后将 output_prediction 转换回张量才能使用
torch.sum(ouput_prediction == labels.data)
其中 labels.data 是标签的二进制张量。
有没有办法使用带有张量的列表迭代器?
【问题讨论】:
-
也许你可以使用
output_prediction = torch.tensor([1 if x > 0.5 else 0 for x in outputs ])?
标签: python pytorch torchvision