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

ブログ    

推薦する

...

スマートフォンアプリケーションにおける人工知能の役割

人工知能がスマートフォンアプリとユーザーエクスペリエンスをどのように変えているのか。進化し続けるテク...

さまざまなソートアルゴリズムの概要

ソート アルゴリズムは、最も基本的で一般的に使用されるアルゴリズムです。ソート アルゴリズムは、シナ...

マイクロソフト、2023年までに8つの人工知能プロジェクトをオープンソース化へ

著者 | ツァミア・アンサリ企画 | ヤン・ジェンマイクロソフトは、ソフトウェア大手の元CEO、ステ...

...

APP はユーザーのプライバシーと顔認識生体認証情報を深く掘り下げ、「データ疫病」の到来に注意

315 Gala で摘発された企業は、業界内ではほんの少数派です。ユーザーのプライバシーを侵害するア...

...

人工知能がメンタルヘルスの改善に役立つ4つの方法

[51CTO.com クイック翻訳] 私たちはメンタルヘルスの危機を経験しています。世界人口の約 1...

3つの大きな弱点がAIスタートアップへの扉を閉ざしている

先月、投資会社a16zがAIスタートアップが直面する困難を分析した記事を発表しました。AIスタートア...

GPT-4 MATHの精度は84.3%まで上昇しました!香港中文大学や清華大学を含むトップ7大学が新たなCSV方式を提案

大規模言語モデル (LLM) は常識理解やコード生成などのタスクでは大きな進歩を遂げていますが、数学...

ChatGPT を使用して Web アプリケーションを構築する方法は?

翻訳者 |ブガッティレビュー | Chonglou ChatGPTの最大のセールスポイントの 1 つ...

ディープラーニングの分散トレーニングにおける大きなバッチサイズと学習率の関係をどのように理解すればよいでしょうか?

[[207640]]この記事は、Zhihu の質問「ディープラーニングの分散トレーニングにおける大...

MLOps 向け機械学習設計パターン

著者 | Pier Paolo Ippolito、データ サイエンティスト翻訳者 | 陸新王校正 |...

AIが人事と採用を変える3つの方法

[[407974]]人工知能はこれまで以上にビジネスにおいて重要な役割を果たしています。プロフェッシ...

A100よりもコストパフォーマンスに優れています! FlightLLM により、大規模モデル推論でパフォーマンスとコストを同時に心配する必要がなくなりました。

端末側での大規模言語モデルの適用により、コンピューティング性能とエネルギー効率の需要が「引き出され」...