ディープラーニング Pytorch フレームワーク Tensor

ディープラーニング Pytorch フレームワーク Tensor

[[433522]]

1 テンソル刈り込み操作

  • テンソル内の要素を範囲でフィルタリングする
  • 勾配クリッピング、つまり勾配の離散性や勾配爆発が発生したときの勾配の処理によく使用されます。
  • torch.clamp(input, min, max, out=None) → テンソル: 入力テンソルの各要素を [min, max] の区間にクランプし、結果を新しいテンソルに返します。

2 テンソルインデックスとデータフィルタリング

  • torch.where(codition,x,y): 条件に従って新しいテンソルを形成するために、x と y から条件を満たす要素を選択します。入力パラメータ condition: 条件制限。条件が満たされた場合は a を選択し、そうでない場合は出力として b を選択します。
  • torch.gather(input,dim,index,out=None): 指定された次元のインデックス割り当てに従ってテンソルを出力します。
  • torch.inex_select(input, dim, index, out=None): 指定されたインデックスに従って出力テンソルを割り当てます。
  • torch.masked_select(input,mask,out=None): マスクに従ってテンソルを出力し、ベクトルとして出力します。
  • torch.take(input,indices): 入力を1Dテンソルとして扱い、インデックスに従って出力テンソルを取得します。
  • torch.nonzero(input,out=None): ゼロ以外の要素の座標を出力する
  1. 輸入トーチ 
  2. #トーチ.どこ 
  3. a =トーチ.rand (4, 4)  
  4. b =トーチ.rand (4, 4)  
  5. 印刷(a)  
  6. 印刷(b)  
  7. 出力= torch.where (a > 0.5, a, b)  
  8. 印刷する)

  1. 印刷("torch.index_select")  
  2. a =トーチ.rand (4, 4)  
  3. 印刷(a)  
  4. 出力= torch.index_select (a, dim = 0 ,  
  5. インデックス= torch.tensor ([0, 3, 2]))  
  6. # dim = 0は列単位、インデックスは行単位 
  7. 出力を印刷します。

  1. 印刷("torch.gather")  
  2. a = torch.linspace (1, 16, 16).view(4, 4)  
  3. 印刷(a)  
  4. 出力= torch.gather (a, dim = 0 ,  
  5. インデックス= torch.tensor ([[0, 1, 1, 1],  
  6. [0, 1, 2, 2],  
  7. [0, 1, 3, 3]]))  
  8. 印刷する)  
  9. 印刷(out.shape)  
  10. #注: 0 から始まり、0 列目に 0 番目、1 列目に 1 番目、2 列目に 1 番目、3 列目に 1 番目、というようになります。  
  11. # dim = 0 、 out[i, j, k] = input[index[i, j, k], j, k]  
  12. # dim = 1 、 out[i, j, k] = input[i, index[i, j, k], k]
  13. # dim = 2 、 out[i, j, k] = input[i, j, index[i, j, k]]

  1. 印刷("torch.masked_index")  
  2. a = torch.linspace (1, 16, 16).view(4, 4)  
  3. マスク= torch.gt (a, 8)  
  4. 印刷(a)  
  5. 印刷(マスク)  
  6. 出力= torch.masked_select (a, マスク)  
  7. 印刷する)

  1. print("torch.take")  
  2. a = torch.linspace (1, 16, 16).view(4, 4)  
  3. b = torch.take (a、インデックス= torch.tensor ([0, 15, 13, 10]))  
  4. 印刷(b)

  1. #トーチ.非ゼロ 
  2. print("torch.take")  
  3. a =トーチ.テンソル([[0, 1, 2, 0], [2, 3, 0, 1]])  
  4. 出力= torch.nonzero (a)  
  5. 印刷する)  
  6. #スパース表現

3 テンソルの結合/連結

  • torch.cat(seq, dim=0, out=None): 既存の次元に従って連結する
  • torch.stack(seq, dim=0, out=None): 入力テンソルのシーケンスを新しい次元に沿って連結します。シーケンス内のすべてのテンソルは同じ形状である必要があります。
  1. print("torch.stack")  
  2. a = torch.linspace (1, 6, 6).view(2, 3)  
  3. b =トーチ.linspace (7, 12, 6).view(2, 3)  
  4. 印刷(a, b)  
  5. 出力= torch.stack ((a, b), dim = 2 )  
  6. 印刷する)  
  7. 印刷(out.shape)  
  8. print(out[:, :, 0])  
  9. print(out[:, :, 1])

4 テンソルスライス

  • torch.chunk(tensor,chunks,dim=0): 特定の次元に従ってチャンクを均等に分割します (最後のチャンクは平均よりも小さくなる場合があります)
  • torch.split(tensor,split_size_or_sections,dim=0): 2番目のパラメータで指定されたリストまたは整数に従って、特定の次元に従ってテンソルを分割します。

5 テンソル変形演算

  • torch().reshape(入力,形状)
  • torch().t(入力): 2Dテンソル転置のみ
  • torch().transpose(input, dim0, dim1): 2つの次元を入れ替える
  • torch().squeeze(input, dim=None, out=None): サイズが1の次元を削除します
  • torch().unbind(tensor,dim=0): 次元を削除する
  • torch().unsqueeze(input, dim, out=None): 指定された位置に次元を追加し、最後に dim=-1 を追加します
  • torch().flip(input,dims): 指定された次元に沿ってテンソルを反転する
  • torch().rot90(input,k,dims): 指定された次元と回転数に従ってテンソルを回転します。
  1. 輸入トーチ 
  2. a =トーチ.rand (2, 3)  
  3. 印刷(a)  
  4. 出力= torch.reshape (a, (3, 2))  
  5. 印刷する)

  1. 印刷(a)  
  2. 印刷(torch.flip(a, dims = [2, 1]))  
  3. 印刷(a)  
  4. 印刷(a.shape)  
  5. out = torch.rot90 (a, -1, dims =[0, 2]) #時計回りに90°回転 
  6. 印刷する)  
  7. 印刷(out.shape)

6 テンソルパディング演算

  • トーチ.full((2,3),3.14)

7 テンソルのスペクトル演算(フーリエ変換)

<<:  トロント大学のデュヴノーチームは確率微分方程式を組み合わせて、無限深ベイズニューラルネットワークを提案した。

>>:  自動運転テストシステムを1つの記事で理解する

ブログ    
ブログ    
ブログ    

推薦する

...

...

かつては世界トップ50のロボット技術企業の一つだったスターロボット企業がまた一つ倒産した。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

アルゴリズム問題演習 - 大規模ブラックリスト IP マッチング

多くの IT 企業では、アルゴリズムは面接で非常に重要な部分を占めていますが、実際の仕事でアルゴリズ...

Baidu Shen Dou: AIネイティブアプリケーションを作成するには2つのステップが重要

2024年1月10日、Honor MagicOS 8.0発表会と開発者会議において、Honor Te...

...

...

AIを活用した自動化はエンタープライズレベルの自動化2.0です

新たな常態に対応するために自動化プロセスを拡大多くの企業は、ニューノーマルに対処するための重要な技術...

...

...

Yunqi CapitalのChen Yu氏:AI投資家を惹きつけてターゲットにする方法

[51CTO.comより引用] 2017年7月21日から22日まで、51CTO主催の人工知能をテーマ...

宇宙も「独学」です!このプロセスは機械学習アルゴリズムに似ており、物理法則を刷新するものである。

宇宙は自ら学ぶことができるのでしょうか?科学者たちは、自ら学ぶ能力を持つ宇宙、「自己学習宇宙」という...

...

ディープラーニングニューラルネットワークによる予測区間

[[390133]]予測区間は、回帰問題の予測における不確実性の尺度を提供します。たとえば、95% ...

インテルがコードの類似性を評価するAIシステムを開発、コンピューターのセルフコーディング性能を40倍向上

[[335747]]コンピュータプログラミングはかつてないほど簡単になりました。当初、プログラマー...