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