【问题标题】:Trained keras model much slower making its predictions than in training经过训练的 keras 模型的预测速度比训练时慢得多
【发布时间】:2017-05-11 02:11:30
【问题描述】:

我在一夜之间训练了一个 keras 模型,得到了 75% 的准确率,我现在对此很满意。它有 60,000 个样本,每个样本的序列长度为 700,词汇量为 30。每个 epoch 在我的 gpu 上大约需要 10 分钟。所以这是 60,000 / 600 秒,大约每秒 100 个样本,并且必须包括反向传播。所以我保存了我的 hdf5 文件并再次加载它。

<code>#Model:
model = Sequential() 
model.add(LSTM(128, input_shape=(X.shape[1], X.shap[2]), return_sequences=True)) model.add(Dropout(0.25)) model.add(LSTM(64)) model.add(Dropout(0.25)) model.add(Dense(y.shape[1], activation='softmax'))
</code>

当我做出预测时,每个预测需要大约 1 秒,这比训练慢 100 倍。预测很好,我看过小批量,我可以使用它们。问题是我需要很多 100,000 个。每个预测 10 毫秒秒会起作用,1 秒不会。

谁能建议加快 Keras 预测的方法?

【问题讨论】:

  • 尝试改写以提高清晰度

标签: python keras


【解决方案1】:

我认为这是因为 Keras 的默认预测行为是批量大小为 32。因此,特别是如果您使用 GPU,小批量会破坏性能。如果您只是将批量大小更改为 predict(X_test, batch_size=128),您将获得明显更快的性能。

【讨论】:

    猜你喜欢
    • 2018-04-15
    • 2017-07-28
    • 2020-02-01
    • 2019-05-28
    • 1970-01-01
    • 2017-05-29
    • 2019-08-05
    • 2021-05-14
    • 2022-10-19
    相关资源
    最近更新 更多