1 回答

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
不,您通常不能在 GPU 陣列上運(yùn)行 numpy 函數(shù)。PyTorch 為 PyTorch 張量重新實(shí)現(xiàn)了 numpy 中的大部分功能。例如,torch.chunk
工作方式類似于np.array_split
您可以執(zhí)行以下操作:
我正在使用 PyTorch。我有以下代碼:
import numpy as np
import torch
X = np.array([[1, 3, 2, 3], [2, 3, 5, 6], [1, 2, 3, 4]])
X = torch.DoubleTensor(X).cuda()
X_split = np.array_split(X.numpy(),
indices_or_sections = 2,
axis = 0)
X_split
但我收到此錯(cuò)誤:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-121-870b5d3f67b6> in <module>()
----> 1 X_prime_class_split = np.array_split(X_prime_class.numpy(),
2 indices_or_sections = 2,
3 axis = 0)
4 X_prime_class_split
TypeError: can't convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first.
錯(cuò)誤消息很清楚,我知道如何通過僅包括.cpu(), ie 來修復(fù)此錯(cuò)誤。X_prime_class.cpu().numpy(). 我只是想知道這是否證實(shí)了 numpy 數(shù)組不能在 GPU/Cuda 中運(yùn)行?
添加回答
舉報(bào)