我有一个经过训练的 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
模型的最低工作示例代码?