kri*_*ath 32 lstm keras tensorflow
在Keras高级深度学习库中,有多种类型的循环层; 这些包括LSTM(长期短期记忆)和CuDNNLSTM.根据Keras文档,a CuDNNLSTM是:
由CuDNN支持的快速LSTM实现.只能在带有TensorFlow后端的GPU上运行.
据我所知,Keras会尽可能自动使用GPU.根据TensorFlow构建说明,要有一个工作的TensorFlow GPU后端,您将需要CuDNN:
必须在您的系统上安装以下NVIDIA软件:
- NVIDIA的Cuda Toolkit(> = 7.0).我们建议使用9.0版.有关详细信息,请参阅NVIDIA的文档.确保您的相关Cuda的路径名追加到PATH环境变量作为NVIDIA文档中的描述.
- 与NVIDIA的Cuda Toolkit相关的NVIDIA驱动程序.
- cuDNN(> = v3).我们建议使用6.0版.有关详细信息,请参阅NVIDIA的文档,特别是将适当的路径名附加到LD_LIBRARY_PATH环境变量的说明.
因此,使用TensorFlow GPU后端CuDNNLSTM与正常情况LSTM有何不同?当找到可用的TensorFlow GPU后端时,会CuDNNLSTM自动选择并替换正常LSTM吗?
cry*_*bhu 21
你为什么不亲自试试看?就我而言,训练一个模型需要LSTM花费10分30秒.只需将呼叫切换LSTM()到CuDNNLSTM()不到一分钟.
我也注意到转换CuDNNLSTM()速度model.evaluate()也model.predict()大大加快了.
小智 11
TL; 博士; 不同之处在于模型训练时间加快了 15 倍!
性能基准:标准测试机器的比较。
对 612235 个样本进行 1 次训练迭代。
keras.layers.LSTM
Intel i5-4690 CPU only:
612235/612235 [==============================] - 3755s 6ms/step - loss: 2.7339 - acc: 0.5067 - val_loss: 2.1149 - val_acc: 0.6175
GTX:950 & Intel i5-4690:
612235/612235 [==============================] - 1417s 2ms/step - loss: 2.7007 - acc: 0.5137 - val_loss: 2.0983 - val_acc: 0.6199
使用 GPU 获得 2.5 倍增益。
GTX:970 & Intel i5-4690:
612235/612235 [==============================] - 1322s 2ms/step - loss: 1.9214 - acc: 0.6442 - val_loss: 1.8808 - val_acc: 0.6461
强大的 GPU 带来的增益可忽略不计。
RTX 2070 & Intel i7-9700K:
612235/612235 [==============================] - 1012s 2ms/step - loss: 2.7268 - acc: 0.5111 - val_loss: 2.1162 - val_acc: 0.6234
即使有很棒的硬件升级,收益也非常小!!!
keras.layers.CuDNNLSTM
RTX 2070 & Intel i7-9700K:
612235/612235 [==============================] - 69s 112us/step - loss: 1.9139 - acc: 0.6437 - val_loss: 1.8668 - val_acc: 0.6469
比 CPU 高 54 倍!
比传统(非 Cuda)LSTM 实现提高 15 倍!
| 归档时间: |
|
| 查看次数: |
11990 次 |
| 最近记录: |