fxyylhy12138 2023-06-10 22:38 采纳率: 33.3%
浏览 735

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'

感谢大家!

  • 写回答

2条回答 默认 最新

  • 卑微的Coder 2023-06-11 00:34
    关注

    错误通常发生在使用 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() 方法。

    评论

报告相同问题?

问题事件

  • 创建了问题 6月10日