PyTorch torch.from_numpy 関数
torch.from_numpyこれは、PyTorch で NumPy 配列からテンソルを作成するための関数です。作成されたテンソルは、元の NumPy 配列とメモリを共有します。
これは、PyTorch と NumPy を同時に使用してデータ処理を行う必要があるシナリオで非常に役立ちます。
関数定義
torch.from_numpy(ndarray)
パラメータ:
ndarray(numpy.ndarray): 入力の NumPy 配列。
戻り値:
torch.Tensor: NumPy 配列とメモリを共有するテンソルを返します。
使用例
例1: NumPy 配列からテンソルを作成
例
import torch
import numpy as np
# NumPy 配列を作成
numpy_array = np.array([[1, 2, 3], [4, 5, 6]])
# PyTorch テンソルに変換
tensor = torch.from_numpy(numpy_array)
print("NumPy 配列:")
print(numpy_array)
print("PyTorch テンソル:")
print(tensor)
import numpy as np
# NumPy 配列を作成
numpy_array = np.array([[1, 2, 3], [4, 5, 6]])
# PyTorch テンソルに変換
tensor = torch.from_numpy(numpy_array)
print("NumPy 配列:")
print(numpy_array)
print("PyTorch テンソル:")
print(tensor)
出力結果は次のとおりです:
NumPy 数组:
[[1 2 3]
[4 5 6]]
PyTorch 张量:
tensor([[1, 2, 3],
[4, 5, 6]])
例2: メモリ共有
例
import torch
import numpy as np
# NumPy 配列を作成
numpy_array = np.array([1, 2, 3])
# PyTorch テンソルに変換
tensor = torch.from_numpy(numpy_array)
# テンソルを変更
tensor[0] = 100
# NumPy 配列も変更される
print("NumPy 配列:", numpy_array)
print("PyTorch テンソル:", tensor)
import numpy as np
# NumPy 配列を作成
numpy_array = np.array([1, 2, 3])
# PyTorch テンソルに変換
tensor = torch.from_numpy(numpy_array)
# テンソルを変更
tensor[0] = 100
# NumPy 配列も変更される
print("NumPy 配列:", numpy_array)
print("PyTorch テンソル:", tensor)
出力結果は次のとおりです:
NumPy 数组: [100 2 3] PyTorch 张量: tensor([100, 2, 3])
メモリを共有しているため、一方を変更すると他方にも影響します。
例3: データ型変換
例
import torch
import numpy as np
# NumPy はデフォルトで int64 を作成
numpy_array = np.array([1, 2, 3])
tensor = torch.from_numpy(numpy_array)
print("dtype:", tensor.dtype) # torch.int64
import numpy as np
# NumPy はデフォルトで int64 を作成
numpy_array = np.array([1, 2, 3])
tensor = torch.from_numpy(numpy_array)
print("dtype:", tensor.dtype) # torch.int64
その他の拡張
Pytorch torch リファレンスマニュアル