LoginSignup
1
4

More than 5 years have passed since last update.

仮想環境にPythonとTensorFlowを入れる(忘備録)

Last updated at Posted at 2018-11-14

タイトル通りのことをやったので,メモとして書いた記事です.
ただの忘備録なので,記事の新規性についての突っ込みは勘弁してください.

本記事は以下に該当する人向けです

  • AI? 機械学習? 楽しそう!
  • Python? 知らねえ!
  • TensorFlow? 知らねえ!
  • Virtual Environment? 強そう!!!!!!!!!

このぐらいの知識量の方向けの記事です.
「なんだか知らんけど動く!なんか楽しい!」を意識した記事です.
このあたりを触った経験がある方は,本記事から得られることがないのでブラウザバック推奨です.

この環境からスタートです

本記事はこんな環境からスタートします.

  • Windowsが入っている
  • インターネットにアクセスできる
  • SSDもしくはHDDに100GBぐらい空きがある
  • 7zipとかの大容量ファイルを展開できるソフトがある

こんなことします

これからやることをざっくりと説明します.

  • Virtual Boxのインストール
  • isoファイルを入手
  • 仮想Ubuntuの構築
  • Pythonのインストール
  • pipのインストール
  • TensorFlowのインストール
  • Sublime Textのインストール
  • TensorFlowで遊んでみる(テスト)

Pythonは3系を入れます.
2018年11月現在で,あえてPython2系を入れる必要があるケースは稀だと思いますし...

仮想環境ってなに?

テキトーに説明すると,「OSの中にOSを用意する」ことです.
もともとあったOSからメモリとHDDの容量を借りてきて,その資源を使ってOSの中で別のOSを動かすことができます.

そんなことして何がいいの? と思われるかもしれませんが...
よくわからなくなった時に容赦なくリセットできる
という利点があります.

特に,自分で初めて行う環境構築なんかでは「やってるうちに何がなんだかわからなくなった」ということがよくあります.
仮想環境上に大事なデータを入れていない限りは,また環境構築をすればいいだけなので容赦なくデータを吹き飛ばせるというわけです.

「でもいちいち環境を作りなおすの面倒じゃないの?」とお思いの貴方.
作って壊してを繰り返しているうち,環境構築に慣れて楽になってくるので大丈夫です

まずはVirtual Boxから

Virtual Boxは仮想環境を利用するために使うやつです.

ここに飛んで,「Virtual Box <バージョン> Platform Packages」の「Windows Hosts」をクリックしてダウンロードします.

ダウンロードしたexeファイルを起動すると,セットアップが始まります.
英語がたくさん出てきて「なんのこったよ」って感じになりますが,「Next」を押し続けて大丈夫です.
(デスクトップやスタートメニューを少しでも汚されたくない人は英語を頑張って読んでくださいね)

isoをもらってくる

OSをインストールするには,それ用のファイルが必要です.
Virtual Boxで仮想OSを作成するときも必要になるので,ダウンロードしましょう.

このへんからisoが入ったzipファイルをもらってきます.

余計なものがたくさん入ってますが,セットアップ手順が楽なやつです.

最新のバージョンをダウンロードします.
1GBもダウンロードするのでけっこうかかります.お茶飲んで待ちましょう.

ダウンロードできたらzipを展開します.
1GB超えたあたりのファイルはWindows標準のソフトやLhaplusでは解凍できなかったりするので,
それが可能なソフトで解凍しましょう.
(そのソフトはどうやってインストールするの?っていうのは本筋から離れすぎるので割愛します,ごめんなさい)

Ubuntuの設定

以下,重要そうなところは適宜スクショを載せていきます.

さっきインストールしたVirtual Boxを起動して,左上のほうにある「新規」を押します.

30.png

名前はなんでもいいです.
今回は「PythonとTensorFlowのTest」なので「py_tf_test」にしました.
タイプに「Linux」バージョンに「Ubuntu(64-bit)」を選択.

31.png

次に仮想OSへ割り当てるメモリサイズの選択です.
普通のPCで遊ぶならせいぜい1~2GBかと思いますが,
(私の環境では)画面酔いするレベルで処理落ちしたので,酔いやすい方はお気をつけて.
私は数秒で酔いました,

仮想OSをインストールした後でも変更できます.

34.png

次にストレージの割り当てを行います.「すでにある仮想ハードディスクを使用する」のところにあるフォルダをクリックして,先ほど展開したファイルの中にある「ubuntu-ja-<version>-desktop-amd64.vhd」を選択し,「作成」をクリックします.

これで設定が出来上がりました.Virtual Boxの左側に出てくるのでクリックして選択,
画面左上あたりにある「起動」をクリックします.

仮想環境を削除したい

「なんかうまくいかなくなった」「こいつに100GBも食われてるのやだ」とお思いの貴方.
Virtual Box上の仮想環境アイコンを右クリックして「除去」を選択すると削除できます.

Ubuntuのインストール

日本語で懇切丁寧に書かれているうえ,めんどくさい設定が全部省いてありました.
指示に従ってください!!!!!!以上!!!!!!!!!

前準備

Pythonをインストールする前に,おまじないをかけておきましょう.

左上にある「コンピュータとオンラインリソースを検索」をクリックして,「terminal」と打ちます.
文字だらけの不格好なウィンドウが出てきます.この後は大体こちらで操作します.

terminalで次のように打ち込みます.
$はterminalの入力待ちを示す記号なので,打つ必要はないです.

$ sudo apt-get update

非常にざっくりと説明すると,「大抵の人が使うようなソフトをインストールできる状態にしておく」コマンドです.

Pythonのインストール

お待たせしました.Pythonをインストールしましょう.
Pythonは可読性の高さ,扱いやすさ,拡張しやすさが特徴の言語です.
機械学習系の開発が盛んなので,今回はこれを使って楽に機械学習してみましょう.
一緒にpipも入れておきましょう.Pythonを楽に拡張するためのツールです.

terminalで次のように打ち込んでください.

$ sudo apt-get install python3
$ sudo apt install python3-pip

TensorFlow(keras)のインストール

次にTensorFlowをインストールします.
TensorFlowは,雑に言うと機械学習でよく使うやつです.
Kerasがあると楽に機械学習ができるので,そっちも入れてしまいましょう.

terminalで次のように打ち込みます.

$ pip3 install tensorflow
$ pip3 install keras

sublimetextのインストール

正直なところエディタはなんでもいいのですが,今回はSublimeTextをインストールします.
ここからダウンロードできるので,適当な位置に展開します.

展開したら起動して,次へ進みましょう.

TensorFlow(keras)で遊ぶ

MNISTという,手書き文字の判定コードを動かしてみましょう.
下のコードをSublimeTextにコピペして,ホームディレクトリにでも保存しましょう.
「コードに何が書いてあるの?」ってあたりは割愛します.

sample.py
import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.optimizers import RMSprop

batch_size = 128
num_classes = 10
epochs = 20

# the data, shuffled and split between train and test sets
(x_train, y_train), (x_test, y_test) = mnist.load_data()

x_train = x_train.reshape(60000, 784) # 2次元配列を1次元に変換
x_test = x_test.reshape(10000, 784)
x_train = x_train.astype('float32')   # int型をfloat32型に変換
x_test = x_test.astype('float32')
x_train /= 255                        # [0-255]の値を[0.0-1.0]に変換
x_test /= 255
print(x_train.shape[0], 'train samples')
print(x_test.shape[0], 'test samples')

# convert class vectors to binary class matrices
y_train = keras.utils.to_categorical(y_train, num_classes)
y_test = keras.utils.to_categorical(y_test, num_classes)

model = Sequential()
model.add(Dense(512, activation='relu', input_shape=(784,)))
model.add(Dropout(0.2))
model.add(Dense(512, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(10, activation='softmax'))

model.summary()
model.compile(loss='categorical_crossentropy',
              optimizer=RMSprop(),
              metrics=['accuracy'])

history = model.fit(x_train, y_train,  # 画像とラベルデータ
                    batch_size=batch_size,
                    epochs=epochs,     # エポック数の指定
                    verbose=1,         # ログ出力の指定. 0だとログが出ない
                    validation_data=(x_test, y_test))

score = model.evaluate(x_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])

保存したら,terminalで次のように打ち込み,プログラムを起動しましょう.

$ cd ~/
$ python3 keras.py

実行後,データを読み込むため出力まで多少時間がかかります。
下のような見た目になれば成功です.
(値は実行ごとに多少の差があると思います)

Using TensorFlow backend.
60000 train samples
10000 test samples
_________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
dense_1 (Dense)              (None, 512)               401920
_________________________________________________________________
dropout_1 (Dropout)          (None, 512)               0
_________________________________________________________________
dense_2 (Dense)              (None, 512)               262656
_________________________________________________________________
dropout_2 (Dropout)          (None, 512)               0
_________________________________________________________________
dense_3 (Dense)              (None, 10)                5130
=================================================================
Total params: 669,706
Trainable params: 669,706
Non-trainable params: 0
_________________________________________________________________
Train on 60000 samples, validate on 10000 samples

Epoch 18/20
60000/60000 [==============================] - 7s 117us/step - loss: 0.0182 - acc: 0.9948 - val_loss: 0.1091 - val_acc: 0.9829
Epoch 19/20
60000/60000 [==============================] - 7s 118us/step - loss: 0.0199 - acc: 0.9951 - val_loss: 0.1045 - val_acc: 0.9834
Epoch 20/20
60000/60000 [==============================] - 7s 119us/step - loss: 0.0193 - acc: 0.9953 - val_loss: 0.1097 - val_acc: 0.9835
Test loss: 0.10974634569421897
Test accuracy: 0.9835

おわりに

正直なところ,本記事と同一内容の記事は大量にあるので,
この記事では「とりあえず動いて楽しくなれる」ことを意識した記事を書きました.

今回使用したUbuntuの日本語Remixですが,libre officeをはじめとして不要なものがごろごろ転がっているうえ,
妙に重くて使いにくいと感じたので,気分がのれば本家のisoでやり直したものに更新するかもしれません.

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4