pytochのいくつかの常用方法のまとめ
3568 ワード
主にいくつかのpytouchフレームの常用する方法を紹介して、ここでtouch環境は本当にtoch 0.3.1情況を引いて、指定席に座って下さい.1、まず私達がpytouchを学ぶ公式教程の住所を紹介します.http://pytorch.org/docs/master/index.html;もう一つの中国語の文書があります.リンクを開くには0.4バージョンの公式文書をクリックしてください.リンクを開くにはクリックしてください.
2、私もpytouchの初心者です.初心者として、簡単にtouchの使用を紹介します.pytouchはGPUとCPU最適化の深さテンソルを使っています.touchの中で一番重要なデータタイプはTensorです.計算する時、Tensorで計算します.スピードは速くしてください.もし神経ネットを訓練して勾配演算をする時、基本的にはVaraibleタイプで計算します.
input:入力はTensorベクトルでもいいし、単一の値を入力してもいいです.out putは戻りの結果を表し、戻りはベクトルでも単一の値でも良いです. touch.lerp(star,end,weight):結果はout=star t+(end-start)*weight です. toch.rsqrt:平方根の逆数 を返します. touch.mean(input):平均値 を返します. touch.std(input):標準偏差 を返します. touch.prod:すべての要素の積を返します. touch.sum:すべての要素の和を返します. touch.var:すべての要素の分散 を返します. touch.tanh(input):要素のダブルタンジェントを返した結果 touch.equal(touch.Tensor(a)、touch.Tensor(b):2枚の量を比較して、同じならtrueに戻ります.そうでなければfals に戻ります. touch.ge(input、other、out=none)、touch.ge(touch.Tensor(a)、touch.Tensor(b))比較内容: *ge:input>=otherつまりa>=b、trueに戻ります.そうしないとfalse gt:input>otherつまりa>bに戻ります.trueに戻ります.そうしないとfalse lt:inputに戻ります.
toch.max(input):入力要素の最大値toch.min(input)を返します.入力要素の最小値element_を返します.size():単一要素のバイトpytochを返し、神経ネットワークでよく使われる方法1、expand(*size)
tensorの新しいビューを返します.単一次元はより大きなサイズに拡大されます.テナントも高い次元に拡大でき、新たに増加した次元が前面に付着します.新しいメモリを割り当てる必要はなく、strideを0にすることで、1次元の拡張ビットがより高くなります.任意の1次元のメモリは、新しいメモリを割り当てずに任意の数値に拡張することができる.
2、index_add_(dim、index、tensor)→Tensor
パラメータindexのインデックス数によって決定される順序で、パラメータtenssorの要素を元のtensorに加えます.パラメータtensorのサイズは厳密に元のtenssorに合わせなければなりません.でないと、エラーが発生します.パラメータ:-dim(int)-インデックスindexが指す次元-index(LongTensor)-tensorから選択する必要がある指数-tensor(Tensor)-加算要素を含むtensor
パラメータindexのインデックス数によって決定される順序で、パラメータtenssorの要素を元のtensorにコピーします.パラメータtensorのサイズは厳密に元のtenssorに合わせなければなりません.でないと、エラーが発生します.説明します.index=touch.LongTensor([0,2,1])は、ここで2行目と3行目を合わせているので、上記の結果が得られます.
4、norrow(demension、start、length)->te
一本のtensorを返して縮小した後のtenssorを通ります.次元dimの縮小範囲はstartからstart+lengthまでです.元のtensorと戻るtensorは同じ底のメモリを共有します.
tenssorの次元をパラメータに換える:dim(int)—位置を変える順番
指定された次元に沿ってテナントを繰り返す.この関数はexpand()とは異なり、テンソル中のデータをコピーします.
パラメータ:*size-1次元ごとに繰り返す回数
tensorのサイズを指定の大きさに調整します.要素の個数が現在のメモリより大きい場合、下のメモリサイズは新しい要素の数と一致する大きさに調整されます.
要素の個数が現在のメモリより小さい場合、下のメモリは変更されません.元のtensorに保存されている要素はそのままですが、新しいメモリは初期化されません.
パラメータ:sizesのサイズを調整する必要があります.
2、私もpytouchの初心者です.初心者として、簡単にtouchの使用を紹介します.pytouchはGPUとCPU最適化の深さテンソルを使っています.touchの中で一番重要なデータタイプはTensorです.計算する時、Tensorで計算します.スピードは速くしてください.もし神経ネットを訓練して勾配演算をする時、基本的にはVaraibleタイプで計算します.
input:入力はTensorベクトルでもいいし、単一の値を入力してもいいです.out putは戻りの結果を表し、戻りはベクトルでも単一の値でも良いです.
toch.max(input):入力要素の最大値toch.min(input)を返します.入力要素の最小値element_を返します.size():単一要素のバイトpytochを返し、神経ネットワークでよく使われる方法1、expand(*size)
tensorの新しいビューを返します.単一次元はより大きなサイズに拡大されます.テナントも高い次元に拡大でき、新たに増加した次元が前面に付着します.新しいメモリを割り当てる必要はなく、strideを0にすることで、1次元の拡張ビットがより高くなります.任意の1次元のメモリは、新しいメモリを割り当てずに任意の数値に拡張することができる.
2、index_add_(dim、index、tensor)→Tensor
パラメータindexのインデックス数によって決定される順序で、パラメータtenssorの要素を元のtensorに加えます.パラメータtensorのサイズは厳密に元のtenssorに合わせなければなりません.でないと、エラーが発生します.パラメータ:-dim(int)-インデックスindexが指す次元-index(LongTensor)-tensorから選択する必要がある指数-tensor(Tensor)-加算要素を含むtensor
>>> x = torch.Tensor([[1, 1, 1], [1, 1, 1], [1, 1, 1]])
>>> t = torch.Tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
>>> index = torch.LongTensor([0, 2, 1]) # 2 3
>>> x.index_add_(0, index, t)
>>> x
2 3 4
8 9 10
[torch.FloatTensor of size 3x3]
3、index_copy_(dim、index、tensor)→Tensorパラメータindexのインデックス数によって決定される順序で、パラメータtenssorの要素を元のtensorにコピーします.パラメータtensorのサイズは厳密に元のtenssorに合わせなければなりません.でないと、エラーが発生します.説明します.index=touch.LongTensor([0,2,1])は、ここで2行目と3行目を合わせているので、上記の結果が得られます.
4、norrow(demension、start、length)->te
一本のtensorを返して縮小した後のtenssorを通ります.次元dimの縮小範囲はstartからstart+lengthまでです.元のtensorと戻るtensorは同じ底のメモリを共有します.
>>>x = torch.Tensor([[1,2,3], [4,5,6], [7,8,9]])
>>>x.narrow(0,0,2)
1 2 3
4 5 6
[torch.FloatTensor of size 2x3]
>>>x.narrow(1,1,2)
2 3 5
6 8 9
[torch.FloatTensor of size 3x2]
4、permut(dims)、一般的な次元変換方法tenssorの次元をパラメータに換える:dim(int)—位置を変える順番
>>>x = torch.randn(2,3,4)
>>>x.size()
torch.size([2,3,5])
>>>x.permute(2,0,1).size()
torch.size([5,2,3])
5、repeat(*sizes)指定された次元に沿ってテナントを繰り返す.この関数はexpand()とは異なり、テンソル中のデータをコピーします.
パラメータ:*size-1次元ごとに繰り返す回数
>>>x = torch.Tensor([1,2,3])
>>>x.repeat(4,2)
1 2 3 1 2 3
1 2 3 1 2 3
1 2 3 1 2 3
1 2 3 1 2 3
[torch.FloatTensor of size 4x6]
6、リゼス(*size)>>>x.repeat(4,2)
1 2 3 1 2 3
1 2 3 1 2 3
1 2 3 1 2 3
1 2 3 1 2 3
[torch.FloatTensor of size 4x6]
>>>x.repeat(4,2,1).size()
torch.Size([4,2,3])
7、リゼス(*size)tensorのサイズを指定の大きさに調整します.要素の個数が現在のメモリより大きい場合、下のメモリサイズは新しい要素の数と一致する大きさに調整されます.
要素の個数が現在のメモリより小さい場合、下のメモリは変更されません.元のtensorに保存されている要素はそのままですが、新しいメモリは初期化されません.
パラメータ:sizesのサイズを調整する必要があります.