一、概述
model.evaluate
函数原型:
evaluate(x=None, y=None, batch_size=None, verbose=1, sample_weight=None, steps=None)
输入数据和标签,输出损失值和选定的指标值(如精确度accuracy)
# 评估模型,不输出预测结果loss,accuracy = model.evaluate(X_test,Y_test)print('\ntest loss',loss)print('accuracy',accuracy)
另外,返回了多少个值,是不固定的,如果在complie的时候没有指定metrics的话,默认只有loss一个返回值。
可以使用model.metrics_names查看。
model.predict
输入测试数据,输出预测结果
(通常用在需要得到预测结果的时候,比如需要拿到结果来画图)
二、区别
1.输入输出不同
model.evaluate 输入数据(data)和真实标签(label),然后将预测结果与真实标签相比较,得到两者误差并输出.
model.predict 输入数据(data),输出预测结果
2
是否需要真实标签
model.evaluate 需要,因为需要比较预测结果与真实标签的误差
model.predict 不需要,只是单纯输出预测结果,全程不需要标签的参与。
三、附源码:
Returns the loss value & metrics values for the model in test mode.Computation is done in batches.Argumentsx: Numpy array of test data (if the model has a single input), or list of Numpy arrays (if the model has multiple inputs). If input layers in the model are named, you can also pass a dictionary mapping input names to Numpy arrays. x can be None (default) if feeding from framework-native tensors (e.g. TensorFlow data tensors).y: Numpy array of target (label) data (if the model has a single output), or list of Numpy arrays (if the model has multiple outputs). If output layers in the model are named, you can also pass a dictionary mapping output names to Numpy arrays. y can be None (default) if feeding from framework-native tensors (e.g. TensorFlow data tensors).
batch_size: Integer or None. Number of samples per evaluation step. If unspecified, batch_sizewill default to 32.verbose: 0 or 1. Verbosity mode. 0 = silent, 1 = progress bar.sample_weight: Optional Numpy array of weights for the test samples, used for weighting the loss function. You can either pass a flat (1D) Numpy array with the same length as the input samples (1:1 mapping between weights and samples), or in the case of temporal data, you can pass a 2D array with shape (samples, sequence_length), to apply a different weight to every timestep of every sample. In this case you should make sure to specifysample_weight_mode="temporal" in compile().steps: Integer or None. Total number of steps (batches of samples) before declaring the evaluation round finished. Ignored with the default value of None.
ReturnsScalar test loss (if the model has a single output and no metrics) or list of scalars (if the model has multiple outputs and/or metrics). The attribute model.metrics_names will give you the display labels for the scalar outputs.
参考链接:https://blog.csdn.net/DoReAGON/article/details/88552348
Keras官方文档:https://keras.io/models/model/#evaluate