losses.append(loss.data.cpu().numpy()[0] if USE_CUDA else loss.data.numpy()[0])
正确代码如下:
losses.append(loss.data.cpu().numpy().tolist() if USE_CUDA else loss.data.cpu().numpy().tolist())
1
TypeError: can't convert CUDA tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first.
如果想把CUDA tensor格式的数据改成numpy时,需要先将其转换成cpu float-tensor随后再转到numpy格式。 numpy不能读取CUDA tensor 需要将它转化为 CPU tensor
2
IndexError: too many indices for array: array is 0-dimensional, but 1 were indexed
例子如下:
arr = numpy.array(1) # <class 'numpy.ndarray'>
print(type(arr))
temp = arr.tolist() # <class 'int'>
print(type(temp))