【发布时间】:2016-12-01 15:49:26
【问题描述】:
我正在使用 tensorflow 并拥有以下 CNN(代码如下)。我的输入层是一个 72x72 的图像,由于有两个 maxpool 层,它输出一个 18x18 的矩阵。
现在我的问题: 是否可以为输出矩阵(18x18)中的值定义一个范围?使值仅在 [0,1] 之间?因为实际上输出矩阵应该代表一个密度图。所以我不需要高于 1 的值。
我的“groundtruth 标签”是一个 18x18 矩阵,其值仅在 [0,1] 之间。 因为我的网络还没有经过训练,所以损失非常高,因为输出矩阵中的值非常高,例如。 2379922。如果我可以提供输出值的范围,那么一开始的损失不会那么高。
感谢您的帮助:-)
weights = {'W_conv1': tf.Variable(tf.random_normal([7, 7, 1, 32])),
'W_conv2': tf.Variable(tf.random_normal([7, 7, 32, 32])),
'W_conv3': tf.Variable(tf.random_normal([5, 5, 32, 64])),
'W_conv4': tf.Variable(tf.random_normal([1, 1, 64, 1000])),
'W_conv5': tf.Variable(tf.random_normal([1, 1, 1000, 400])),
'W_conv6': tf.Variable(tf.random_normal([1, 1, 400, 1]))}
biases = {'b_conv1': tf.Variable(tf.random_normal([32])),
'b_conv2': tf.Variable(tf.random_normal([32])),
'b_conv3': tf.Variable(tf.random_normal([64])),
'b_conv4': tf.Variable(tf.random_normal([1000])),
'b_conv5': tf.Variable(tf.random_normal([400])),
'b_conv6': tf.Variable(tf.random_normal([1]))}
#x = tf.reshape(x, shape=[-1, 28, 28, 1])
#x = tf.reshape(x, shape=[-1, 72, 72, 1])
conv1 = tf.nn.relu(conv2d(x, weights['W_conv1']) + biases['b_conv1'])
conv1 = maxpool2d(conv1)
conv2 = tf.nn.relu(conv2d(conv1, weights['W_conv2']) + biases['b_conv2'])
conv2 = maxpool2d(conv2)
conv3 = tf.nn.relu(conv2d(conv2, weights['W_conv3']) + biases['b_conv3'])
conv4 = tf.nn.relu(conv2d(conv3, weights['W_conv4']) + biases['b_conv4'])
conv5 = tf.nn.relu(conv2d(conv4, weights['W_conv5']) + biases['b_conv5'])
conv6 = conv2d(conv5, weights['W_conv6']) + biases['b_conv6']
return conv6
【问题讨论】:
标签: python range tensorflow output layer