目次
- pytorchの基本的な要素操作
-
- 初期化されていない行列を作成する
- 初期化された行列を作成する
- すべて 0 の行列を作成し、データ要素のタイプを次のように指定します。
- データから直接テンソルを作成する
- 既存のテンソルから同じサイズの新しいテンソルを作成します
- randn_like メソッドを使用して同じサイズのテンソルを取得し、ランダムな初期化を使用してそれらに値を割り当てます
- .size() メソッドを使用してテンソルの形状を取得します
- 添加
- スライス操作
- テンソルの形状を変更する
- テンソルに要素が 1 つしかない場合は、 item() を使用して値を Python 数値として取得できます。
- torch tensor と numpy 配列の間の変換
- cuda tensor について: tensor は .to() メソッドを使用して任意のデバイスに移動できます
pytorchの基本的な要素操作
from __future__ import print_function
import torch
初期化されていない行列を作成する
x=torch.empty(5,3)
print(x)
初期化された行列を作成する
x=torch.rand(5,3)
print(x)
すべて 0 の行列を作成し、データ要素のタイプを次のように指定します。
x=torch.zeros(5,3,dtype=torch.long)
print(x)
データから直接テンソルを作成する
x=torch.tensor([2,5,3,5])
print(x)
既存のテンソルから同じサイズの新しいテンソルを作成します
x=x.new_ones(5,3,dtype=torch.double)
print(x)
randn_like メソッドを使用して同じサイズのテンソルを取得し、ランダムな初期化を使用してそれらに値を割り当てます
y=torch.randn_like(x,dtype=torch.float)
print(y)
.size() メソッドを使用してテンソルの形状を取得します
print(x.size())
添加
最初の方法
x=torch.randn(5,3)
y=torch.randn(5,3)
print(x+y)
2番目の方法
print(torch.add(x,y))
3番目の方法
result=torch.empty(5,3)
torch.add(x,y,out=result)
print(result)
4 番目の方法: その場置換 (y=y+x を実行)
y.add_(x)
print(y)
知らせ
スライス操作
x[:,1]
テンソルの形状を変更する
x=torch.randn(4,4)
y=x.view(16)
z=x.view(-1,8)
x.size(),y.size(),z.size()
テンソルに要素が 1 つしかない場合は、 item() を使用して値を Python 数値として取得できます。
x=torch.randn(1)
print(x,x.item())
torch tensor と numpy 配列の間の変換
a=torch.ones(5)
b=a.numpy()
a.add_(1)
print(a,b)
import numpy as np
a=np.ones(5)
b=torch.from_numpy(a)
np.add(a,1,out=a)
print(a,b)
知らせ
cuda tensor について: tensor は .to() メソッドを使用して任意のデバイスに移動できます
ウィンドウズ
マック
if torch.backends.mps.is_available():
device=torch.device('mps')
#cpu上创建x,gpu上创建y
x=torch.randn(1)
y=torch.ones_like(x,device=device)
x=x.to(device)
#此时x,y都在gpu上
z=x+y
print(z)
#再将z转移到cpu上
print(z.to('cpu',torch.float32))