PyTorch torch.transpose 関数
torch.transposeは PyTorch でテンソルの2つの次元を交換するための関数です。入力テンソルの転置ビューを返します。
これは深層学習でよく使われる操作で、データの形状を変えてさまざまな計算ニーズに適応させるために使用されます。
関数定義
torch.transpose(input, dim0, dim1)
パラメータ:
input(Tensor): 入力テンソル。dim0(int): 交換する最初の次元。dim1(int): 交換する2番目の次元。
戻り値:
torch.Tensor: 転置後のテンソルのビューを返します。
使用例
例1: 2次元行列の転置
実例
import torch
# 3x4 行列を作成
x = torch.randn(3, 4)
# 転置
y = torch.transpose(x, 0, 1)
print("元の形状:", x.shape)
print("転置後の形状:", y.shape)
print("元の:")
print(x)
print("転置後:")
print(y)
# 3x4 行列を作成
x = torch.randn(3, 4)
# 転置
y = torch.transpose(x, 0, 1)
print("元の形状:", x.shape)
print("転置後の形状:", y.shape)
print("元の:")
print(x)
print("転置後:")
print(y)
出力結果は次のとおりです:
原始形状: torch.Size([3, 4])
转置后形状: torch.Size([4, 3])
原始:
tensor([[ 0.3364, -0.7844, 0.9760, 0.4381],
[ 0.7865, -1.2775, 0.5767, -0.5268],
[-0.6399, -0.6743, -0.2972, -0.4781]])
转置后:
tensor([[ 0.3364, 0.7865, -0.6399],
[-0.7844, -1.2775, -0.6743],
[ 0.9760, 0.5767, -0.2972],
[ 0.4381, -0.5268, -0.4781]])
例2: 多次元テンソルの転置
実例
import torch
# 3D テンソルを作成
x = torch.randn(2, 3, 4)
# dim=1 と dim=2 を交換
y = torch.transpose(x, 1, 2)
print("元の形状:", x.shape)
print("転置後の形状:", y.shape)
# 3D テンソルを作成
x = torch.randn(2, 3, 4)
# dim=1 と dim=2 を交換
y = torch.transpose(x, 1, 2)
print("元の形状:", x.shape)
print("転置後の形状:", y.shape)
出力結果は次のとおりです:
原始形状: torch.Size([2, 3, 4]) 转置后形状: torch.Size([2, 4, 3])
注意事項
torch.transpose返されるのはビューであり、コピーではありません。- 2次元テンソルの場合は、次のものも使用できます
tensor.t()メソッド。
その他の拡張
Pytorch torch リファレンスマニュアル