Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
実践で使えるtorchのテンソル演算
Search
NearMeの技術発表資料です
PRO
December 26, 2025
79
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
実践で使えるtorchのテンソル演算
NearMeの技術発表資料です
PRO
December 26, 2025
More Decks by NearMeの技術発表資料です
See All by NearMeの技術発表資料です
Claude Code × git worktree で並列開発 (続き) -差分のサービスだけを併設する-
nearme_tech
PRO
1
61
Claude Code × git worktree で並列開発 — サブモジュール構成のリポジトリで成立させる —
nearme_tech
PRO
0
75
LLM + 強化学習
nearme_tech
PRO
0
34
PosthogのA/Bテスト機能の紹介
nearme_tech
PRO
1
98
AIフレンドリーなプロダクトに向けて
nearme_tech
PRO
2
67
初めてのLean言語
nearme_tech
PRO
0
110
Apache Airflow Workflow orchestration without turning cron into spaghetti
nearme_tech
PRO
2
42
実務で役立つ幾何学 ボロノイ図の基礎から グラフ・ネットワーク応用まで
nearme_tech
PRO
1
82
SQL/ID抽出タスクから考える 実践的なハルシネーション対策
nearme_tech
PRO
1
92
Featured
See All Featured
How to Ace a Technical Interview
jacobian
280
24k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
390
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
340
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Are puppies a ranking factor?
jonoalderson
2
4k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
66k
Become a Pro
speakerdeck
PRO
31
6.3k
Deep Space Network (abreviated)
tonyrice
0
340
New Earth Scene 8
popppiees
4
2.6k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
250
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Transcript
0 実践で使えるtorchのテンソル演算 2025-12-26 第137回NearMe技術勉強会 Takuma Kakinoue
1 テンソル演算を習得するメリット • 機械学習関連では必須スキル • 業務アプリ開発においても,特定のシーンにおいて有効活⽤できるかも
2 テンソル演算を習得するときのポイント • ⼊⼒のshapeと出⼒のshapeを把握する ◦ mvであれば,[n, m] x [m] →
[n]など • Notebookなどで適当に遊んでみると感覚的に理解できる ◦ 感覚的に理解すると,数値計算以外の開発においても, 「ここテンソルにしたら効率良くね?」って気づけるようになる • 今回はPyTorchを使うが,Numpyなども8割⽅同じ考えで習得できる
3 ⽬次 • 積 ◦ dot, mv, mm, bmm, matmul
• ⽣成 ◦ zeros, ones, randn, arange • 次元操作および形状変更 ◦ t, transpose, reshape, squeeze, unsqueeze, cat, stack, split • index操作 ◦ gather, masked_select • 集約関数 ◦ sum, mean, max, min, std ※ 他にも色々な関数があるので, Pytorchのdocを是非ご覧ください https://docs.pytorch.org/docs/stable/t orch.html
4 ⽤語の定義 • スカラー ◦ 0次元(単⼀)の値 ex. 1.0 • ベクトル
◦ 1次元のテンソル ex. [1.0, 2.0, 3.0] • ⾏列 ◦ 2次元のテンソル ex. [[1.0, 2.0], [3.0, 4.0]]
5 dot • ベクトルとベクトルの積 ◦ [n] x [n] → []
(スカラー) • 2次元([1, n] x [1, n])にするとエラー
6 mv • ⾏列(matrix)とベクトル(vector)の積 ◦ [n, m] x [m] →
[n]
7 mm • ⾏列(matrix)と⾏列(matrix)の積 ◦ [n, m] x [m, k]
→ [n, k]
8 bmm • テンソルとテンソルの積(mmにバッチの次元が⾜された) ◦ [batch, n, m] x [batch,
m, k] → [batch, n, k]
9 matmul • dot, mv, mm, bmmを⼀般化したAPI ◦ つまり⼊⼒テンソルの次元数によって操作の意味が異なる •
以下の例では,10x10がバッチ次元として解釈され, 各バッチに対する[3, 5] x [5, 2]のmmが計算されている
10 zeros • 要素が全て0のテンソルを⽣成する • zeros_like
11 ones • 要素が全て1のテンソルを⽣成する
12 randn • 標準正規分布に従う乱数を値に持つテンソルを⽣成する
13 arange • ⼊⼒された範囲を値に持つベクトルを⽣成する
14 t • ⾏列の転置 • 3次元以上の テンソルだとエラー 転置してもstride(indexの進み⽅)が変わるだけ。 コピーしたい場合は,contiguousやcloneを⾏う。 ※
torchの転置の具体的な挙動に関して解説してくれているサイトです https://aisinkakura-datascientist.hatenablog.com/entry/2024/06/19/113008
15 transpose • 指定した2つの次元を ⼊れ替える • xが⾏列の場合, transpose(x, 0, 1)は
t(転置)と同じ挙動
16 reshape • 要素数は変えずに, 指定した形状に変形 • -1と指定すると, ⾃動でサイズ数を調整
17 squeeze • サイズが1の次元を削除する • 指定したindexの次元のみ削除することも可能
18 unsqueeze • サイズが1の次元を指定した次元indexに差し込む
19 [実践例] squeeze/unsqueezeの使い所 • batch次元の追加/削除 ◦ 単発データに対する推論を深層学習モデルで⾏うとき, ⼊⼒はsqueezeでバッチ次元を⾜し, 出⼒はunsqueezeでバッチ次元を削除するなど ◦
loss計算時に,バッチ次元をsqueezeで削除 • 集約後の次元削除 ◦ sumやmeanなどをした後に,不要な次元をsqueezeで削除
20 cat • n個のテンソルを指定した次元で結合する ◦ 既存の次元に沿って結合するので次元数は増えない
21 stack • n個のテンソルを指定した次元で結合する ◦ 新しい次元を作って積む ※ catとstackの違いに関して解説してくれているサイトです https://aisinkakura-datascientist.hatenablog.com/entry/2024/05/28/204548
22 split • テンソルを指定した個数に分割する • テストデータを作る際などに使う
23 gather • 指定したindexの要素のみを取り出す • argmaxと組み合わせることで最⼤値を抽出可能 例えば,強化学習の DeepQNetworkにおいて, 最大のQ値を求める箇所で使 いました
24 masked_select • maskテンソルで指定した要素を抽出する 入力テンソルの次元に 依らず, ベクトルで返ってきます
25 集約関数 - sum, mean, max, min, std • 指定した次元で集約する
◦ keepdim=True/Falseで出⼒の形状が変化 x: n次元, dim: [k]の場合, keepdim=Falseなら出力はn-k次元, keepdim=Trueなら出力はn次元
26 [実践例] Multi-Head Attentionの実装解説
27 [実践例] マスク付き集約 • 30以上の要素の平均値を求めるコード
28 [実践例] Softmax分類器 loss=2.5506 重みを更新したら loss=1.6442まで減少!
29 Thank you