V1.0 2019/10/23

はじめてのＡＩ用パソコン
Tensorflow学習編（ubuntu版）

抜粋版

スペクトラム・テクノロジー株式会社
https://spectrum-tech.co.jp
sales@spectrum-tech.co.jp
all rights reserved 2019 spectrum technology co.

1

公式サイト：https://www.tensorflow.org/tutorials/
日本語サイト：http://tensorflow.classcat.com/
ページ

目次• ubuntu運用マニュアル
1.
2.
3.
4.
5.

Ubuntuについて
基本コマンド
基本操作
日常運用
ソフト一覧

335912• Tensorflow学習プログラム①②③

Tensorflow概要
Tensorflow操作方法
Tensorboard（プログラムの可視化）• scalar, graph, image, embedded(3D), histogram④ Jupyter notebook（機械学習）• 基本分類、テキスト分類、回帰⑤ Deep learningの代表的な方法

ページ

13141623• 線形回帰• ロジスティック回帰• DNN(Deep Neural network: ディープニューラルネットワーク）• CNN(Convolutional Neural Network：畳み込みニューラルネットワーク)• RNN(Recurrent Neural Network：再帰型ニューラルネットワーク)

27
28
2930
32

• 文字認識：MNIST• 画像認識：CIFAR-10• クラス分類：iris• 自然言語処理：word2vec• 言語認識:seq2seq

33
39
40
41
42

⑥ 応用例

all rights reserved 2019 spectrum technology co.

抜粋版

ページと内容は抜粋版のため異なります2

ubuntu運用マニュアル
1. Ubuntuについて

Ubuntu（ウブントゥ） とは、コミュニティ により開発されているオペレーティングシステムです。ラップトップ、デスクトップ、そしてサーバーに利用することができます。Ubuntuには、家庭・学校・職場で必要とされるワープロやメールソフトから、サーバーソフトウェアやプログラミングツールまで、あらゆるソフトウェアが含まれています。Ｌｉｎｕｘの中でも一番使用されています。

2. Linux基本コマンド① システム関係• 起動：電源を入れると自動で起動します。
• 再起動：# reboot
又は、menu>shutdown>reboot；左上のメニューから• 終了：# shutdown

又は、menu>shutdown>shutdown；左上のメニューから• ログアウト # exit

又は、menu>shutdown>logout；左上のメニューから• 日本語／英語の入力切替：半角／全角キー（数字の１の横）、英数と文字の切替は、ｃａｐｉｔａｌ ｌｏｃｋ（Ａの横）all rights reserved 2019 spectrum technology co.

3

ubuntu運用マニュアル
2.

Linux基本コマンド② ディレクトリ操作、コピー、移動、削除

基本は、masa@Ubuntu:~$で使用してください

masa@ubuntu:~$ cd /home/masa/Documents
ディレクトリの切り替え
masa@ubuntu:/home/masa/Documents$ ls ファイルとディレクトリの表示（表示したら操作したいファイルを右クリック
でコピペして操作します
root@ubuntu:~# cp ファイル名 ディレクトリ 配下のディレクトリのファイルを別のディレクトリへコピー
root@ubuntu:~# mv ファイル名 ディレクトリ 配下のディレクトリのファイルを別のディレクトリへ移動
root@ubuntu:~# rm ファイル名
ファイルの削除
便利な機能
rm –help
コマンドのオプションが分からない場合は、ヘルプで問い合わせる。すべてのコマンド共通(マイナスを２個とhelp)③ ユーザ権限、プロセス他
masa@ubuntu:~ $ su スーパーユーザ（root)に切り替え、パスワードを入力
root@ubuntu:~# ps a
現状の動いているプロセスを表示
root@ubuntu:~# kill
特定のプロセスを強制終了
root@ubuntu:~# apt-get install pkg
パッケージのインストールなどに使用 $で使用する場合は、sudoを付与
root@ubuntu:~# date
日付、時間の設定を行います。
root@ubuntu:~# leafpad /etc/network/interfaces
インタフェースに記述してい内容を変更します。Viよりも使いやすいです。

④ モジュール、usb、メモリ、ＨＤＤなどの表示
root@ubuntu:~# lsmod
root@ubuntu:~# lsusb
root@ubuntu:~# free –mt
root@ubuntu:~# df -hroot@ubuntu:~# ifconfig

linuxのモジュールリスト表示
usbのデバイス表示
メモリ使用状態表示
ＳＳＤの使用状態表示
ipアドレスを確認します。
all rights reserved 2019 spectrum technology co.

4

ubuntu運用マニュアル
3. 基本操作① 起動（電源ＯＮ）

ＧＮＵ ＧＲＵＢ画面が立ち上がり、Ｕｂｕｎｔｕ，ｗｉｎｄｏｗｓ１０の選択画面がでます。
Ｕｂｕｎｔｕを選択

all rights reserved 2019 spectrum technology co.

5

ubuntu運用マニュアル
3. 基本操作② ログオン

ユーザを選択して、パスワードを入力。

all rights reserved 2019 spectrum technology co.

6

ubuntu運用マニュアル
3. 基本操作

トップ画面（左側のアクティビティバー）• ブラウザ• メール• ファイルマネジャ
• カメラ
• アプリ
• ヘルプ
• コマンド• システムモニタ③ 表示画面と内容

トップバー（上側）• アクティビティ
• 時計• システムモニタ• ＬＡＮ• スピーカ• 電源

all rights reserved 2019 spectrum technology co.

7

ubuntu運用マニュアル
3. 基本操作④ パスワード変更$ sudo passwd masa
パスワードを変更してください。
$ sudo passwd root
rootのパスワードも同様に設定

all rights reserved 2019 spectrum technology co.

8

ubuntu運用マニュアル
4. 日常運用①

セキュリティ対策（アンチウイルス更新、スキャン）• アンチウイルス対策として無料のclamAVをインストールしてます。
• 手動での運用を基本としてます。

パターンファイル更新
手動スキャン時に更新されます手動でスキャン$ sudo clamscan --infected --remove --recursive
自動化可能ですが、バックグランドで重くなる可能性大。コマンド入力後約１０分位かかります。

all rights resrved 2019 spectrum technology co.

9

ubuntu運用マニュアル
4. 日常運用②

インストール済パッケージの更新リスト、アップグレード• Linuxの場合は、頻繁に更新が発生します。アップグレードを定期的に実施してください。
• 更新前には、バックアップを取ることをお勧めします。特にアップグレードはまれに動作不良、戻せない状態が発生します。自己責任で実施してください。

更新リスト取得$ sudo apt-get update
アップグレード実施$ sudo apt-get upgrade

all rights reserved 2019 spectrum technology co.

10

ubuntu運用マニュアル
4. 日常運用③Ｓａｍｂａ• Windowsとネットワークを共有し、ファイルの共有を可能とします。非常に便利です。既に設定済です。

出ない場合はＩＰアドレスを入力してください¥¥192.168.1.xx• windowsPCのネットワークを確認します。
① UBUNTUとネットワークに表示されます② ダブクリックするとshareが出ます③ ubuntu上はhome>masa>shareにフォルダがあります。

ifconfigでipアドレスを確認

all rights reserved 2019 spectrum technology co.

11

ubuntu運用マニュアル
５．ソフトウエア一覧
区分

ソフト名

バージョン

OSubuntu

18.04.3 LTS

GPU用

cuDNN

7.6.+cuda10.

画像

Opencv

3.4.

プログラム言語

python3

3.6.8

python2

2.7.15+tensorflow

1.14.0Googlechainer

6.4.0

Preferred Network

caffe

1.0.0

berkeley

ＡＩ用プログラム

サンプルプログラム

Mnist,cifar10など

その他

Jupyter notebook、
matplotlibなど多数のpip
ライブラリ
Samba,clamavなどの基本アプリ
all rights reserved 2019 spectrum technology co.

備考
Nvidia用

使用ＡＩ言語により比較が可能Tensorflow 学習プログラム①．Tensorflow概要• Tensorflowとは• TensorFlowは、Googleが開発したディープラーニングのオープン・ソース・ソフトウエアで２０１５年１１月に公開されました。
• 特徴は、分散型ＧＰＵで動作し、プログラム言語は、Ｐｙｔｈｏｎで動作します。
プラットフォームはＬｉｎｕｘからWindowsまでマルチ環境をサポート• 用途は、画像認識、文字認識、自然言語処理など多岐にわたります。
https://en.wikipedia.org/wiki/Comparison_of_deep_learning_software• 比較表
ディープラー
ニング・ソフト開発元

プログラム言語

分散対応

対応ＯＳ

ＧＰＵ対応

Tensorflow

GooglePython, c++〇Linux, mac,
windows〇

Chainer

Preferrednetwork(日本）python?

linux

〇

Caffe

Berkeleyvision

C++?

Linux, mac,windows〇

Theanoモントリオール大学

python?

Linux, mac,windows〇

all rights reserved 2019 spectrum technology co.

13

Tensorflow 学習プログラム②．Tensorflow操作方法• Tensorflowを使うためには• pythonの知識が必要です。
• 配列についての知識が必要です。

• Tensorflowモジュール• import tensorflow as tf
python用のモジュールが準備されています。
• https://www.tensorflow.org/api_docs/python/tf?hl=ja
詳細はこちらのリンクで• なお、モジュールも常に更新されているため、過去のプログラムが動かない場合があります。安定版を利用ください• Tensorflowインストール• https://www.tensorflow.org/install?hl=ja

all rights reserved 2019 spectrum technology co.

14

Tensorflow 学習プログラム②．Tensorflow操作方法• Tensorflowプログラム ディレクトリ

$ cd home/masa/Documents/tensorflow/study

all rights reserved 2019 spectrum technology co.

15

全てpython3で実施してください

Tensorflow 学習プログラム③．Tensorboard（プログラムの可視化）• Tensorflowのひとつの特徴としてプログラムを可視化できるTensorboardが準備されています。データフロー、誤差、精度などがグラフで表示され非常に分かりやすい。
• Tensorboardはグーグルのchromeで動作します。ローカルホストにアクセスすると表示されます。pyhton実行後にアクセスしてください。
• python3 1_const.py• Graph例• tensorboard --logdir=data1• 四則演算：1_const.py• データフロー図が可視化（右図）• node3 = tf.add(node1, node2)の例• tensorboard --logdir=data1でコマンド入力後• http://ubuntu:6006へchromeからアクセス• Ｇｒａｐｈタグで表示• ＣＴＬ－Ｃでグラフは終了します。

出典：https://www.tensorflow.org/guide/summaries_and_tensorboard
all rights reserved 2019 spectrum technology co.

16

出典：TensorFlow 機械学習の実践
https://www.tensorflow.org/tutorials/keras

Tensorflow 学習プログラム④．Jupyter notebook（機械学習基本）• 基本分類• https://www.tensorflow.org/tutorials/keras/basic_classification• 上記のＵＲＬにのっとり、Ｊｕｐｙｔｅｒ ｎｏｔｅｂｏｏｋで学習$ cd /home/masa/Documents/notebooks$ jupyter notebook
http://localhost:8888/?token=xxxx 自動起動(chrome)

all rights reserved 2019 spectrum technology co.

17

Tensorflow 学習プログラム⑤．Deep learningの代表的な方法• 線形回帰：11_linear_reg.py• モデル：y = tf.matmul(x,a)
ｙ＝ｘ*ａ• 誤差関数（loss):平均二乗誤差 （ｙ＿－ｙ)^2の誤差が小さくなる。ｙ＿：出力、ｙ：シュミレーション値• 最適化：最急降下法• 可視化：tensorboard --logdir=data11 確認できます。

all rights reserved 2019 spectrum technology co.

18

Tensorflow 学習プログラム⑤．Deep learningの代表的な方法

cnn• Cd home/masa/Documents/tensorflow/study/cifar10• Convolutional neural network：cifar10_train.py• cifar10は画像認識のベンチマークテスト用に準備された１０分類の６万枚• airplane, automobile, bird, cat, deer, dog, frog, horse, ship, and truck.

• モデル： convolutional neural network
ｃｉｆａｒ－１０使用• 誤差関数（loss):クロスエントロピー 出典：Convolutional Neural Networks by tensorflow
https://www.tensorflow.org/tutorials/deep_cnn• 最適化：最急降下法• 可視化：tensorboard --logdir=cifar10_train 確認できます。1万回で約５分かかります。本来は１０万回
ＣＰＵの300倍速

all rights reserved 2019 spectrum technology co.

19

Tensorflow 学習プログラム⑤．Deep learningの代表的な方法• Convolutional neural network：/cifar10/cifar10_train.py
各種グラフ：データフロー、分散、ヒストグラム

all rights reserved 2019 spectrum technology co.

20

Tensorflow 学習プログラム⑥．応用例• 文字認識；ＭＮＩＳＴ Ａ）• mnist.py：基本形• ｍｎｉｓｔのテストデータの０－１９番目（２０個分）までの画像とラベルを表示• ５６－６４行までのプログラム：不要の場合はコメントアウトしてください。

テストデータの元のものと学習して予測したデータで正答率を算出
・１５個のデータで３個の間違い
Accuracy (for test data): 0.79
True Label: [7 2 1 0 4 1 4 9 5 9 0 6 9 0 1]
Est Label: [7 0 1 0 4 1 4 9 9 9 0 8 9 0 1]

all rights reserved 2019 spectrum technology co.

21

Tensorflow 学習プログラム⑥．応用例• クラス分類：iris/iris.py

出典：tf.contrib.learn Quickstart by tensorflow
https://www.tensorflow.org/tutorials/eager/custom_training_walkthrough?hl=ja• irisの３種類（setosa、 versicolor、 virginica）で花弁などの幅と大きさから新種の２種類がどれに属するのかを推定する
A) iris.py: 学習データ：１２０件、試験データ：３０件 ＤＮＮモデル
tensorboard --logdir=iris_model

正解率：９６％ 2000回

all rights reserved 2019 spectrum technology co.

22