keras backendを変更する方法

1310 ワード

方法1usersフォルダの下に.kerasフォルダを新規作成し、フォルダの下にkeras.jsonファイルを新規作成します.jsonの内容は次のとおりです.
{
    "image_dim_ordering": "tf", 
    "epsilon": 1e-07, 
    "floatx": "float32", 
    "backend": "tensorflow"
}

このうちbackendはtensorflowまたはtheanoであり、もちろんインストールされていることを前提としています.
しかし、backendを切り替えるたびに手動でこのファイルを修正する必要があるという弊害がありますので、動的に修正できる方法があるほうがいいのではないでしょうか.次の方法を見てください.
方法2
import os
os.environ['KERAS_BACKEND'] = 'tensorflow'
import keras.backend as K
K.set_image_dim_ordering('tf')

まずosライブラリにロードし、kerasのbackendをtensorflowに変更し、kerasのbackendをロードし、orderをtensorflowフォーマットに設定します.
ここで私は自分のコードの中でバージョンを変えることができないことを発見して、それからreloadを調べることができます
import os
os.environ['KERAS_BACKEND']='theano'
import keras.backend as K
K.set_image_dim_ordering('th')
import importlib
importlib.reload(K)

PS:なぜreload(sys)が必要なのか.まずreloadは、以前のimportを再ロードするためのモジュールです.
ここでsysを再ロードする必要があるのは、pythonがモジュールをロードするときにsysのsetdefaultencodingメソッドを削除したため(安全のためかもしれません)、reloadというsysモジュールが必要です.
ここで簡単な例を挙げます.例えば、kerasのバックエンドを変更し、tensorflowからtheanoに変更し、変更後にkerasのbackendモジュールを再ロードして修正に成功する必要があります.