报错:
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() 方法。
不知道你这个问题是否已经解决, 如果还没有解决的话:看到
https://blog.csdn.net/lyxleft/article/details/81298076 的博客// commmand
pip install numpy==1.11.0
另一个关于node2vec跑完后并没有生成文件的问题,需修改保存文件的函数:src/main.py line 88:model.save_word2vec_format
——> model.wv.save_word2vec_format
Bingo!