Я попытался моделировать NN, используя регрессию softmax. После 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)
Создал новый файл журнала и попытался. это то, что я получил - http://imgur.com/a/NFXul Но стоимость все еще не приближается к нулю, любая идея почему? а также веса и смещения запутаны в моем сценарии я wrote- писатель = tf.train.SummaryWriter ("/ TMP/tensorflow/logdir_1", sess.graph_def) и от trminal- tensorboard --logdir =/TMP/tensorflow/logdir_1 – zerogravty