LoginSignup
7
7

More than 3 years have passed since last update.

kerasとtensorflow1.xのバージョンの依存関係の問題について(2020.6現在)

Last updated at Posted at 2020-06-03

環境:macOS catalina, pipenv, pyenv, vs code

Kerasの昔のサンプルコードを試そうと思って、詰まったのでメモ。
https://github.com/keras-team/keras/blob/master/examples/mnist_mlp.py
最近、kerasを始めた方だと、環境構築の情報やkerasのサンプルコードが以前のままになっているケースがあるので要注意。

簡単な解決方法

googleのcolaboratoryを使うと、すでに前のバージョンのtensorflowやkerasのセットアップがされていいます。下記のコードを前にインサートするだけでOK。

colaboratory
%tensorflow_version 1.x

以前のKeras(TensolFlow1.x)環境を再現する。

kerasは、2019年10月以前、Tensorflow1.xをバックグラウンドにして動いていました。コードの書式も少し変更になっています。そのため、古いコードを試す場合は、pipenvなどで当時の依存関係を再現する必要があります。

Pipfile
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
tensorflow = "==1.15" 
keras = "==2.2.4"

[requires]
python_version = "3.6"

tensorflowは1.x、kerasは2.2.4までは動くことを確認しています。pythonも、python 3.8だとtensorflow 1.xがうまく動かないことがあるようです。pyenvをインストールした上でpython3.6をPipleに指定して仮想環境を作るなどしてください。

現在のKeras(tensorFlow 2.0以降)との書式の違い

表記の細かく変更があるようです。layer関連の関数は、小区分がなくなって、すべてkeras.layersにまとまったようです。

python
from keras.models import Sequential, Model, load_model
from keras.layers.convolutional import Conv2D, MaxPooling2D
from keras.layers.core import Dense, Dropout, Activation, Flatten
from keras.layers.pooling import GlobalAveragePooling2D
from keras.callbacks import EarlyStopping, ReduceLROnPlateau
from keras.preprocessing.image import ImageDataGenerator

python

from tensorflow.keras.models import Sequential, Model, load_model
from tensorflow.keras.layers import Conv2D, MaxPooling2D
from tensorflow.keras.layers import Dense, Dropout, Flatten
from tensorflow.keras.layers import GlobalAveragePooling2D
from tensorflow.keras.callbacks import EarlyStopping, ReduceLROnPlateau
from tensorflow.keras.preprocessing.image import ImageDataGenerator

GPU関連の依存関係

GPUを使う場合は、keras、CUDA、cuDNNのバージョン、GPUのチップの種類との依存関係もあります。ここでつまづくことも多いので、依存関係をきちんと確認してインストールして下さいませ〜。

7
7
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
7
7