Machine learning 神经网络模型不学习?

Machine learning 神经网络模型不学习?,machine-learning,neural-network,tensorflow,deep-learning,Machine Learning,Neural Network,Tensorflow,Deep Learning,我尝试使用softmax回归对NN建模。 经过999次迭代后,每个数据点的误差约为0.02%,我认为这是好的。但是当我在tensorboard上可视化模型时,我的成本函数并没有达到0,相反,我得到了如下结果 权重和偏差直方图 我是个初学者,我似乎不理解这个错误。可能是我使用了错误的方法来定义成本 这是我的完整代码供参考 import tensorflow as tf import numpy as np import random lorange= 1 hirange= 10 amplitud

我尝试使用softmax回归对NN建模。 经过999次迭代后,每个数据点的误差约为0.02%,我认为这是好的。但是当我在tensorboard上可视化模型时,我的成本函数并没有达到0,相反,我得到了如下结果

权重和偏差直方图

我是个初学者,我似乎不理解这个错误。可能是我使用了错误的方法来定义成本

这是我的完整代码供参考

import tensorflow as tf
import numpy as np
import random

lorange= 1
hirange= 10
amplitude= np.random.uniform(-10,10)
t= 10
random.seed()
tau=np.random.uniform(lorange,hirange)


x_node = tf.placeholder(tf.float32, (10,))
y_node = tf.placeholder(tf.float32, (10,))

W = tf.Variable(tf.truncated_normal([10,10], stddev= .1))
b = tf.Variable(.1)

y = tf.nn.softmax(tf.matmul(tf.reshape(x_node,[1,10]), W) + b)

##ADD SUMMARY

W_hist = tf.histogram_summary("weights", W)
b_hist = tf.histogram_summary("biases", b)
y_hist = tf.histogram_summary("y", y)

# Cost function sum((y_-y)**2)
with tf.name_scope("cost") as scope:
   cost = tf.reduce_mean(tf.square(y_node-y))
   cost_sum = tf.scalar_summary("cost", cost)

# Training using Gradient Descent to minimize cost
with tf.name_scope("train") as scope:
  train_step = tf.train.GradientDescentOptimizer(0.00001).minimize(cost)

sess = tf.InteractiveSession()

# Merge all the summaries and write them out to logfile
merged = tf.merge_all_summaries()
writer = tf.train.SummaryWriter("/tmp/mnist_logs_4", sess.graph_def)
error = tf.reduce_sum(tf.abs(y - y_node))


init = tf.initialize_all_variables()
sess.run(init)

steps = 1000

for i in range(steps):
    xs = np.arange(t)
    ys = amplitude * np.exp(-xs / tau)

    feed = {x_node: xs, y_node: ys}
    sess.run(train_step, feed_dict=feed)
    print("After %d iteration:" % i)
    print("W: %s" % sess.run(W))
    print("b: %s" % sess.run(b))
    print('Total Error: ', error.eval(feed_dict={x_node: xs, y_node:ys}))
    # Record summary data, and the accuracy every 10 steps
    if i % 10 == 0:
      result = sess.run(merged, feed_dict=feed)
      writer.add_summary(result, i)

我和你有过几次同样的情节


这主要发生在我在多个日志文件上运行tensorboard时。也就是说,我给TensorBoard的logdir包含多个日志文件。试着在一个日志文件上运行TensorBoard,让我知道发生了什么事

我有好几次像你一样得到了相同的图


这主要发生在我在多个日志文件上运行tensorboard时。也就是说,我给TensorBoard的logdir包含多个日志文件。试着在一个日志文件上运行TensorBoard,让我知道发生了什么

我创建了一个新的日志文件并尝试了。这就是我得到的——但成本仍然没有接近零,你知道为什么吗?在我编写的脚本中,权重和偏差也是令人困惑的-writer=tf.train.SummaryWriter(“/tmp/tensorflow/logdir_1”,sess.graph_def),从trminal-tensorboard--logdir=/tmp/tensorflow/logdir_1;我创建了一个新的日志文件并进行了尝试。这就是我得到的——但成本仍然没有接近零,你知道为什么吗?在我编写的脚本中,权重和偏差也是令人困惑的——writer=tf.train.SummaryWriter(“/tmp/tensorflow/logdir_1”,sess.graph_def)和trminal-tensorboard--logdir=/tmp/tensorflow/logdir_1