我首先附加代码,这将为您提供更好的主意
` prediction = prediction.data.max(1)[1] #gives a tensor value
prediction = (prediction.cpu().numpy().item()) #converts that tensor into a numpy array
result.append(int_to_word[prediction])`
我正在使用pytorch来生成单词。行prediction = prediction.data.max(1)[1]
为我们提供了最大概率的类标签,结果证明是张量值。
prediction = (prediction.cpu().numpy().item())
此语句将张量转换为numpy数组,函数item()
从数组中提取值。
现在,当我尝试使用pattern.append(prediction)
附加此值时
我收到以下错误
'numpy.ndarray' object has no attribute 'append'
我无法理解为什么会收到此错误。我已经将numpy数组转换为scalr值,不是吗?不过,为什么我会收到这个错误?
任何人都可以解释并提供解决方案。我将非常感激。
答案 0 :(得分:1)
Numpy数组的维度不可变。他们不支持append
操作。您必须将results
声明为列表,然后将值附加到列表中,然后将其转换为numpy数组:
result = []
...
result.append(prediction) # inside some loop
...
result = np.array(result)