我正在尝试这个非常简单的神经网络,它可以判断一个数字是奇数还是偶数。 标签:[1,0]表示它是均匀的。我正在使用两个输出神经元,因为我正在使用softmax函数。
我的代码:
import tensorflow as tf
data_in = [
[1],
[2],
[3]
]
data_lbl = [
[0, 1],
[1, 0],
[0, 1]
]
# HP
learning_rate = 0.1
epochs = 10000
ip = tf.placeholder('float', [None, 1])
labels = tf.placeholder('float', [None, 2])
w1 = tf.Variable(tf.random_normal([1, 2]))
w2 = tf.Variable(tf.random_normal([2, 2]))
l1 = tf.matmul(ip, w1)
l2 = tf.matmul(l1, w2)
l2 = tf.nn.softmax(l2)
loss = tf.reduce_mean((labels - l2)**2)
train = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss)
sess = tf.Session()
sess.run(tf.global_variables_initializer())
for epoch in range(epochs):
_, err = sess.run([train, loss], feed_dict={ip: data_in, labels: data_lbl})
print(err)
print(sess.run(l2, feed_dict={ip: [[2], [5], [7]]}))
# [it is, it's not]
# 1 = even
sess.close()
我的错误没有改变,我得到了错误的答案。建议?
答案 0 :(得分:2)
你在这里有多个问题,修复这些问题至少应该为你提供一些学习某事的东西:
此外,平价是一个很难学习的概念,所以它推广到训练集中没有的数字。