Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
やさしくわかるPyTorch入門 / Easy to Learn PyTorch
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
payanotty
October 28, 2021
Programming
1
1.2k
やさしくわかるPyTorch入門 / Easy to Learn PyTorch
connpassで実施したセミナーの資料になります。
https://studyco.connpass.com/event/227486/
payanotty
October 28, 2021
Tweet
Share
More Decks by payanotty
See All by payanotty
トークナイザー入門
payanotty
4
2.3k
LLM_Prompt_Recovery
payanotty
3
1k
Embeddingモデルを使ったベクトル化のしくみ、fine-tuning手法を解説
payanotty
15
6.2k
Transformerによるテキストベクトル化を解説
payanotty
6
4k
Kaggle_LLMコンペの攻略法を解説.pdf
payanotty
1
1.6k
ManimMLでイケてるアニメーションを作ろう
payanotty
0
800
Lets Finetune LLM
payanotty
3
1.4k
Stable Diffusion Web UI, Let Your Fave Eat Ramen
payanotty
1
1.1k
Lets Finetune Stable Diffusion
payanotty
0
1.3k
Other Decks in Programming
See All in Programming
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
460
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
170
Oxlint JS plugins
kazupon
1
980
今から始めるClaude Code超入門
448jp
8
8.9k
組織で育むオブザーバビリティ
ryota_hnk
0
180
Patterns of Patterns
denyspoltorak
0
1.4k
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.4k
MUSUBIXとは
nahisaho
0
140
CSC307 Lecture 04
javiergs
PRO
0
660
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
270
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
220
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
3.9k
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
940
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
78
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Done Done
chrislema
186
16k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.1k
A better future with KSS
kneath
240
18k
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
A Tale of Four Properties
chriscoyier
162
24k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
100
Transcript
やさしくわかる PyTorch入門
• 名前: 早野 康太 • お仕事: ◦ 深層学習エンジニア • 好きなこと:
◦ 音ゲー ◦ アニメ ◦ ウマ娘 ◦ 犬とか猫 発表者紹介
• Facebook AI Research (FAIR)により 開発された深層学習ライブラリ • Pythonで深層学習するなら TeonsorFlowとの2択 •
モデルの構造や学習の過程を 直感的に記述することができる PyTorchについて
• Tensor ◦ numpyとほとんど同じ感覚で使える ◦ 勾配 (偏微分) に関する 情報を持っている ◦
GPU上での行列計算が可能 • nn.Module ◦ 全てのモデルのベースとなる型 ◦ 新しいモデルを定義するときは これを継承する Tensor型とModule型
• Tensor ◦ numpyとほとんど同じ感覚で使える ◦ 勾配 (偏微分) に関する 情報を持っている ◦
GPU上での行列計算が可能 • nn.Module ◦ 全てのモデルのベースとなる型 ◦ 新しいモデルを定義するときは これを継承する Tensor型とModule型
• nn.Module ◦ パラメータをstate_dictの形式で 書き出せる ▪ {‘layer1’: Tensor()...} みたいな感じ Tensor型とModule型
• nn.Module ◦ パラメータをstate_dictの形式で 書き出せる ▪ {‘layer1’: Tensor()...} みたいな感じ ◦
forward ▪ 入力側から変数を流す ▪ モデルに合わせて自分で定義 Tensor型とModule型 forward
• nn.Module ◦ パラメータをstate_dictの形式で 書き出せる ▪ {‘layer1’: Tensor()...} みたいな感じ ◦
forward ▪ 入力側から変数を流す ▪ モデルに合わせて自分で定義 ◦ backward ▪ モデルの出力テンソルに対して 実行する ▪ 誤差逆伝播法で勾配を計算する Tensor型とModule型 backward forward
• nn.Module ◦ パラメータをstate_dictの形式で 書き出せる ▪ {‘layer1’: Tensor()...} みたいな感じ ◦
forward ▪ 入力側から変数を流す ▪ モデルに合わせて自分で定義 ◦ backward ▪ モデルの出力テンソルに対して 実行する ▪ 誤差逆伝播法で勾配を計算する Tensor型とModule型 backward forward
• 出力側から入力側に向かって 誤差信号を伝播させていく • 誤差信号 = 偏微分の値 ◦ (正確ではないが) ∂z/∂yとか∂y/∂xが伝播するイメージ
誤差逆伝播法 x y z backward forward
• PyTorchではTensor型同士の 計算が行われる際、 計算結果の中に勾配計算に 必要な情報が保持される • 計算結果にbackwardメソッドを 実行することで 誤差逆伝播法によって 勾配が計算される
自動微分
• y = x2, z = Σx ij 自動微分 x
y z
• y = x2, z = Σx ij • z.backward()
自動微分 x y z dz/dy dy/dx
• y = x2, z = Σx ij • z.backward()
• backward()を実行するとgrad内に勾配値が記録される ◦ y.grad = dz/dy ◦ x.grad = dz/dy * dy/dx 自動微分 x y z dz/dy dy/dx
• 勾配の分だけパラメータを更新する 微分→パラメータ更新 Loss Weight 勾配
• 勾配の分だけパラメータを更新する 微分→パラメータ更新 Loss Weight
• 勾配の分だけパラメータを更新する 微分→パラメータ更新 Loss Weight
• 勾配の分だけパラメータを更新する ◦ 実際はもう少し工夫があって アルゴリズムによっていろんな 更新の仕方がある • 勾配更新のアルゴリズム ◦ SGD
◦ Adam ← 大体これ使とけば間違いない ◦ AdaBeliaf 微分→パラメータ更新 Loss Weight
• forward ◦ モデルに入力を流仕込む ◦ モデルの出力と正解との誤差を計算する PyTorchでの深層学習の3つのステップ
• forward ◦ モデルに入力を流仕込む ◦ モデルの出力と正解との誤差を計算する • backward ◦ 誤差逆伝播で勾配を計算する
PyTorchでの深層学習の3つのステップ
• forward ◦ モデルに入力を流仕込む ◦ モデルの出力と正解との誤差を計算する • backward ◦ 誤差逆伝播で勾配を計算する
• step ◦ 勾配の分だけパラメータを更新する PyTorchでの深層学習の3つのステップ
• 手書き文字画像データ(MNIST)の分類に PyTorchでチャレンジしてみます ◦ Google Colabのノートブック PyTorch実践 ラベル = 5
• PyTorchの特徴 ◦ 自動微分の機能により forward → backwardの流れを直感的に記述することができる ◦ (今回は触れなかったが) ▪
GPU上での計算を高速化する手法に対応している ▪ モデルのレイヤーごとに学習率をいじれるなど 柔軟性の高いモデル設計が可能 • Google Colaboratoryで結構カンタンに試せちゃうので 興味ある方はぜひ触ってみてください さいごに