ネイティブ テンソルフローとバックエンド テンソルフローを使用してまったく同じネットワークを作成しましたが、多数の異なるパラメーターを使用して何時間もテストした後でも、keras がネイティブ テンソルフローよりも優れており、より良い (わずかではあるがより良い) 結果を生成する理由を理解できませんでした。
Keras は別の重み初期化メソッドを実装していますか? または、tf.train.inverse_time_decay 以外の異なる重み減衰アプローチを実行しますか?
Psスコア差はいつものようです
Keras with Tensorflow: ~0.9850 - 0.9885 - ~45 sec. avg. training time for 1 epoch
Tensorflow Native ~0.9780 - 0.9830 - ~23 sec.
私の環境は次のとおりです。
Python 3.5.2 -Anaconda / Windows 10
CUDA: 8.0 with cuDNN 5.1 Keras
1.2.1
Tensorflow 0.12.1
Nvidia Geforce GTX 860M
およびkeras.jsonファイル:
{
"image_dim_ordering": "tf",
"epsilon": 1e-07,
"floatx": "float32",
"backend": "tensorflow"
}
また、次の2つのファイルをコピーして実行することもできます
https://github.com/emrahyigit/deep/blob/master/keras_cnn_mnist.py
https://github.com/emrahyigit/deep/blob/master/tf_cnn_mnist.py
https://github.com/emrahyigit/deep/blob/master/mnist.py