美文网首页
从数据的角度理解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