keras中model.predict(x)与model(x)有什么区别?
总结:
- 最大的区别在于:
predict是通过batch读取数据集分批次预测的,而call方法是一次性加载所有的数据。所以,在小数据集上call方法会更快 - 如果想要通过预测结果计算梯度,只能用
call方法,不能用predict方法,因为predict方法计算过程不会记录到梯度带上。也就是说,如果你想自定义训练过程,必须通过model(x)获取前向传播值,然后再根据输出反向传播计算梯度。 predict与call方法返回的数据类型不一样。