我正在尝试训练一个神经网络,该网络将被水平线(以及未来的角落)激活。我画了一个包含垂直和水平线的图像(见下面的链接)。然后在 Photoshop 中,我在水平线的顶部绘制标记,即我希望网络激活的位置。原始图像和标签图像如下所示:现在任务看起来很简单,但我无法让 tensorflow 来训练这样一个网络。这是我的代码:input = tf.convert_to_tensor(original, tf.float32)label = tf.convert_to_tensor(lbl_hor, tf.float32)W1 = tf.Variable(tf.random_normal([5,5,1,1]))b1 = tf.Variable(0.1)W2 = tf.Variable(tf.random_normal([5,5,1,1]))b2 = tf.Variable(0.1)l1 = tf.nn.conv2d(input, W1, [1,1,1,1], 'SAME')l1 = l1 + b1l1 = tf.nn.relu(l1)l2 = tf.nn.conv2d(l1, W2, [1,1,1,1], 'SAME')l2 = l2 + b2l2 = tf.nn.relu(l2)loss = tf.square(l2 - label)loss_sum = tf.reduce_sum(loss)train_op = tf.train.AdamOptimizer(0.01).minimize(loss)sess = tf.Session()sess.run(tf.global_variables_initializer())for i in range(0, 100): sess.run(train_op)网络每次都会给出不可预测的输出,有时只是黑色。我试图将标签乘以一些常数,以便激活具有更大的权重 - 没有太大影响......你能帮我弄清楚如何训练这样的网络或找出我的代码有什么问题吗?
添加回答
举报
0/150
提交
取消