美文网首页
从数据的角度理解TensorFlow鸢尾花分类程序6

从数据的角度理解TensorFlow鸢尾花分类程序6

作者: LabVIEW_Python | 来源:发表于2018-06-14 10:58 被阅读54次

鸢尾花程序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,创建并指定模型类型

相关文章

网友评论

      本文标题:从数据的角度理解TensorFlow鸢尾花分类程序6

      本文链接:https://www.haomeiwen.com/subject/equeeftx.html