PyTorch Tensor(二)
Tensor一般コマンド
1.アクションの作成
1.1 torch.eye
2次元テンソル、対角線位置全1、その他の位置全0、戻り値タイプTensorを返します.
パラメータ: n(int)-行数 m(int,optional)-列数.Noneの場合、デフォルトはn です. out (Tensor, optinal) - Output tensor
1.2 torch.linspace
1次元テンソルを返し、区間
パラメータ: start(float)-シーケンスの開始点 end(float)-シーケンスの最終値 steps(int)-startとendの間に生成されたサンプル数 out(Tensor,optional)-結果テンソル
1.3 torch.randとtorch.randn
randは[0,1)均一分布,radnは標準正太分布である
形状は可変パラメータ
似たようなones、zerosの使い方は上と同じです.
1.4 torch.arange()とtorch.range()
長さfloor((end−start)/step)の1次元テンソルを返します.startからendまでのstepをステップ長とするシーケンス値のセット(デフォルトステップ長は1)パラメータが含まれます. start(float)-シーケンスの開始点 end(float)-シーケンスの最終値 step(int)-隣接点の間隔の大きさ【ステップ長】 out(Tensor,optional)-結果テンソルは にこだわっている.
2.スライス、インデックス、接続、シフト
2.1 torch.cat()
入力されたテンソルシーケンスseqを所定の次元で接続操作する.パラメータ: inputs(sequence of Tensors)-任意の同じTensorタイプ(float,long,duoble)pythonシーケンス dimension(int,optional)-この次元に沿ってテンソルシーケンス を接続します.
torch.chunk(),torch.gather(),torch.index_select(),torch.masked_select()公式ドキュメントを表示するには、次の手順に従います.https://pytorch-cn.readthedocs.io/zh/latest/package_references/torch/
2.2 torch.squeeze
入力テンソルシェイプの1を除去して返します.入力が「A」の場合×1×B×1×C×1×D)では、出力形状は、(A)×B×C×D)
dimが与えられると、押出操作は所定の次元にのみ行われる.例えば、入力形状は、(A)×1×B),
注:テンソルを返すと、入力テンソルとメモリが共有されるため、どちらかの内容を変更すると別の内容が変更されます.
パラメータ: input(Tensor)-入力テンソル dim(int,optional)-与えられた場合、 だけ押圧する. out(Tensor,optional)-出力テンソル
2.3 torch.unsqueeze()
新しいテンソルを返し、入力した指定の位置に次元1を挿入します.
注:テンソルを返すと、入力テンソルとメモリが共有されるため、どちらかの内容を変更すると別の内容が変更されます.
2.4 torch.tとtransposeで転置を実現
参考:PyTorch中国語ドキュメント
1.アクションの作成
1.1 torch.eye
2次元テンソル、対角線位置全1、その他の位置全0、戻り値タイプTensorを返します.
torch.eye(n, m=None, out=None)
パラメータ:
torch.eye(3)
tensor([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
1.2 torch.linspace
torch.linspace(start, end, steps=100, out=None) → Tensor
1次元テンソルを返し、区間
start
とend
に均等に間隔を置いたsteps
点を含む.出力1次元テンソルの長さはsteps
であった.注意stepsはステップ長ではありません.パラメータ:
torch.linspace(3, 12, steps=5)
tensor([ 3.0000, 5.2500, 7.5000, 9.7500, 12.0000])
1.3 torch.randとtorch.randn
randは[0,1)均一分布,radnは標準正太分布である
torch.rand(*sizes, out=None) → Tensor
torch.randn(*sizes, out=None) → Tensor
形状は可変パラメータ
size
によって決定されるx = torch.rand(2,2)
x
tensor([[0.9483, 0.6083],
[0.0579, 0.0638]])
y = torch.randn(3,3)
y
tensor([[ 0.3220, -2.4360, -0.0790],
[-0.1366, -0.5444, 1.4342],
[ 0.7295, -1.3341, 0.2022]])
似たようなones、zerosの使い方は上と同じです.
1.4 torch.arange()とtorch.range()
torch.arange(start, end, step=1, out=None) → Tensor
torch.range(start, end, step=1, out=None) → Tensor
長さfloor((end−start)/step)の1次元テンソルを返します.startからendまでのstepをステップ長とするシーケンス値のセット(デフォルトステップ長は1)パラメータが含まれます.
torch.arange()
を推奨し、またpythonは左閉右開torch.arange(1,50,10)
tensor([ 1, 11, 21, 31, 41])
2.スライス、インデックス、接続、シフト
2.1 torch.cat()
torch.cat(inputs, dimension=0) → Tensor
入力されたテンソルシーケンスseqを所定の次元で接続操作する.パラメータ:
##
x = torch.randn(1,3)
x
tensor([[-0.0675, -0.5289, -0.3090]])
y = torch.cat((x,x,x),0)
y
tensor([[-0.0675, -0.5289, -0.3090],
[-0.0675, -0.5289, -0.3090],
[-0.0675, -0.5289, -0.3090]])
z = torch.cat((x,x,x),1)
z
tensor([[-0.0675, -0.5289, -0.3090, -0.0675, -0.5289, -0.3090, -0.0675, -0.5289,
-0.3090]])
torch.chunk(),torch.gather(),torch.index_select(),torch.masked_select()公式ドキュメントを表示するには、次の手順に従います.https://pytorch-cn.readthedocs.io/zh/latest/package_references/torch/
2.2 torch.squeeze
torch.squeeze(input, dim=None, out=None)
入力テンソルシェイプの1を除去して返します.入力が「A」の場合×1×B×1×C×1×D)では、出力形状は、(A)×B×C×D)
dimが与えられると、押出操作は所定の次元にのみ行われる.例えば、入力形状は、(A)×1×B),
squeeze(input, 0)
はテンソルを一定に保ち,squeeze(input, 1)
のみで形状が(A)になる×B). 注:テンソルを返すと、入力テンソルとメモリが共有されるため、どちらかの内容を変更すると別の内容が変更されます.
パラメータ:
input
は、与えられた次元で#
x = torch.ones(2,1,2,1,2)
x.size()
torch.Size([2, 1, 2, 1, 2])
y = torch.squeeze(x)
y.size()
torch.Size([2, 2, 2])
y = torch.squeeze(x, 0)
y.size()
torch.Size([2, 1, 2, 1, 2])
y = torch.squeeze(x, 1)
y.size()
torch.Size([2, 2, 1, 2])
2.3 torch.unsqueeze()
torch.unsqueeze(input, dim, out=None)
新しいテンソルを返し、入力した指定の位置に次元1を挿入します.
注:テンソルを返すと、入力テンソルとメモリが共有されるため、どちらかの内容を変更すると別の内容が変更されます.
#
x = torch.Tensor([1,2,3]) # tensor
y = torch.unsqueeze(x,0)
z = torch.unsqueeze(x, 1)
print(y)
print(z)
tensor([[1., 2., 3.]])
tensor([[1.],
[2.],
[3.]])
2.4 torch.tとtransposeで転置を実現
z
tensor([[1.],
[2.],
[3.]])
torch.t(z)
tensor([[1., 2., 3.]])
参考:PyTorch中国語ドキュメント