web-dev-qa-db-ja.com

numpy配列へのPytorchテンソル

サイズがtorch.Size([4, 3, 966, 1296])pytorchテンソルがあります

次のコードを使用して、numpy配列に変換します。

imgs = imgs.numpy()[:, ::-1, :, :]

誰でもこのコードが何をしているのか説明できますか?

11
DukeLover

変換したいテンソルには4つの次元があります。

[:, ::-1, :, :] 

:は、最初の次元をそのままコピーして変換する必要があることを意味します。3番目と4番目の次元についても同様です。

::-1は、2番目の軸については軸を逆にすることを意味します

11
Maaz Bin Musa

.detach()も使用する必要があると思います。 TensorをCUDAとGPUを使用するColabのnumpy配列に変換する必要がありました。私は次のようにしました:

# this is just my embedding matrix which is a Torch tensor object
embedding = learn.model.u_weight

embedding_list = list(range(0, 64382))

input = torch.cuda.LongTensor(embedding_list)
tensor_array = embedding(input)
# the output of the line bwlow is a numpy array
tensor_array.cpu().detach().numpy()
6
Azizbro

一部の卒業生が変数に添付されている場合、この構文を使用できます。

y=torch.Tensor.cpu(x).detach().numpy()[:,:,:,-1]

0
Muhammad Bilal