卷积网络的奇怪图
Strange graph for convolutional networks
当我构建一个卷积模型时,我在 TensorBoard 中得到了一个非常奇怪的结果图。可以看到,第二个卷积层不仅得到了池化层作为输入,还有另外一个卷积层。
在我看来,根据我的网络研究,这应该是一个直线垂直图,每层一个输入和一个输出(除了第一个和最后一个)。
我是不是做错了什么或者第二个输入来自哪里?
非常感谢,
托拜厄斯
使用的模型函数:
def model_fn(features, labels, mode, params):
is_training = (mode == tf.estimator.ModeKeys.TRAIN)
reshaped_features = tf.reshape(features, (-1, features.shape[1], 1))
# Yes, I have only 1d input to my conv network
conv1 = tf.layers.conv1d(reshaped_features, filters=10, kernel_size=5)
pool1 = tf.layers.max_pooling1d(conv1, pool_size=3, strides=1)
conv2 = tf.layers.conv1d(pool1, filters=10, kernel_size=5)
conv_2_flat = tf.contrib.layers.flatten(conv2)
logits = fully_connected(conv_2_flat, 2)
if mode == tf.estimator.ModeKeys.PREDICT:
return tf.estimator.EstimatorSpec(
mode=mode,
predictions={'logits': logits})
loss = tf.losses.sparse_softmax_cross_entropy(labels=labels, logits=logits)
eval_metric_ops = {
'accuracy': tf.metrics.mean(tf.nn.in_top_k(predictions=logits, targets=labels, k=1)),
}
optimizer = tf.train.AdamOptimizer(params['learning_rate'])
training_op = optimizer.minimize(loss)
return tf.estimator.EstimatorSpec(
mode=mode,
loss=loss,
train_op=training_op,
eval_metric_ops=eval_metric_ops)
结果图:
我曾经在 Tensorboard 中也出现过非常奇怪的连接。我认为这只是显示中的错误,而不是架构中的实际错误。
为图层指定唯一的名称解决了我的问题。使用名称参数声明图层:
conv1 = tf.layers.conv1d(reshaped_features, filters=10, kernel_size=5, name="conv1")
如果这能解决您的问题,请告诉我。
当我构建一个卷积模型时,我在 TensorBoard 中得到了一个非常奇怪的结果图。可以看到,第二个卷积层不仅得到了池化层作为输入,还有另外一个卷积层。 在我看来,根据我的网络研究,这应该是一个直线垂直图,每层一个输入和一个输出(除了第一个和最后一个)。
我是不是做错了什么或者第二个输入来自哪里?
非常感谢, 托拜厄斯
使用的模型函数:
def model_fn(features, labels, mode, params):
is_training = (mode == tf.estimator.ModeKeys.TRAIN)
reshaped_features = tf.reshape(features, (-1, features.shape[1], 1))
# Yes, I have only 1d input to my conv network
conv1 = tf.layers.conv1d(reshaped_features, filters=10, kernel_size=5)
pool1 = tf.layers.max_pooling1d(conv1, pool_size=3, strides=1)
conv2 = tf.layers.conv1d(pool1, filters=10, kernel_size=5)
conv_2_flat = tf.contrib.layers.flatten(conv2)
logits = fully_connected(conv_2_flat, 2)
if mode == tf.estimator.ModeKeys.PREDICT:
return tf.estimator.EstimatorSpec(
mode=mode,
predictions={'logits': logits})
loss = tf.losses.sparse_softmax_cross_entropy(labels=labels, logits=logits)
eval_metric_ops = {
'accuracy': tf.metrics.mean(tf.nn.in_top_k(predictions=logits, targets=labels, k=1)),
}
optimizer = tf.train.AdamOptimizer(params['learning_rate'])
training_op = optimizer.minimize(loss)
return tf.estimator.EstimatorSpec(
mode=mode,
loss=loss,
train_op=training_op,
eval_metric_ops=eval_metric_ops)
结果图:
我曾经在 Tensorboard 中也出现过非常奇怪的连接。我认为这只是显示中的错误,而不是架构中的实际错误。
为图层指定唯一的名称解决了我的问题。使用名称参数声明图层:
conv1 = tf.layers.conv1d(reshaped_features, filters=10, kernel_size=5, name="conv1")
如果这能解决您的问题,请告诉我。