ディープラーニング 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つの記事で理解する

ブログ    
ブログ    
ブログ    

推薦する

日常の問題を自動的に解決する 5 つの AI API

今日の AI テクノロジーを使用して手作業を自動化しましょう。文書の校正、アートの作成、Google...

Googleは人工知能を使って人間の認知の欠陥を浮き彫りにする

今日では、驚くほど人間らしい文章の一部は、実際には大量の人間の文章でトレーニングされた AI システ...

ガートナー:金融業界はAIがもたらす変化を追求

私たちがよく話題にする金融テクノロジーとは、人工知能とデータを活用して新しいビジネス手法を見つけるも...

人工知能とはいったい何でしょうか?人工知能の主要なテクノロジーと概念について学びましょう。

現在、人工知能が何であるかをまだよく理解していない人がたくさんいます。今日は、人工知能の主要な技術と...

GNN の科学: テンセント AI ラボと清華大学が、等変グラフ ニューラル ネットワークをレビューする論文を共同で発表

近年、伝統的な自然科学の問題の解決においてますます多くの人工知能手法が活躍しており、いくつかの重要な...

戻れる幼少時代!快手が「子供になる」特殊効果をリリース

「子供時代に戻りたい。子供の頃はよく食べて、よく寝て、あまり考えないことが好きだった」。山西省大同市...

...

...

NanoNets: データが限られている場合にディープラーニングを適用するにはどうすればよいでしょうか? (優れた)

私は AI をロケット船の建造に例えています。巨大なエンジンと大量の燃料が必要です。エンジンが大きく...

人工知能の時代において、結核を根絶するまでにどれくらい時間がかかるのでしょうか?

結核は古代の呼吸器感染症として人類の歴史を通じて存在し、何億人もの命を奪い、「白ペスト」として知られ...

1つの記事で基本モデルの定義と動作原理を理解する

翻訳者 |ブガッティレビュー | Chonglou 1.基本モデルの定義ベースモデルは、大量のデータ...

スタンフォード大学は対照的嗜好学習を提案:強化学習なしで人間のフィードバックから学習する

人間によるフィードバックによる強化学習 (RLHF) は、モデルを人間の意図に合わせるための一般的な...

今年の主要リリース: 人工知能開発レポート 2020

過去10年間で、人工知能は研究室から工業生産へと移行し、従来の産業モデルを再構築し未来をリードする価...

...