【问题标题】:remove torch tensor from a list raises RuntimeError: Boolean value of Tensor with more than one value is ambiguous从列表中删除火炬张量引发 RuntimeError:具有多个值的张量的布尔值不明确
【发布时间】:2022-01-12 14:24:06
【问题描述】:

我想将一个元素从训练列表移到验证列表。如果没有火炬张量,该方法可以工作,如下例所示:

test = [[2,1],[3,2],[4,4],[5,67]]
element = test[2]
test.remove(element)
print(test)


Out: [[2, 1], [3, 2], [5, 67]]

我现在的问题是为什么当我使用张量列表从train_datavalidation_data 时它不起作用?有没有办法让它发挥作用? 我最终可以在转换为张量之前做到这一点,但我更喜欢之后。

我从train_data 得到的一个元素的维度是:1 64 3 1080 1920

我得到的错误是:

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_22400/338233821.py in <module>
     18     validation_data.append(element)
     19     print(len(validation_data), len(validation_data[0]), len(validation_data[0][0]), len(validation_data[0][0][0]), len(validation_data[0][0][0][0]))
---> 20     train_data.remove(element)
     21 

RuntimeError: Boolean value of Tensor with more than one value is ambiguous

来自this post 我知道张量在某处被转换为布尔值,但在哪里?

【问题讨论】:

    标签: list torch


    【解决方案1】:

    我发现使用train_data.pop(index) 有效。但我仍然不清楚为什么.remove() 不起作用。我假设.remove() 函数中存在某个 if 情况会触发错误。

    【讨论】:

      猜你喜欢
      • 2021-12-07
      • 2019-11-14
      • 2019-06-08
      • 1970-01-01
      • 2022-10-23
      • 2019-03-27
      • 1970-01-01
      • 2022-11-04
      • 2020-06-11
      相关资源
      最近更新 更多