如何测量每张图像预测的执行时间(keras)
How to measure execution time for prediction per image (keras)
我有一个使用 Keras 创建的简单模型,我需要测量每张图像的预测执行时间。现在我只是这样做:
start = time.clock()
my_model.predict(images_test)
end = time.clock()
print("Time per image: {} ".format((end-start)/len(images_test)))
但是我发现len(images_test)越小计算出来的时间越长。例如,当 len(images_test) = 32 我得到:0.06 当 len(images_test) = 1024 我得到:0.006
有没有 "right" 方法来做到这一点?
如果用TF好像没有异步问题
但是如果使用 pytorch 它有异步问题。
在 TF 中:
start = time.clock()
result = my_model.predict(images_test)
end = time.clock()
在火炬中:
torch.cuda.synchronize()
start = time.clock()
my_model.predict(images_test)
torch.cuda.synchronize()
end = time.clock()
但我认为你可以循环 10 次 model_predict
并打印 time_list
(电脑需要加载keras模型所以第一次加载比其他时候慢)
在 TF 中:
pred_time_list=[]
for i in range(10):
start = time.clock()
result = my_model.predict(images_test)
end = time.clock()
pred_time_list.append(end-start)
print(pred_time_list)
(打印 pred_time_list 你可能会发现时间不正确的原因)
参考:
[1]
https://discuss.pytorch.org/t/doing-qr-decomposition-on-gpu-is-much-slower-than-on-cpu/21213/6
[2]
https://discuss.pytorch.org/t/is-there-any-code-torch-backends-cudnn-benchmark-torch-cuda-synchronize-similar-in-tensorflow/51484/2
我有一个使用 Keras 创建的简单模型,我需要测量每张图像的预测执行时间。现在我只是这样做:
start = time.clock()
my_model.predict(images_test)
end = time.clock()
print("Time per image: {} ".format((end-start)/len(images_test)))
但是我发现len(images_test)越小计算出来的时间越长。例如,当 len(images_test) = 32 我得到:0.06 当 len(images_test) = 1024 我得到:0.006
有没有 "right" 方法来做到这一点?
如果用TF好像没有异步问题
但是如果使用 pytorch 它有异步问题。
在 TF 中:
start = time.clock()
result = my_model.predict(images_test)
end = time.clock()
在火炬中:
torch.cuda.synchronize()
start = time.clock()
my_model.predict(images_test)
torch.cuda.synchronize()
end = time.clock()
但我认为你可以循环 10 次 model_predict
并打印 time_list
(电脑需要加载keras模型所以第一次加载比其他时候慢)
在 TF 中:
pred_time_list=[]
for i in range(10):
start = time.clock()
result = my_model.predict(images_test)
end = time.clock()
pred_time_list.append(end-start)
print(pred_time_list)
(打印 pred_time_list 你可能会发现时间不正确的原因)
参考:
[1]
https://discuss.pytorch.org/t/doing-qr-decomposition-on-gpu-is-much-slower-than-on-cpu/21213/6
[2]
https://discuss.pytorch.org/t/is-there-any-code-torch-backends-cudnn-benchmark-torch-cuda-synchronize-similar-in-tensorflow/51484/2