查看keras文档中,predict函数原型:predict(self, x, batch_size=32, verbose=0)

说明:只使用batch_size=32,也就是说每次将batch_size=32的数据通过PCI总线传到GPU,然后进行预测。在一些问题中,batch_size=32明显是非常小的。而通过PCI传数据是非常耗时的。所以,使用的时候会发现预测数据时效率奇低,其原因就是batch_size太小了。

经验:使用predict时,必须人为设置好batch_size,否则PCI总线之间的数据传输次数过多,性能会非常低


2、使用fit_generator时,需设置steps_per_epoch

说明:keras 中 fit_generator参数steps_per_epoch已经改变含义了,目前的含义是一个epoch分成多少个batch_size。旧版的含义是一个epoch的样本数目。

如果说训练样本树N=1000,steps_per_epoch = 10,那么相当于一个batch_size=100,如果还是按照旧版来设置,那么相当于batch_size = 1,会性能非常低。经验:必须明确fit_generator参数steps_per_epoch