【发布时间】:2019-01-09 16:08:39
【问题描述】:
我正在尝试按照paper 中的描述训练对象检测模型
有 3 个全连接层,有 512、512、25 个神经元。来自最后一个卷积层的 16x55x55 特征图被馈送到全连接层以检索适当的类。在这个阶段,由 (16x1x1) 描述的每个网格都被馈送到全连接层,以将网格分类为属于 25 个类之一。结构见下图
我正在尝试调整 TF MNIST 分类教程中的代码,我想知道是否可以像下面的代码 sn-p 那样将每个网格的损失求和并使用它来训练模型权重.
flat_fmap = tf.reshape(last_conv_layer, [-1, 16*55*55])
total_loss = 0
for grid of flat_fmap:
dense1 = tf.layers.dense(inputs=grid, units=512, activation=tf.nn.relu)
dense2 = tf.layers.dense(inputs=dense1, units=512, activation=tf.nn.relu)
logits = tf.layers.dense(inputs=dense2, units=25)
total_loss += tf.losses.sparse_softmax_cross_entropy(labels=labels, logits=logits)
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.001)
train_op = optimizer.minimize(
loss=total_loss,
global_step=tf.train.get_global_step())
return tf.estimator.EstimatorSpec(mode=tf.estimator.ModeKeys.TRAIN, loss=total_loss, train_op=train_op)
在上面的代码中,我认为每次迭代都会创建 3 个新层。但是,我希望在对一个网格和另一个网格进行分类时保留权重。
【问题讨论】:
标签: tensorflow deep-learning object-detection tensorflow-estimator