Pytorch と Tensorflow( と Keras)

火 02 7月 2019

Pytorch と Tensorflow( と Keras)

1.背景

  • PytorchでCNN,RNN,GANなど一通り学習した段階で、Tensorflowも使えたら良いなと思った。
  • CIFER-10 でチュートリアル的なCNNをベースに、両者を比較してみる。

    • 書籍をベースにTensorflowコードを実装したら、Kerasと混じっていて多少混乱・・・。
      • Tensorflowと、Tensorflowに取り込まれたKeras。
      • ラッパーとしての独立Kerasも存在する。
  • Machine Learning Workflow

    • 頭の整理のためにワークフローを意識しながら勉強中。今回はこのあたりの話。
    # Step Target Scope Machine Learning Workflow
    1 Retrieve o Explore & Process Data
    2 Clean & Explore Explore & Process Data
    3 Prepare/Transform o Explore & Process Data
    4 Develop & Train Model o Modeling
    5 Validate/Evaluate Model Modeling
    6 Deploy to Production Deployment
    7 Monitor and Update Model & Data Deployment

2.勉強したこと

No 比較ポイント Pytorch Tensorflow ( with Keras inside )
1 Retrieve ダウンロードしたあと、ローカル保存を勝手にやってくれる。再利用時にダウンロードしないので楽。ただしデータ形式が良く分かっていない。(バイナリ?)
>from torchvision import datasets
>train_data = datasets.CIFAR10('data', train=True, download=True, transform=transform)
numpy.ndarrayの形でダウンロードまで。保存したければ、自分でcsvファイルにでも出力すれば良さそう。
>from tensorflow.python.keras.datasets import cifar10
>(x_train, y_train),(x_test, y_test) = cifar10.load_data()
2 Clean & Explore CIFAR-10とかきれいなデータセットを使ってしまうと、ここはあまり勉強にならない気がする。 (略)
3 Prepare/Transform 正解データはクラス番号として扱う。 1-hot vector化が必須?(多分)
4 Develop & Train Model モデル定義は同じように記載できる。 ・モデル定義は同じように記載できる。
・Trainingパートはやけにすっきりかけた。(Kerasのおかげ)
・また、TensorBoardがツールとして付いていて良い。

3.利用環境

No 名称 状況
1 CPU AMD Phenom(tm) II X6 1090T 3.20GHz
これがAVX(Advanced Vector Extensions)を搭載しておらず、
Tensorflowはver=1.5.0止まりとなってしまう。
2 GPU GeForce GTX 1060 6GB
Jupyter notebookに多少メモリ開放バグあるみたい?
たまに6GB上限を気にするレベルで、とりあえずまだ大丈夫。
3 Memory 16GB(あまり関係ないけど)
機械学習のため秋葉原で中古メモリ増設。4->16で色々快適に。
4 Python Windows, Anaconda3-5.3.1 でver3.6の仮想環境(Tensorflow対応から3.6とした)
No5/No6はPython仮想環境で分けている。
5 Pytorch Version 1.1.0 py3.6_cuda90_cudnn7_1
6 Tensorflow Version 1.5.0
Visual Studio 2015 Version 14.0.25431.01 Update 3
CUDA V9.0.176
cuDNN v7.0.5[Dec 5, 2017], for CUDA 9.0
  • 初めてTensorflowでのDeep Learningに成功!(Hello Worldとか1+2=3止まりでは無く)
    • Tensorflowは環境構築が大変だった。
      • ライブラリのバージョン依存関係について、Tensorflow公式サイトにあるので要注意。
      • ブログ記事などから入ってしまい、理解できるまで混乱した。
      • あとCPUが古くAVX非対応からのバージョン1.5.0縛りとか・・。
      • セットアップだけでいうと、GPU利用がすんなり行ったため、Pytorchのほうが好き。

social