接上节,本节继续分析:5,评估模型的效果:
评估指的是确定模型进行预测的效果。要确定鸢尾花分类模型的效果,需要将测试值test_x传递给模型,并要求模型预测它们所代表的鸢尾花品种。然后,将模型的预测与实际标签(test_y)进行比较。如果模型对一半输入样本的品种预测正确,则准确率为 0.5。
为方便评估模型的效果,每个 Estimator 都提供了 evaluate 方法,如下所示:
调用classifier.evaluate方法调用 classifier.evaluate 与调用 classifier.train 类似。最大的区别在于,classifier.evaluate 必须从测试集(而非训练集)中获取样本。
为了公正地评估模型的效果,用于评估模型的数据一定不能与用于训练模型的数据相同
跟train方法类似,evaluate方法也需要一个输入函数input_fn,要求跟train方法一致。由于evaluate只运行一次,而且需要优化神经网络参数,所以,输入给evaluate方法的数据,不需要随机化(shuffle)和重复(repeat)操作,代码实现如下图所示:
eval_input_fn当classifier.evaluate 方法调用eval_input_fn函数时,eval_input_fn函数会将测试集中的特征和标签转换为 tf.dataset 对象,并按照batch_size大小将测试数据(N个)组织成为 shape 为 N%batch_size 的Tensor,然后将组织好的数据返回给evaluate方法。
网友评论