我正在使用TensorFlow,我修改了教程示例以获取我的RGB图像.
该算法在新图像集上完美无缺地工作,直到突然(仍然会聚,通常精度约为92%),它与ReluGrad接收到的非有限值的错误一起崩溃.调试显示数字没有异常发生,直到非常突然,由于未知原因,错误被抛出.添加
print "max W vales: %g %g %g %g"%(tf.reduce_max(tf.abs(W_conv1)).eval(),tf.reduce_max(tf.abs(W_conv2)).eval(),tf.reduce_max(tf.abs(W_fc1)).eval(),tf.reduce_max(tf.abs(W_fc2)).eval())
print "max b vales: %g %g %g %g"%(tf.reduce_max(tf.abs(b_conv1)).eval(),tf.reduce_max(tf.abs(b_conv2)).eval(),tf.reduce_max(tf.abs(b_fc1)).eval(),tf.reduce_max(tf.abs(b_fc2)).eval())
Run Code Online (Sandbox Code Playgroud)
作为每个循环的调试代码,产生以下输出:
Step 8600
max W vales: 0.759422 0.295087 0.344725 0.583884
max b vales: 0.110509 0.111748 0.115327 0.124324
Step 8601
max W vales: 0.75947 0.295084 0.344723 0.583893
max b vales: 0.110516 0.111753 0.115322 0.124332
Step 8602
max W vales: 0.759521 0.295101 0.34472 0.5839
max b vales: 0.110521 0.111747 0.115312 0.124365
Step 8603
max W vales: -3.40282e+38 -3.40282e+38 -3.40282e+38 -3.40282e+38
max b …
Run Code Online (Sandbox Code Playgroud) 我的目标是用TensorFlow做大事,但我想从小做起.
我有小的灰度方块(有一点噪音),我想根据它们的颜色对它们进行分类(例如3类:黑色,灰色,白色).我编写了一个Python类来生成正方形和1-hot向量,并修改了它们的基本MNIST示例以提供它们.
但它不会学到任何东西 - 例如,对于3个类别,它总是猜测≈33%正确.
import tensorflow as tf
import generate_data.generate_greyscale
data_generator = generate_data.generate_greyscale.GenerateGreyScale(28, 28, 3, 0.05)
ds = data_generator.generate_data(10000)
ds_validation = data_generator.generate_data(500)
xs = ds[0]
ys = ds[1]
num_categories = data_generator.num_categories
x = tf.placeholder("float", [None, 28*28])
W = tf.Variable(tf.zeros([28*28, num_categories]))
b = tf.Variable(tf.zeros([num_categories]))
y = tf.nn.softmax(tf.matmul(x,W) + b)
y_ = tf.placeholder("float", [None,num_categories])
cross_entropy = -tf.reduce_sum(y_*tf.log(y))
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
# let batch_size = 100 --> therefore there are 100 batches of training data …
Run Code Online (Sandbox Code Playgroud)