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

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

科学的人工知能と疑似科学的人工知能を区別する方法

人工知能が進歩し続けるにつれて、研究者たちはその能力を向上させ、さまざまな分野で倫理的かつ責任を持っ...

...

Baidu Create 2019 Baidu AI 開発者カンファレンス Li Yanhong の素晴らしい名言

7月3日に開催されたBaidu Create 2019 Baidu AI Developer Con...

デジタル時代において、クラウドインテリジェンスはクラウドの未来を再定義します

[51CTO.comからのオリジナル記事] デジタル時代において、人工知能の普及はクラウドコンピュー...

生物学的視覚とコンピュータビジョンの違いを理解する方法

[51CTO.com クイック翻訳]人工知能技術の開発初期から、科学者たちは外の世界を「見る」ことが...

ディープラーニングチップ研究の新潮流:処理の中核となるメモリ

[[186777]]過去 2 年間、機械学習、特にディープ ニューラル ネットワークのニーズを満たす...

人工知能について知っておくべき基礎知識はすべてここにあります

21 世紀に革命をもたらした技術を 1 つ挙げるとすれば、それは人工知能でしょう。人工知能は私たちの...

機械故障診断における人工知能の応用方向

機械の故障診断における人工知能の応用方向を次に示します。 [[342398]] 1. 機械故障診断に...

医療におけるロボティック プロセス オートメーションのユースケース

[[419917]]多くの大規模医療機関は現在、デジタル化を実現するためにロボティック・プロセス・オ...

人工知能の雇用の方向性と展望

人工知能は現在、世界の技術競争で最もホットな話題です。我が国は人工知能の分野に多大な政策支援を行って...

C#アルゴリズムで解決した面接の質問

C# アルゴリズムはプログラマーの面接でよく出題されますが、C# アルゴリズムを使用してそれをどのよ...

...

シリコンバレーのAI界で注目の記事:ジャスパーとVCはAIGCブームの最大の敗者となり、潮が引いた後に初めて誰が裸で泳いでいるかがわかる

この夏、人工知能起業家サム・ホーガンが書いた記事がシリコンバレー中で話題になった。現在、AI と大規...

ハンドルとペダルがない?アップルは2025年までに自動運転車を発売する予定

スペインの新聞「ヴァングアルディア」によると、アップルは2025年にハンドルもペダルもない自動車を発...

データサイエンスの面接で知っておくべき 10 の機械学習の概念

この記事は公式アカウント「Reading the Core」(ID: AI_Discovery)から...