第一个训练周期非常慢

Jen*_*ein 6 mnist deep-learning keras tensorflow

Hi\xe2\x80\xa6 I\xe2\x80\x99m 在我的 P3 AWS 机器中运行 mnist 代码,与我之前的 P2 机器相比,初始化过程似乎很长(尽管 P3>P2)

\n\n
Train on 60000 samples, validate on 10000 samples\nEpoch 1/10\n60000/60000 [==============================] - 265s 4ms/step - loss: 0.2674 - acc: 0.9175 - val_loss: 0.0602 - val_acc: 0.9811\nEpoch 2/10\n60000/60000 [==============================] - 3s 51us/step - loss: 0.0860 - acc: 0.9742 - val_loss: 0.0393 - val_acc: 0.9866\nEpoch 3/10\n60000/60000 [==============================] - 3s 50us/step - loss: 0.0647 - acc: 0.9808 - val_loss: 0.0338 - val_acc: 0.9884\nEpoch 4/10\n60000/60000 [==============================] - 3s 50us/step - loss: 0.0542 - acc: 0.9839 - val_loss: 0.0337 - val_acc: 0.9887\nEpoch 5/10\n60000/60000 [==============================] - 3s 50us/step - loss: 0.0453 - acc: 0.9863 - val_loss: 0.0311 - val_acc: 0.9900\nEpoch 6/10\n60000/60000 [==============================] - 3s 51us/step - loss: 0.0412 - acc: 0.9873 - val_loss: 0.0291 - val_acc: 0.9898\nEpoch 7/10\n60000/60000 [==============================] - 3s 50us/step - loss: 0.0368 - acc: 0.9891 - val_loss: 0.0300 - val_acc: 0.9901\nEpoch 8/10\n60000/60000 [==============================] - 3s 50us/step - loss: 0.0340 - acc: 0.9897 - val_loss: 0.0298 - val_acc: 0.9897\nEpoch 9/10\n60000/60000 [==============================] - 3s 50us/step - loss: 0.0320 - acc: 0.9908 - val_loss: 0.0267 - val_acc: 0.9916\nEpoch 10/10\n60000/60000 [==============================] - 3s 50us/step - loss: 0.0286 - acc: 0.9914 - val_loss: 0.0276 - val_acc: 0.9903\nTest loss: 0.02757222411266339\nTest accuracy: 0.9903\n
Run Code Online (Sandbox Code Playgroud)\n\n

I\xe2\x80\x99m 使用 Keras=2.1.4\ntensorflow-gpu=1.5.0

\n\n

我的 keras.json 文件配置如下:

\n\n
{\n    "floatx": "float32",\n    "epsilon": 1e-07,\n    "backend": "tensorflow",\n    "image_data_format": "channels_last"\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

有什么想法为什么会这样吗?

\n\n

提前致谢

\n

Ali*_*asi 3

基于这个问题

第一个纪元花费相同的时间,但计数器还考虑了构建处理训练的计算图部分所花费的时间(几秒钟)。以前这是在compile步骤中完成的,但现在是懒惰地完成一个需求,以避免不必要的工作。