NumPyのndarrayからPyTorchのTensorへ変換
arr = np.arange(3)
とする。
torch.Tensorかtorch.FloatTensor
torch.Tensor(arr)
torch.tensor()
- 元のdtypeを受け継ぐ。
- dtypeを指定することもできる。
- コピーを作る。
torch.tensor(arr) # or torch.tensor(arr, dtype=float32)
torch.from_numpy()
- 元のdtypeを受け継ぐ。
- メモリをシェアするので、元のarrayの値を変更するとtensorの値も変わるし逆も成り立つ。
tensor = torch.from_numpy(arr) print(arr, tensor) # [0 1 2] tensor([0, 1, 2]) arr[0] = 3 print(arr, tensor) # [3 1 2] tensor([3, 1, 2]) tensor[1] = 4 print(arr, tensor) # [3 4 2] tensor([3, 4, 2])
参考資料
https://pytorch.org/docs/stable/tensors.html?highlight=from_numpy
https://pytorch.org/docs/stable/sparse.html?highlight=floattensor#torch.sparse.FloatTensor
https://pytorch.org/docs/stable/torch.html?highlight=from_numpy#torch.from_numpy