相关疑难解决方法(0)

Tensorflow 上的全卷积网络 (FCN)

我正在尝试在 tensorflow 上重新实现 FCN。我已经实现了反卷积层。

up8_filter = tf.Variable(tf.truncated_normal([64, 64, 21, 21]))
prob_32 = tf.nn.conv2d_transpose(score, up8_filter, output_shape = [batch_size, 224, 224, 21], strides = [1, 32, 32, 1])
tf.histogram_summary('fc8_filter', up8_filter)
Run Code Online (Sandbox Code Playgroud)

训练看起来很好,损失值下降直到变成Nan. 我检查了张量板,它表明up8_filter似乎有分歧。

在此处输入图片说明

有没有办法规范 Tensorflow 中的权重值?
我试过以下方法

  1. 较低的学习率
  2. 零均值图像

我没有按照 FCN 实现将图像填充到 100 像素,因为 Tensorflowconv2d不支持它。我使用caffe-tensorflow转换了 VGG 权重,我无法改变它的网络结构。

我很抱歉这个令人困惑的问题,有很多事情要出错,我不知道从哪里开始。

损失值的片段。

第 1 步:损失 = 732171599872.00
第 10 步:损失 = 391914520576.00
第 20 步:损失 = 32141299712.00
第 30 步:损失 = 1255705344.00

[更新]:

损失函数 loss32

 loss = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits( …
Run Code Online (Sandbox Code Playgroud)

tensorflow

3
推荐指数
1
解决办法
7485
查看次数

动态张量对齐/裁剪

我在 TensorFlow 上实现了全卷积网络。它使用编码器-解码器结构。训练时,我总是使用相同的图像大小(224x224,使用随机裁剪)并且一切正常。

在干扰阶段,我想一次预测一张图像,因为我想使用完整图像(未裁剪)。例如,这样的图像有 size [406,256]。这是问题。在 Encoder-Decoder 架构中,我添加了两个 tesors (z = x + y)。训练时,两个张量的大小匹配。在预测我的单个图像时,大小不匹配(张量大小:[1,47,47,64]vs [1,46,46,64])。我认为这是由 Conv 和 Pool 层中的一些舍入造成的。

我应该改变我的架构以适用于我想要的任何图像尺寸?我应该更改舍入参数吗?或者添加张量的“裁剪”?

架构实现链接:https : //gist.github.com/melgor/0e43cadf742fe3336148ab64dd63138f (问题出现在第166行)

tensorflow

2
推荐指数
1
解决办法
1329
查看次数

标签 统计

tensorflow ×2