tensorとnumpyの相互変換,および変換の原因

828 ワード

なぜ互いに変換するのか:
1.tensorを操作するには、まずSessionを起動する必要があります.そうしないと、tensor定数のようなtensorに値を再割り当てたり、判断操作をしたりすることはできません.numpy配列に変換すれば処理できます.次のウィジェットでは、tensorをnumpy配列に変換し、tensorに再復元する方法について説明します.
2.TorchのTensorとnumpyのarrayはストレージスペースを共有し、1つを変更すると別の1つも変更されます.
# convert Tensor x of torch to array y of  numpy: 
y = x.numpy();

# convert array x of  numpy to Tensor y of torch: 
y = torch.from_numpy(x)

#        Tensor,    CUDA    Tensor   GPU   

CUDA tensor形式のデータをnumpyに変更する場合は、cpu float-tensorに変換してからnumpy形式に移行する必要があります. 
x_np = x.data.numpy()

#   :

x_np = x.data.cpu().numpy()

参考1:https://blog.csdn.net/ljs_a/article/details/78758116 
参考2:https://blog.csdn.net/u012436149/article/details/54627597
参考3:https://blog.csdn.net/weixin_39449466/article/details/80410314