post Image
【初心者向け】MacでDockerを使ってTensorFlowを試す(Jupyter Notebook)

概要

機械学習でTensorFlowを使っていみたいなと思い、調べたらDockerを使うと良いとの事だったのでDockerでTensorFlowを使ってみました。実際にやってみるとJupyter Notebookを使うことになったのでそちらに関しても書いておこうと思います

用語の説明

Docker


簡単に仮想環境を作り、動作させられるオープンソース。Paasのようなもの。
注目を浴びる「Dockerコンテナ」、従来の仮想化と何が違うのか?

TensorFlow


TensorFlow(テンソルフロー)とは、Googleの機械学習/ディープラーニング/多層ニューラルネットワークライブラリ。基本的にPythonで書く。
TensorFlowとは

Jupyter Notebook


ノートブックと呼ばれる形式で作成したプログラムを実行し、実行結果を記録しながら、データの分析作業を進めるためのツール。昔はPythonを動かす用の環境でIPython Notebookと呼ばれていたが今はPython以外の言語にも対応していることからJupyter Notebookという名で開発されている。
Jupyter Notebook とは

機械学習のサンプルを動かすまで

1.Dockerのインストールと簡単な操作

1.1. インストール

こちらからStable版をインストール
https://docs.docker.com/docker-for-mac/

1.2. 基本操作


ザックリ説明だとDockerイメージがOS、Dockerコンテナがインスタンスみたいな感じです。(多分)

  • イメージ取得
$ docker pull centos:centos6.6
  • イメージの確認
$ docker images

REPOSITORY                       TAG                 IMAGE ID            CREATED             SIZE
hello-world                      latest              48b5124b2768        6 days ago          1.84 kB
gcr.io/tensorflow/tensorflow     latest              e3f7f02f1c66        3 weeks ago         981 MB
centos                           latest              67591570dd29        5 weeks ago         192 MB
ubuntu                           14.04               3f755ca42730        5 weeks ago         188 MB
centos                           centos6.6           d03626170061        4 months ago        203 MB
b.gcr.io/tensorflow/tensorflow   latest              7e0be98eae06        11 months ago       670 MB
  • コンテナ作成
$ docker run -it centos:centos6.6 /bin/bash

シェルが起動する
[root@95ba3433a747 /]#
  • コンテナの確認
$ docker ps -a

CONTAINER ID        IMAGE                          COMMAND             CREATED             STATUS                         PORTS                              NAMES
a96ddad31ab3        gcr.io/tensorflow/tensorflow   "/bin/bash"         3 hours ago         Exited (0) About an hour ago                                      tensorflow1
96b94bf9d8f1        gcr.io/tensorflow/tensorflow   "/run_jupyter.sh"   6 hours ago         Up About an hour               6006/tcp, 0.0.0.0:8888->8888/tcp   compassionate_goldstine
95ba3433a747        centos                         "/bin/bash"         7 hours ago         Exited (127) 2 seconds ago                                        awesome_ardinghelli
952092d80709        ubuntu:14.04                   "bash"              7 hours ago         Exited (0) 6 hours ago                                            romantic_northcutt
660cb6cd75bf        hello-world                    "/hello"            8 hours ago         Exited (0) 7 hours ago                                            kind_elion
  • コンテナのスタート
$ docker start 0f60c2705466

STATUSがExitedになっているものがUpになる
  • コンテナの起動
$ docker attach 0f60c2705466

シェルが起動する
[root@95ba3433a747 /]#

参考:dockerコマンド一覧Dockerイメージの入手

2.DockerでTensorFlowを使う

DockerにTensorFlowの実行環境が整っているのでそれを使う

$ docker run -it -p 8888:8888 gcr.io/tensorflow/tensorflow

するとJupyter Notebookが立ち上がる
http://localhost:8888/

参考:TensorFlowをMac & Dockerで使ってみたよ

3.Jupyter NotebookでHellow Worldを試す

3.1. ファイルの作成

スクリーンショット 2017-01-20 17.55.13.png
NewからPython2を選択

3.2. サンプルプログラムの入力

スクリーンショット 2017-01-20 17.56.29.png
エディタの中に入力

スクリーンショット 2017-01-20 17.57.20.png
shift+Enterで実行

その他
黒い画面が好きな人はターミナルでも動かせます。
スクリーンショット 2017-01-20 17.58.47.png
スクリーンショット 2017-01-20 17.59.00.png

参考:python/tensorflow初心者が、jupyter+tensorflow環境を構築してHello Worldする

感想

本当は簡単な機械学習を実際に試したかったのですが、思えばPython書いた事ないし、機械学習の知識もないし、、色々みたけどサクッとは試せなさそうだったので諦めました。機械学習は思ったより難しいという事がわかった1日でした。


『 機械学習 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。