機械学習/MacでTensorFlowを使う のバックアップ(No.5)


はじめに

ここでは、Googleが公開しているオープン・ソース・ソフトウェア (OSS) のTensorFlowをMac (OS X) にインストールして使います。

環境

  • OS X Yosemite 10.10.5
  • Python 3.5.1
  • TensorFlow 0.7

Python3のインストール(アップグレード)

まず、Python3を最新版にアップグレードします。 下記のサイトからMac OS X 64-bit/32-bit installerをダウンロードして、インストール。

TensorFlowのインストール

基本的にはここに書いてある通りなんですが、なぜかsixのeasy_installが先にできなかったので、順序を逆にしました。

$ sudo easy_install pip
$ sudo pip3 install --upgrade pip

Virtualenvのインストール

$ sudo pip3 install --upgrade virtualenv
$ virtualenv --system-site-packages -p python3 /Users/Shared/tools/tensorflow
$ source /Users/Shared/tools/tensorflow/bin/activate
(tensorflow)$ sudo pip3 install --upgrade tensorflow
(tensorflow)$ deactivate

私の研究室では、共有フォルダーのtoolsというフォルダー (/Users/Shared/tools/) に、みんなで使うツールをインストールしています。 /Users/Shared/tools/tensorflow を ~/tensorflow などTensorFlowをインストールしたいフォルダーに変更してください。

TensorFlowを動かす

TesorFlowのサイトに掲載されているHello Worldを動かします。

$ source /Users/Shared/tools/tensorflow/bin/activate
(tensorflow) $ python3
Python 3.5.1 (v3.5.1:37a07cee5969, Dec  5 2015, 21:12:44) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

irisで線形回帰

まずは、おなじみのirisデータセットで線形回帰をやってみましょう。 irisデータセットは、4つの説明変数(花びらの長さ、幅、がく片の長さ、幅)とカテゴリー (setosa, versicolor, virginica) からなる分類問題用のデータセットですが、4つの説明変数を3つの説明変数と1つの目標変数にして、回帰問題用のデータセットにします。

UCI Machine Learning Repositoryからファイルをダウンロードします。 中身はこんな感じです。

>>> import tensorflow as tf
>>> node1 = tf.constant(3.0, dtype=tf.float32)
>>> node2 = tf.constant(4.0) 
>>> sess = tf.Session()
2017-06-20 08:28:06.121472: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-20 08:28:06.121492: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
2017-06-20 08:28:06.121498: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-20 08:28:06.121502: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
>>> print(sess.run([node1, node2]))
[3.0, 4.0]
>>> node3 = tf.add(node1, node2)
>>> print(sess.run(node3))
7.0
>>> quit()
(tensorflow) $ deactivate

ソースコードはこんな感じです。

以下のページを参考にしました。

$ head -5 iris.data
5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
4.6,3.1,1.5,0.2,Iris-setosa
5.0,3.6,1.4,0.2,Iris-setosa

実行すると、次のようになります。

$ head -50 iris.data | awk -F, '{printf("%s,%s,%s,%s,1,0,0\n",$1,$2,$3,$4);}' > iris.csv
$ head -100 iris.data | tail -50 | awk -F, '{printf("%s,%s,%s,%s,0,1,0\n",$1,$2,$3,$4);}' >> iris.csv
$ head -150 iris.data | tail -50 | awk -F, '{printf("%s,%s,%s,%s,0,0,1\n",$1,$2,$3,$4);}' >> iris.csv
トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS