【问题标题】:Neural network model not learning?神经网络模型不学习?
【发布时间】:2016-05-23 05:23:23
【问题描述】:

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

对于权重和偏差直方图this

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

这是我的完整代码供参考。

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)

【问题讨论】:

    标签: machine-learning neural-network tensorflow deep-learning


    【解决方案1】:

    我有几次和你一样的情节。

    这主要发生在我在多个日志文件上运行 tensorboard 时。也就是说,我给 TensorBoard 的 logdir 包含多个日志文件。尝试在一个日志文件上运行 TensorBoard,然后告诉我会发生什么

    【讨论】:

    • 我创建了一个新的日志文件并尝试了。这就是我得到的-imgur.com/a/NFXul 但是成本仍然没有接近零,知道为什么吗?我写的脚本中的权重和偏差也令人困惑- writer = tf.train.SummaryWriter("/tmp/tensorflow/logdir_1", sess.graph_def) 和来自 trminal- tensorboard --logdir=/tmp/tensorflow/logdir_1
    猜你喜欢
    • 2016-07-11
    • 1970-01-01
    • 2019-03-15
    • 2011-08-17
    • 2020-10-29
    • 2016-11-28
    • 2013-04-22
    • 2018-10-05
    • 2017-02-28
    相关资源
    最近更新 更多