我已经成功地使用了来自tensorflow的mnist数据集,这是我从头开始编码的深度神经网络模型 . 现在我想尝试使用tensorflow中更简单的DNNClassifier函数 . 我面临两个问题,我似乎无法在互联网上找到解决方案
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("/tmp/data/", one_hot=True)
estimator = tf.estimator.DNNClassifier(
feature_columns=[28,9], #WTH is this!?!!
hidden_units=[28, 512, 9],
optimizer=tf.train.GradientDescentOptimizer(
learning_rate=0.1,
))
x,y =mnist.train.next_batch(500)
estimator.train(input_fn=x,y,steps = 100)
-
有一个参数绑定到DNNClassifier,即feature_columns . 它的文档对我没有意义 . 什么是feature_columns?它在深层神经网络中扮演什么角色?应该给出什么类型的变量? (list,tuple,numpy array?)
-
如何将训练数据输入估算器?我无法通过feature_columns问题,所以我无法让估算工作,这意味着我无法让培训工作 . 但我相信我目前的编码是错误的做法 .
1 回答
该变量创建feature_columns,它指定模型的输入 . 不确定为什么数组将用于变量,它应该是tf.feature_column.numeric_column,因为所有输入要素都是mnist中的数字 .
就数据输入而言,张量流似乎是专门实现输入功能,这使得数据的输入和格式化变得更加容易 .
我发现文档有时很有帮助 . 看起来你已经在代码中组装了各种各样的部分,而且并非所有部分都是兼容的 . 例如,固定估计器不接受学习速率输入 . 太多,隐藏单位的数量远远超过了必要的数量,除非你喜欢看着你的处理器将它的粉丝推向极限 .
开发人员博客以清晰,彻底的方式编写 . 我建议从博客开始学习如何使用' jar 头'估算器 . 它非常清晰,易于使用,使机器学习适应您自己的数据集 .
看到这个; https://developers.googleblog.com/2017/09/introducing-tensorflow-datasets.html