鸢尾花程序premade_estimator.py主要有以下六大功能:_
1,导入和解析数据集。
2,创建特征列以描述数据。
3,创建并指定模型类型。
4,训练模型。
5,评估模型的效果。
6,让经过训练的模型进行预测。
很多基于TensorFlow的机器学习程序,也基本就是这六大功能。前面我们已经分析了1,导入和解析数据集 和 2,创建特征列以描述数据。
本文主要分析:3,创建并指定模型类型。
要指定模型类型,需要实例化一个 Estimator 类。TensorFlow 提供了两类 Estimator:
预创建的 Estimator:TensorFlow已为编写完成。
自定义 Estimator:必须自行编码(至少部分需要)
High-Level TensorFlow API主要就是创建和操作Estimator类
TensorFlow API 构架查看Module: tf.estimator 文档(耐心阅读文档,是一个好习惯),可以发现Estimator里面内建了深度神经网络模型,如下图所示:
tf.estimator.DNNClassifier创建代码如下图所示:
该代码非常清晰,功能是创建一个具有2个隐藏层,每个隐藏层具有10个神经元的深度神经网络(DNN),分类的数量是:3。
tf.estimator.DNNClassifier 的初始化方法__init__如下:
__init__方法hidden_units: 指定隐藏层的层数和每层的神经元数,所有隐藏层都是全连接层(All layers are fully connected)。例如:输入 [10,5,5]表示,有三个隐藏层,第一层10个神经元,第二层5个神经元,第三层5个神经元。
feature_columns:特征列
model_dir:保存模型参数的路径
n_classes:特征标签种类的数量,默认值为2,即二元分类。若分三类,则n_classes设置为3。
weight_column:定义特征列的权重,默认值None
optimizer:优化器,默认为Adagrad,参考《AI数学基础23:Adam=Momentum+RMSprop》
activation_fn:激活函数,默认为relu, 参考《AI常用激活函数分析4,Relu函数与Leaky Relu函数》
dropout:一种正则化(regularization technique)方式,防止在训练过程中的过拟合现象,默认为None,参考《What is dropout in deep learning?》
warm_start_from:A string filepath to a checkpoint to warm-start from
loss_reduction:描述如何减少训练损失,默认值是SUM;可选项有:MEAN,NONE,SUM,SUM_BY_NONZERO_WEIGHTS,SUM_OVER_BATCH_SIZE,SUM_OVER_NONZERO_WEIGHTS
到此,我们分析完3,创建并指定模型类型。
网友评论