【机器学习】 - TensorFlow.Keras 建立模型 model.evaluate 和 model.predict 的区别

一、概述

 

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.

Arguments

x: 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.
Returns

Scalar 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

你可能感兴趣的:(人工智能)