如何在 tensorflow 1 的循环内加速 keras 模型预测?

时间:2021-03-02 02:56:42

标签: tensorflow keras

我有一个经过训练的 keras 模型,我以交互方式调用它来预测循环内的新数据。

根据下面链接中的讨论,应该可以通过从 model.predict() 切换到 model(...,training=False) 来加速模型评估,但解决方案是针对 TF2 而不是 TF1 . https://github.com/tensorflow/tensorflow/issues/40261

我尝试运行一个非常相似的示例,但得到了相反的结果:

x = Input(shape=(1, 1))
xx= Dense(1, activation="relu")(x)
model = Model(inputs=x, outputs=xx)
import time
t = time.time()
i = 0
while i<100:
    model.predict(np.zeros((1, 1, 1)))
    i += 1
print(time.time() - t)

t = time.time()
i = 0
while i<100:
    model(np.zeros((1, 1, 1)), training=False)
    i += 1
print(time.time() - t)

对我来说,第一个总是比第二个快,应该相反。

我使用的是 tensorflow 版本 1.12.0。是否有关于如何在循环内以交互方式和仅针对 keras 的评估模式有效运行 TF1 模型的最低工作示例代码?

0 个答案:

没有答案