PyTorch torch.from_numpy 関数


Pytorch torch 参考手册Pytorch torch リファレンスマニュアル

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)

出力結果は次のとおりです:

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)

出力結果は次のとおりです:

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

Pytorch torch 参考手册Pytorch torch リファレンスマニュアル

その他の拡張