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
TensorFlowの基礎
Search
Norihiro Shimoda
March 20, 2017
Technology
2
4.4k
TensorFlowの基礎
TensorFlowの概要と技術的な基本だけをまとめました
Norihiro Shimoda
March 20, 2017
Tweet
Share
More Decks by Norihiro Shimoda
See All by Norihiro Shimoda
ぼくのかんがえたさいきょうの機械学習プロジェクト進行法(PoC/デモ編)
rindai87
10
19k
FindYourCandyでの転移学習の話
rindai87
4
15k
Google I/O 報告会(ML)担当
rindai87
3
9.6k
最近のTensorFlowの話
rindai87
1
1.5k
TensorFlowとGCPの簡単な紹介
rindai87
3
4.6k
TFv1.0の概要+HighLevelAPI/Keras
rindai87
4
2.1k
How should engineers survive during AI era
rindai87
5
27k
Let's stand up against "Do Artificial Intelligence" with proper knowledge
rindai87
6
1.9k
Talk about ML and DL for happy engineer's life
rindai87
40
15k
Other Decks in Technology
See All in Technology
関係性が駆動するアジャイル──GPTに人格を与えたら、対話を通してふりかえりを習慣化できた話
mhlyc
0
130
Access-what? why and how, A11Y for All - Nordic.js 2025
gdomiciano
1
110
GA technologiesでのAI-Readyの取り組み@DataOps Night
yuto16
0
260
神回のメカニズムと再現方法/Mechanisms and Playbook for Kamikai scrumat2025
moriyuya
4
510
DataOpsNight#8_Terragruntを用いたスケーラブルなSnowflakeインフラ管理
roki18d
1
330
AI ReadyなData PlatformとしてのAutonomous Databaseアップデート
oracle4engineer
PRO
0
160
【新卒研修資料】LLM・生成AI研修 / Large Language Model・Generative AI
brainpadpr
23
16k
生成AIで「お客様の声」を ストーリーに変える 新潮流「Generative ETL」
ishikawa_satoru
1
300
GC25 Recap+: Advancing Go Garbage Collection with Green Tea
logica0419
1
400
「技術負債にならない・間違えない」 権限管理の設計と実装
naro143
36
11k
Why Governance Matters: The Key to Reducing Risk Without Slowing Down
sarahjwells
0
100
AIが書いたコードをAIが検証する!自律的なモバイルアプリ開発の実現
henteko
1
330
Featured
See All Featured
Optimizing for Happiness
mojombo
379
70k
Scaling GitHub
holman
463
140k
Into the Great Unknown - MozCon
thekraken
40
2.1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
RailsConf 2023
tenderlove
30
1.2k
Rails Girls Zürich Keynote
gr2m
95
14k
Visualization
eitanlees
148
16k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Agile that works and the tools we love
rasmusluckow
331
21k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
2.6k
A designer walks into a library…
pauljervisheath
209
24k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Transcript
TensorFlowの基礎
⾃自⼰己紹介 • 下⽥田倫倫⼤大(@rindai87) • TensorFlow User Group(TFUG)主催者 • 最近GDE(Google Developer
Expert)の ML Expertになりました
TensorFlowの概要 TensorFlowとはそもそも 何かについて説明します
TensorFlowとは? • Googleがオープンソース化した機械学習 のライブラリ • 2015年年11⽉月に公開 • Google社内でも実際に使われている(と ⾔言われている)
TensorFlowのモデル 1. 学習モデルをグラフと して定義する 2. 学習を実際にどう⾏行行う かも定義する – 学習の評価⽅方法 –
最適化の⽅方法 – CPU or GPU – スタンドアロン or 分散 3. 定義に従って計算処理理 をデバイス上で実⾏行行さ せる
TensorFlowの歴史
TensorBoardなどのツール
その他のTensorFlow情報 1. Google内でのTensorFlow 2. TensorFlowの事例例 3. TensorFlowコミュニティ 4. 企業でのTensorFlow https://goo.gl/kiU4qd
TensorFlowの基本 TensorFlowを利利⽤用する上での 基本について説明します
TensorFlowにありがちな勘違い TensorFlowは深層学習に 特化したツールである 10
TensorFlowの超基本 OP Input Output OP OP Input グラフを意識識しながら処理理を記述して 最後にどびゃっと実⾏行行する 11
TensorFlowのパラダイム • はじめにテンソルの演算グラフを作る • グラフの実⾏行行単位をセッションという • 定数、変数、プレースホルダーを宣⾔言できる • 作ったグラフはデバイス(CPUやGPU)に展 開して実⾏行行する
• 分散処理理も可能である 12
TensorFlowのパラダイム • はじめにテンソルの演算グラフを作る • グラフの実⾏行行単位をセッションという • 定数、変数、プレースホルダーを宣⾔言できる • 作ったグラフはデバイス(CPUやGPU)に展 開して実⾏行行する
• 分散処理理も可能である ということを、Pythonをインターフェースとして ⾏行行っているフレームワーク 機械学習に関する便便利利なヘルパー関数がいっぱい あるのがポイント 13
ここだけ押さえればTensorFlowが 分かる簡単な例例 • 例例1:⾜足し算 – 演算(operation) • 例例2:カウントアップ – 変数(Variable)
• 例例3:⼊入⼒力力値をいろいろと変える – プレースホルダー(Placeholder) • 例例4:セッションを使う – セッション(Session) • 例例5:⾼高ランクなテンソルの演算 – テンソル(Tensor) 14
ここだけ押さえればTensorFlowが 分かる簡単な例例 • 例例1:⾜足し算 – 演算(operation) • 例例2:カウントアップ – 変数(Variable)
• 例例3:⼊入⼒力力値をいろいろと変える – プレースホルダー(Placeholder) • 例例4:セッションを使う – セッション(Session) • 例例5:⾼高ランクなテンソルの演算 – テンソル(Tensor) 15
1+2 = 3の⾜足し算 16
演算(Operation) x(定数) y(定数) + 演算がグラフのノードとなる(この場合は加算の演算) tf.add() tf.constant() tf.constant() 17
演算(Operation) x(定数) y(定数) + 演算がグラフのノードとなる(この場合は加算の演算) tf.add() tf.constant() tf.constant() 1 2
3 18
ここだけ押さえればTensorFlowが 分かる簡単な例例 • 例例1:⾜足し算 – 演算(operation) • 例例2:カウントアップ – 変数(Variable)
• 例例3:⼊入⼒力力値をいろいろと変える – プレースホルダー(Placeholder) • 例例4:セッションを使う – セッション(Session) • 例例5:⾼高ランクなテンソルの演算 – テンソル(Tensor) 19
カウントアップ 20
変数(Variable) inc(定数) + cnt(変数) 通常のプログラミング⾔言語の変数などと同じように 代⼊入可能な箱として変数がある tf.assign() tf.Variable() tf.constant() tf.add()
1 0 21
変数(Variable) inc(定数) + cnt(変数) tf.assign() tf.Variable() tf.constant() tf.add() 1 0
1 通常のプログラミング⾔言語の変数などと同じように 代⼊入可能な箱として変数がある 22
変数(Variable) inc(定数) + cnt(変数) tf.assign() tf.Variable() tf.constant() tf.add() 1 1
2 通常のプログラミング⾔言語の変数などと同じように 代⼊入可能な箱として変数がある 23
変数(Variable) inc(定数) + cnt(変数) tf.assign() tf.Variable() tf.constant() tf.add() 1 2
3 通常のプログラミング⾔言語の変数などと同じように 代⼊入可能な箱として変数がある 24
ここだけ押さえればTensorFlowが 分かる簡単な例例 • 例例1:⾜足し算 – 演算(operation) • 例例2:カウントアップ – 変数(Variable)
• 例例3:⼊入⼒力力値をいろいろと変える – プレースホルダー(Placeholder) • 例例4:セッションを使う – セッション(Session) • 例例5:⾼高ランクなテンソルの演算 – テンソル(Tensor) 25
いろんな値を⼊入⼒力力する 26
プレースホルダー(Placeholder) y (プレースホルダ) x(定数) + tf.constant() tf.add() tf.placeholder() あらかじめ箱を作っておいて 実⾏行行時に好きな値を⼊入⼒力力させる
1 27
プレースホルダー(Placeholder) y (プレースホルダ) x(定数) + tf.constant() tf.add() tf.placeholder() feed_̲dict 1
1 2 あらかじめ箱を作っておいて 実⾏行行時に好きな値を⼊入⼒力力させる 28
プレースホルダー(Placeholder) y (プレースホルダ) x(定数) + tf.constant() tf.add() tf.placeholder() feed_̲dict 3
1 4 あらかじめ箱を作っておいて 実⾏行行時に好きな値を⼊入⼒力力させる 29
ここだけ押さえればTensorFlowが 分かる簡単な例例 • 例例1:⾜足し算 – 演算(operation) • 例例2:カウントアップ – 変数(Variable)
• 例例3:⼊入⼒力力値をいろいろと変える – プレースホルダー(Placeholder) • 例例4:セッションを使う – セッション(Session) • 例例5:⾼高ランクなテンソルの演算 – テンソル(Tensor) 30
実⾏行行環境を分ける 31
セッション 1(定数) + cnt(変数) tf.assign() tf.Variable() tf.constant() tf.add() 1(定数) +
cnt(変数) tf.assign() tf.Variable() tf.constant() tf.add() セッションにより グラフの実⾏行行環境が まるっと独⽴立立する 名前空間のようなもの tf.Session() tf.Session() 32
ここだけ押さえればTensorFlowが 分かる簡単な例例 • 例例1:⾜足し算 – 演算(operation) • 例例2:カウントアップ – 変数(Variable)
• 例例3:⼊入⼒力力値をいろいろと変える – プレースホルダー(Placeholder) • 例例4:セッションを使う – セッション(Session) • 例例5:⾼高ランクなテンソルの演算 – テンソル(Tensor) 33
テンソル(Tensor) のランクを⼤大きくする ここまでの話を 多次元の値に拡張 34
テンソル ランク どうなる 0 スカラ(要はただの数値) 1 ベクトル(配列列) 2 ⾏行行列列(2次元配列列) 3
3次元配列列(⾏行行列列に厚みがある感じ) n n次元配列列(イメージできない世界) 要は取り扱うデータ構造のことだと思ってください 今までの話はここ 35
多次元版の⾜足し算 36
⼊入⼒力力となるテンソルが違うだけ x(定数) y(定数) + 演算がグラフのノードとなる(この場合は加算の演算) tf.add() tf.constant() tf.constant() [[1,2], [1,2]]
[[3,4], [3,4]] [[4,6], [4,6]] 37
この先は? • ここまででTensorFlowの基礎中の基礎は 完了了となります • 残念念がら、機械学習や深層学習について は⾝身についたわけではありません • TensorFlow本家のチュートリアルなどで TensorFlow⾃自体、また深層学習の知識識を
深める必要があります
Thank You !! 39