AttributeError: 'numpy.ndarray' object has no attribute 'cpu'

报错:
AttributeError: 'numpy.ndarray' object has no attribute 'cpu'

代码片段:
for file in file_list:

features = np.load(file.strip('\n'), allow_pickle=True)
features = [t.cpu().detach().numpy() for t in features]  # 出错行
features = np.array(features, dtype=np.float32)
num_frame = features.shape[0] * 16

控制变量法,一个个删掉报错项后相继报错
AttributeError: 'numpy.ndarray' object has no attribute 'detach'
AttributeError: 'numpy.ndarray' object has no attribute 'numpy'

感谢大家!

错误通常发生在使用 Pytorch 中的 Tensor.cpu() 方法将 GPU 上的张量转移到 CPU 时,但在此处您使用了一个 Numpy 数组,这个数组没有 cpu() 方法。

如果您想将 Numpy 数组移动到 CPU 上,可以使用以下语句:

features = np.load(file.strip('\n'), allow_pickle=True)
features = [t.detach().numpy() for t in features]
features = np.array(features, dtype=np.float32)

如果您手头有 PyTorch 张量,需要将这些张量转移到 CPU 上时,则可以使用 Tensor.cpu() 方法。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^