【发布时间】:2018-10-10 14:51:13
【问题描述】:
我正在尝试让神经网络进入 TensforFlow。数据集只是花瓣的长度和宽度,输出可以是 1/0,具体取决于类型:
x = [[3,1.5],
[2,1],
[4,1.5],
[3,1],
[3.5,0.5],
[2,0.5],
[5.5,1],
[1,1]]
y = [1,
0,
1,
0,
1,
0,
1,
0]
到目前为止,我的代码如下所示:
定义变量
x_1 = tf.placeholder(tf.float32, shape=[8,2])
y_1 = tf.placeholder(tf.float32, shape=[8])
w_1 = tf.placeholder(tf.float32, shape=[2,8])
b_1 = tf.placeholder(tf.float32, shape=[8,])
sess = tf.Session()
sess.run(tf.global_variables_initializer())
y_ = tf.matmul(x_1,w_1) + b
sigmoid = tf.nn.sigmoid(y_)
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(sigmoid)
for _ in range(50000):
我的问题是如何安排我的“for”循环,以便它一次获取整个数据集并将其与实际输出进行比较? tensorflow 上的 mnist 数据集使用 softmax 交叉熵,您可以在函数的参数中指定实际输出和预测输出。但是,在这个简单的数据集中,我将如何在剩余的 for 循环中复制相同的内容,以便代码抓取所有数据进行预测并将其与实际输出进行比较?另外请说明我的变量的形状是否有任何问题,谢谢。
【问题讨论】:
-
到目前为止,您正在尝试最小化神经网络的输出。如果您希望您的输出与 y 匹配(也称为基本事实),那么您应该首先尝试最小化表示输出与 y 之间差异的成本。
-
另外,如果你想最小化一些东西,你不应该使用占位符,而是使用变量。
-
长话短说,您最好仔细阅读分步教程。
-
是否有任何教程可以推荐,在不使用 mnist 数据集的情况下解释这一点
-
This 看起来很适合开始使用低级 API,它使用 iris 数据集(您似乎正在使用相同的数据集)。
标签: python for-loop tensorflow neural-network gradient-descent