Time 如何测量每幅图像预测的执行时间(keras)
我用Keras创建了一个简单的模型,我需要测量每个图像预测的执行时间。现在我只是这样做:Time 如何测量每幅图像预测的执行时间(keras),time,keras,execution,predict,Time,Keras,Execution,Predict,我用Keras创建了一个简单的模型,我需要测量每个图像预测的执行时间。现在我只是这样做: start=time.clock() 我的模型预测(图像测试) end=time.clock() 打印(“每张图像的时间:{}”。格式((结束-开始)/len(图像测试))) 但是我注意到,当len(images_test)较小时,计算的时间会较大。例如,当len(images_test)=32时,我得到:0.06;当len(images_test)=1024时,我得到:0.006 有没有“正确”的方法
start=time.clock()
我的模型预测(图像测试)
end=time.clock()
打印(“每张图像的时间:{}”。格式((结束-开始)/len(图像测试)))
但是我注意到,当len(images_test)较小时,计算的时间会较大。例如,当len(images_test)=32时,我得到:0.06;当len(images_test)=1024时,我得到:0.006
有没有“正确”的方法 如果使用TF,似乎没有异步问题
但如果使用pytorch,则会出现异步问题
在TF中: 在pytorch中:
torch.cuda.synchronize()
start = time.clock()
my_model.predict(images_test)
torch.cuda.synchronize()
end = time.clock()
但我认为你可以做10次循环模型预测和打印时间列表
(计算机需要加载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.appebd( end-start )
print(pred_time_list)
(打印pred_time_列表,您可能会发现时间不正确的原因)
参考:
[1]
[2]
你可能是用正确的方法做的。是的,有一个开销时间(模型为初始化和完成处理而做其他事情所花费的时间)应该是很自然的。由于并行化(特别是在GPU中),自然也可以更快地处理许多图像
pred_time_list=[]
for i in range(10):
start = time.clock()
result=my_model.predict(images_test)
end = time.clock()
pred_time_list.appebd( end-start )
print(pred_time_list)