微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – Native TF vs Keras TF的性能比较

我使用本机和后端张量流创建了完全相同的网络,但是在使用多个不同参数进行了数小时的测试之后,仍然无法弄清楚为什么keras优于原生张量流并产生更好(稍微但更好)的结果.

Keras是否实施了不同的权重初始化方法?或者执行除tf.train.inverse_time_decay以外的不同重量衰减方法?

附:得分差异总是如此

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

您还可以复制并执行以下两个文件

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

解决方法:

问题是由于不正确使用了dropout层的keep_prob参数,因为我应该在列车和测试过程中使用不同的值来提供此参数.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐