SlideShare une entreprise Scribd logo
1  sur  18
MacでTensorFlow on Dockerを
使って見る
AITCオープンラボ第3回機械学習勉強会資料
(AITC TensorFlow勉強会資料より)
2016年6月27日 吉田
 設立主旨
TensorFlowを中心に、ディープラーニング分野をメンバーが自発的
に学びつ つ、理解が難しい点や困ったことをお互いに持ち寄って相
談し、協力しながら解決する「場」を、定期的に設けること
 目標
メンバー各自が、ディープラーニング分野の技術リーダーとなり、
社内外において後続するエンジニアたちにこの先端技術をさらに広
めていくこと、そのために必要なノウハウを共有していくこと
 活動
グループごとにその日の目標(MNIST線形回帰の完全理解等)を決
めて、助け合いながら作業。そこで得た「課題と解決」ノウハウを、
最後にグループ発表して共有する
TensorFlow勉強会について
6月24日発足
 Dockerとかいうものを使ってみたかった
 インストールや一時保存/再起動が簡単だろう
 自分のMacは他の用途にも色々使っているので、
TensorFlow用の設定(があれば)を独立にしてお
きたい
なぜDockerか?
 Dockerが、Mac OSX上で直接動作するようになった
のはこの3月(private β)からで、まだ頼れる情報
が少ない。
 安定して使われているDockerはVirtualBoxで動作。
 4つのものを新しく知る必要がある:
 VirtualBox
 Docker
 pythonとJupyter
 TensorFlow
でも意外に面倒だった
今月Public βになりました
Mac上のDockerの構成
 自分がどの環境で操作しているのか意識が必要
 Mac OSX
 VirtulaBox上のLinux VM
 Dockerコンテナ
 それぞれでファイルシステムが違うし、PATHも違
う
戸惑うこと
 以下の説明にしたがってインストール:
「Mac OSX で Docker 入門 (Docker Toolbox版)」
http://blog.tokoyax.com/entry/docker/tutorial-osx
 説明の通りhello-worldコンテナを動かす
docker run hello-world
 次にnginxを動かしてみる
docker run -d -P --name web nginx
 動いているか確かめる
docker ps -a
Dockerのインストール
 Docker Quickstart Terminal で起動したターミナルか
らだとdockerコマンドが使えるが、自分で起動し
たターミナルからはdockerコマンドが使えない
 docker ps –aで見るとhello-worldが残っている
 nginxが動いているのにブラウザから
localhost:8080
ではアクセスできない
ここでちょっとハマったこと
 dockerコマンドを使うにはdocker deamonと接続す
る環境設定が必要
eval $(docker-machine env)
 不要なコンテナの削除は
docker rm xxx
xxxはdocker ps –aでわかるIDかname
 IPアドレスは docker-machine ip
ポート番号は docker port xxx
でわかる
解決策
 defaultというVMが作られるが、割り当てている
CPUの数やメモリサイズを変更した
 コア2個しかないのに4個になっていたので2個
に変更
「プロセッサー(CPU)のコア数を変更する方法」
http://pc-karuma.net/virtualbox-processors-settings/
 メモリは1Gだったので4Gに変更
「仮想マシンのメモリ容量を変更(増やす)」
http://pc-karuma.net/virtualbox-change-memory-size/
default VMの設定変更
 Dockerだからインストール不要!ただ起動すれば
OK
docker run –it gcr.io/tensorflow/tensorflow
でいけるはず…
 と思ったけど、ここから5つの問題点に遭遇
1. docker runコマンドが戻ってこない
2. コンテナ名が変な名前で煩わしい
3. pythonを起動しても TensorFlow がimportできない
4. ブラウザからアクセスできない
5. Mac OS上のファイルが使えない
TensorFlowの起動
 tensorflowサイトの説明では、起動後に$ではなく
て#のプロンプトが出て、pythonを起動して試す
ことができるはずなのに、いつまでたっても#が
でてこない。
 ターミナルが一つ占有されたままになるので、
Cntl-Z bgとしなければならない
 おそらく以前はシェルが動くコンテナだったのだ
ろうが、今はJupyterが動いているのだった
 -it がターミナルを占有するオプションなので使え
ない!
 バックグラウンド動作にするには -d
docker runコマンドが戻らない
 docker ps でコンテナ名はわかるけど、変な2単語
の組み合わせなので面倒
 コンテナ名は明示的に指定しよう
docker run --name tensorflow
(--はハイフン2つ)
コンテナ名が煩わしい
 ターミナルでpythonを起動して動作確認しようとす
ると
tensorflowが無くてimportできないと言われる…
 環境が違う! Mac OSX上にはtensorflowは無い
 tensorflowコンテナ環境に入らないといけない:
docker exec -it tensorflow bash
(コンテナ名がtensorflowである場合)
 終わったらexit()とexitでMac OSXに戻る
 でも、せっかくだからJupyterを使おう!
tensorflowをimportできない
 docker-machine ipでIPアドレスはわかるけど…
 ポートフォワードをしていないからだ!
 nginxと同様に-Pでもいいけど、それだと適当な
ポート番号にされてしまう。
 -pを使うと、ポート番号を指定できる:
-p 8888:8888 –p 6006:6006
8888はJupyter notebook、6006はTensorBoardのポート
Jupyterにアクセスできない
 うっかりVM廃棄したらファイルが無くなってしま
う
 Jupyterじゃなくて使い慣れたエディタを使いたい
等
 ポイント:
1. dockerコンテナはdocker VMのファイルシステムを
マウントできる
2. docker VMは、Mac OSの/Usersを共有している
3. Jupyterのホームディレクトリは/notebooks
 以上から、例えば/Users/home/pysrcを共有するに
は
コンテナとMac OSとのファイル共
有
 docker run –it … で起動してしまった人は
 ターミナルを開く
 eval $(docker-machine env)
 docker ps –a で./run_Jupyter.shが動いているコンテナの名前xxxxを調べる
 docker stop xxxxで止める
 docker rm xxxxで削除
 共有フォルダーを/Usersの下に作っておく(例:/Users/home/pysrc)
 以下で再起動する:
docker run -d -p 8888:8888 -p 6006:6006
–v /Users/home/pysrc:/notebooks/pysrc --name tensorflow
gcr.io/tensorflow/tensorflow
 IPアドレスをdocker-machine ipで確認(192.168.99.100がデフォルト)
 ブラウザで 192.168.99.100:8888でJupyter Notebookにアクセス
ということで
 tensorflowコンテナのJupyterの
 1_hello_tensorflow
 2_getting_started
 3_mnist_from_scratch
 tensorflow.orgのTUTORIALS
 MNIST For ML Beginners
 「Jupyter事始め」 Qiita Blog
お勧めのチュートリアル

Contenu connexe

Tendances

Unityでlinqを使おう
Unityでlinqを使おうUnityでlinqを使おう
Unityでlinqを使おうYuuki Takada
 
TensorFlowで学ぶDQN
TensorFlowで学ぶDQNTensorFlowで学ぶDQN
TensorFlowで学ぶDQNEtsuji Nakai
 
Basic deep learning_framework
Basic deep learning_frameworkBasic deep learning_framework
Basic deep learning_frameworkKazuhiroSato8
 
TensorFlowによるCNNアーキテクチャ構築
TensorFlowによるCNNアーキテクチャ構築TensorFlowによるCNNアーキテクチャ構築
TensorFlowによるCNNアーキテクチャ構築Hirokatsu Kataoka
 
Mxnetによるデープラーニングでセミの抜け殻を識別する
Mxnetによるデープラーニングでセミの抜け殻を識別するMxnetによるデープラーニングでセミの抜け殻を識別する
Mxnetによるデープラーニングでセミの抜け殻を識別するdokechin
 
TensorFlowで逆強化学習
TensorFlowで逆強化学習TensorFlowで逆強化学習
TensorFlowで逆強化学習Mitsuhisa Ohta
 
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの 〜並列編〜
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの 〜並列編〜短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの 〜並列編〜
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの 〜並列編〜Hiroshi Watanabe
 
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなものHiroshi Watanabe
 
開発者からみたTensor flow
開発者からみたTensor flow開発者からみたTensor flow
開発者からみたTensor flowHideo Kinami
 
Thesis introduction audo_signal_processing
Thesis introduction audo_signal_processingThesis introduction audo_signal_processing
Thesis introduction audo_signal_processingMakotoShirasu
 

Tendances (10)

Unityでlinqを使おう
Unityでlinqを使おうUnityでlinqを使おう
Unityでlinqを使おう
 
TensorFlowで学ぶDQN
TensorFlowで学ぶDQNTensorFlowで学ぶDQN
TensorFlowで学ぶDQN
 
Basic deep learning_framework
Basic deep learning_frameworkBasic deep learning_framework
Basic deep learning_framework
 
TensorFlowによるCNNアーキテクチャ構築
TensorFlowによるCNNアーキテクチャ構築TensorFlowによるCNNアーキテクチャ構築
TensorFlowによるCNNアーキテクチャ構築
 
Mxnetによるデープラーニングでセミの抜け殻を識別する
Mxnetによるデープラーニングでセミの抜け殻を識別するMxnetによるデープラーニングでセミの抜け殻を識別する
Mxnetによるデープラーニングでセミの抜け殻を識別する
 
TensorFlowで逆強化学習
TensorFlowで逆強化学習TensorFlowで逆強化学習
TensorFlowで逆強化学習
 
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの 〜並列編〜
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの 〜並列編〜短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの 〜並列編〜
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの 〜並列編〜
 
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの
 
開発者からみたTensor flow
開発者からみたTensor flow開発者からみたTensor flow
開発者からみたTensor flow
 
Thesis introduction audo_signal_processing
Thesis introduction audo_signal_processingThesis introduction audo_signal_processing
Thesis introduction audo_signal_processing
 

En vedette

TensorFlow を使った 機械学習ことはじめ (GDG京都 機械学習勉強会)
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)
TensorFlow を使った 機械学習ことはじめ (GDG京都 機械学習勉強会)徹 上野山
 
TensorFlowで会話AIを作ってみた。
TensorFlowで会話AIを作ってみた。TensorFlowで会話AIを作ってみた。
TensorFlowで会話AIを作ってみた。tak9029
 
TensorFlowとは? ディープラーニング (深層学習) とは?
TensorFlowとは? ディープラーニング (深層学習) とは?TensorFlowとは? ディープラーニング (深層学習) とは?
TensorFlowとは? ディープラーニング (深層学習) とは?KSK Analytics Inc.
 
chefからitamaeに乗り換えた話
chefからitamaeに乗り換えた話chefからitamaeに乗り換えた話
chefからitamaeに乗り換えた話Yoshiki Kobayashi
 
長野市 駐輪所ナビ
長野市 駐輪所ナビ長野市 駐輪所ナビ
長野市 駐輪所ナビNakazawa Yuichi
 
さくらのインフラコード
さくらのインフラコードさくらのインフラコード
さくらのインフラコードYukihiko SAWANOBORI
 
[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話
[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話
[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話Yukihiko SAWANOBORI
 
Vagrant & Dockerによるイマドキの開発環境構築
Vagrant & Dockerによるイマドキの開発環境構築Vagrant & Dockerによるイマドキの開発環境構築
Vagrant & Dockerによるイマドキの開発環境構築Nakazawa Yuichi
 
バイオインフォマティクスで実験ノートを取ろう
バイオインフォマティクスで実験ノートを取ろうバイオインフォマティクスで実験ノートを取ろう
バイオインフォマティクスで実験ノートを取ろうMasahiro Kasahara
 
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春
キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春Kondo Hitoshi
 

En vedette (11)

TensorFlow を使った 機械学習ことはじめ (GDG京都 機械学習勉強会)
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)
TensorFlow を使った 機械学習ことはじめ (GDG京都 機械学習勉強会)
 
TensorFlowで会話AIを作ってみた。
TensorFlowで会話AIを作ってみた。TensorFlowで会話AIを作ってみた。
TensorFlowで会話AIを作ってみた。
 
TensorFlowとは? ディープラーニング (深層学習) とは?
TensorFlowとは? ディープラーニング (深層学習) とは?TensorFlowとは? ディープラーニング (深層学習) とは?
TensorFlowとは? ディープラーニング (深層学習) とは?
 
chefからitamaeに乗り換えた話
chefからitamaeに乗り換えた話chefからitamaeに乗り換えた話
chefからitamaeに乗り換えた話
 
CentOSでつくる神Plesk
CentOSでつくる神PleskCentOSでつくる神Plesk
CentOSでつくる神Plesk
 
長野市 駐輪所ナビ
長野市 駐輪所ナビ長野市 駐輪所ナビ
長野市 駐輪所ナビ
 
さくらのインフラコード
さくらのインフラコードさくらのインフラコード
さくらのインフラコード
 
[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話
[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話
[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話
 
Vagrant & Dockerによるイマドキの開発環境構築
Vagrant & Dockerによるイマドキの開発環境構築Vagrant & Dockerによるイマドキの開発環境構築
Vagrant & Dockerによるイマドキの開発環境構築
 
バイオインフォマティクスで実験ノートを取ろう
バイオインフォマティクスで実験ノートを取ろうバイオインフォマティクスで実験ノートを取ろう
バイオインフォマティクスで実験ノートを取ろう
 
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春
キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春
 

Similaire à MacでTensorFlow on Dockerを 使って見る

TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎Etsuji Nakai
 
eXtremeProgramming入門
eXtremeProgramming入門eXtremeProgramming入門
eXtremeProgramming入門You&I
 
TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?Mr. Vengineer
 
TOPPERS/SSPを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ @ソフトウェア講演会名古屋
TOPPERS/SSPを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ @ソフトウェア講演会名古屋TOPPERS/SSPを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ @ソフトウェア講演会名古屋
TOPPERS/SSPを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ @ソフトウェア講演会名古屋Kazuhiro Takahashi
 
OSS開発勉強会-01
OSS開発勉強会-01OSS開発勉強会-01
OSS開発勉強会-01Kohei KaiGai
 
tfug-kagoshima
tfug-kagoshimatfug-kagoshima
tfug-kagoshimatak9029
 
DLL#3 Microsoft Community & AI Update
DLL#3 Microsoft Community & AI UpdateDLL#3 Microsoft Community & AI Update
DLL#3 Microsoft Community & AI UpdateHirono Jumpei
 
.net micro framework for toppers
.net micro framework for toppers.net micro framework for toppers
.net micro framework for toppersKiyoshi Ogawa
 
Machine learning 15min TensorFlow hub
Machine learning 15min TensorFlow hubMachine learning 15min TensorFlow hub
Machine learning 15min TensorFlow hubJunya Kamura
 
dl-with-python01_handout
dl-with-python01_handoutdl-with-python01_handout
dl-with-python01_handoutShin Asakawa
 
私の熱いアジャイル活動、アジャカツ!始まります フフッヒ
私の熱いアジャイル活動、アジャカツ!始まります フフッヒ私の熱いアジャイル活動、アジャカツ!始まります フフッヒ
私の熱いアジャイル活動、アジャカツ!始まります フフッヒYou&I
 
TensorFlow XLAの可能性
TensorFlow XLAの可能性 TensorFlow XLAの可能性
TensorFlow XLAの可能性 Mr. Vengineer
 
Drupal on ibm_20191207
Drupal on ibm_20191207Drupal on ibm_20191207
Drupal on ibm_20191207Yasushi Osonoi
 
#経済学のための実践的データ分析 12. 機械学習とAIな経済学と最終レポート
#経済学のための実践的データ分析 12. 機械学習とAIな経済学と最終レポート#経済学のための実践的データ分析 12. 機械学習とAIな経済学と最終レポート
#経済学のための実践的データ分析 12. 機械学習とAIな経済学と最終レポートYasushi Hara
 
デブサミ2013LT大会 Japan SenchaUG
デブサミ2013LT大会 Japan SenchaUGデブサミ2013LT大会 Japan SenchaUG
デブサミ2013LT大会 Japan SenchaUGdsuke Takaoka
 
Dll commuinity and academy update 201803 v2
Dll commuinity and academy update 201803 v2Dll commuinity and academy update 201803 v2
Dll commuinity and academy update 201803 v2Hirono Jumpei
 
ワークショップ「ゲーム開発チームにおけるパトレット」
ワークショップ「ゲーム開発チームにおけるパトレット」ワークショップ「ゲーム開発チームにおけるパトレット」
ワークショップ「ゲーム開発チームにおけるパトレット」Masaru Nagaku
 

Similaire à MacでTensorFlow on Dockerを 使って見る (20)

TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
 
eXtremeProgramming入門
eXtremeProgramming入門eXtremeProgramming入門
eXtremeProgramming入門
 
TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?
 
NTT Tech Conference #2 - closing -
NTT Tech Conference #2 - closing -NTT Tech Conference #2 - closing -
NTT Tech Conference #2 - closing -
 
TOPPERS/SSPを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ @ソフトウェア講演会名古屋
TOPPERS/SSPを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ @ソフトウェア講演会名古屋TOPPERS/SSPを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ @ソフトウェア講演会名古屋
TOPPERS/SSPを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ @ソフトウェア講演会名古屋
 
OSS開発勉強会-01
OSS開発勉強会-01OSS開発勉強会-01
OSS開発勉強会-01
 
tfug-kagoshima
tfug-kagoshimatfug-kagoshima
tfug-kagoshima
 
DLL#3 Microsoft Community & AI Update
DLL#3 Microsoft Community & AI UpdateDLL#3 Microsoft Community & AI Update
DLL#3 Microsoft Community & AI Update
 
.net micro framework for toppers
.net micro framework for toppers.net micro framework for toppers
.net micro framework for toppers
 
Machine learning 15min TensorFlow hub
Machine learning 15min TensorFlow hubMachine learning 15min TensorFlow hub
Machine learning 15min TensorFlow hub
 
dl-with-python01_handout
dl-with-python01_handoutdl-with-python01_handout
dl-with-python01_handout
 
Scrum"再"入門
Scrum"再"入門Scrum"再"入門
Scrum"再"入門
 
私の熱いアジャイル活動、アジャカツ!始まります フフッヒ
私の熱いアジャイル活動、アジャカツ!始まります フフッヒ私の熱いアジャイル活動、アジャカツ!始まります フフッヒ
私の熱いアジャイル活動、アジャカツ!始まります フフッヒ
 
TensorFlow XLAの可能性
TensorFlow XLAの可能性 TensorFlow XLAの可能性
TensorFlow XLAの可能性
 
Drupal on ibm_20191207
Drupal on ibm_20191207Drupal on ibm_20191207
Drupal on ibm_20191207
 
#経済学のための実践的データ分析 12. 機械学習とAIな経済学と最終レポート
#経済学のための実践的データ分析 12. 機械学習とAIな経済学と最終レポート#経済学のための実践的データ分析 12. 機械学習とAIな経済学と最終レポート
#経済学のための実践的データ分析 12. 機械学習とAIな経済学と最終レポート
 
デブサミ2013LT大会 Japan SenchaUG
デブサミ2013LT大会 Japan SenchaUGデブサミ2013LT大会 Japan SenchaUG
デブサミ2013LT大会 Japan SenchaUG
 
20050809
2005080920050809
20050809
 
Dll commuinity and academy update 201803 v2
Dll commuinity and academy update 201803 v2Dll commuinity and academy update 201803 v2
Dll commuinity and academy update 201803 v2
 
ワークショップ「ゲーム開発チームにおけるパトレット」
ワークショップ「ゲーム開発チームにおけるパトレット」ワークショップ「ゲーム開発チームにおけるパトレット」
ワークショップ「ゲーム開発チームにおけるパトレット」
 

MacでTensorFlow on Dockerを 使って見る