概要
tensorflow バックエンドでt ensorflow で書かれたコードを keras で走らせたところ
negative dimension size caused by subtracting 5 from 1
というエラーが出た。解決策を探していたところ色々なサイトが出てきて混乱したので個人的まとめ
(subtractiong 5 from 1 の部分は n from 1 で置き換えても大丈夫です)
環境
- keras 2.0.3
- tensorflow 1.0.1
- Anaconda 4.3.1
- python 3.5.2
- Windows 10
解決策
keras.json を開く。ファイルの場所は、 Anaconda の仮想環境を立ち上げて、 python で keras.json の場所を調べることができる。
python
import os
print (os.path.expanduser('~'))
調べた場所にある keras.json を、以下のように編集する。
"image_data_format" を "channels_last" から "channels_first" に書き直す。
keras.json
{
"epsilon": 1e-07,
- "image_data_format": "channels_last",
+ "image_data_format": "channels_first"
"floatx": "float32",
"backend": "tensorflow"
}
保存して、元のコードを実行したところエラーが出なくなった。