gpt4 book ai didi

python - 如何减少VGG16中间层瓶颈特征的大小?

转载 作者:行者123 更新时间:2023-11-30 09:50:26 24 4
gpt4 key购买 nike

我正在尝试连接vgg16网络的c0nv4_3层而不是conv5_3 Here是vgg16网络的python代码。我更改了这些行:

def _image_to_head(self, is_training, reuse=False):
with tf.variable_scope(self._scope, self._scope, reuse=reuse):
net = slim.repeat(self._image, 2, slim.conv2d, 64, [3, 3],
trainable=False, scope='conv1')
net = slim.max_pool2d(net, [2, 2], padding='SAME', scope='pool1')
net = slim.repeat(net, 2, slim.conv2d, 128, [3, 3],
trainable=False, scope='conv2')
net = slim.max_pool2d(net, [2, 2], padding='SAME', scope='pool2')
net = slim.repeat(net, 3, slim.conv2d, 256, [3, 3],
trainable=is_training, scope='conv3')
net = slim.max_pool2d(net, [2, 2], padding='SAME', scope='pool3')
net = slim.repeat(net, 3, slim.conv2d, 512, [3, 3],
trainable=is_training, scope='conv4')
net = slim.max_pool2d(net, [2, 2], padding='SAME', scope='pool4')
net = slim.repeat(net, 3, slim.conv2d, 512, [3, 3],
trainable=is_training, scope='conv5')

self._act_summaries.append(net)
self._layers['head'] = net

return net

至:

def _image_to_head(self, is_training, reuse=False):
with tf.variable_scope(self._scope, self._scope, reuse=reuse):
net = slim.repeat(self._image, 2, slim.conv2d, 64, [3, 3],
trainable=False, scope='conv1')
net = slim.max_pool2d(net, [2, 2], padding='SAME', scope='pool1')
net = slim.repeat(net, 2, slim.conv2d, 128, [3, 3],
trainable=False, scope='conv2')
net = slim.max_pool2d(net, [2, 2], padding='SAME', scope='pool2')
net = slim.repeat(net, 3, slim.conv2d, 256, [3, 3],
trainable=is_training, scope='conv3')
net = slim.max_pool2d(net, [2, 2], padding='SAME', scope='pool3')
net = slim.repeat(net, 3, slim.conv2d, 512, [3, 3],
trainable=is_training, scope='conv4')

self._act_summaries.append(net)
self._layers['head'] = net

return net

如上所示,我删除了conv5和pool4层;因为我的物体很小,我希望得到更好的结果,但结果却变得更糟。我想我需要在 conv4 的末尾添加一个 deconv 层?或者还有别的办法吗?

谢谢

最佳答案

也有一些方法可以减少瓶颈特征的长度。

为什么不添加反卷积:

  • 您将使用随机值初始化反卷积层
  • 您没有对网络进行微调,您只是在网络中进行前向传播。
  • 因此 deconv 的输出将随机化 conv4 的特征

池化层:

  • 平均池化(根据窗口大小,它将返回该窗口的平均值)。因此,如果让 window(2,2) 与值[3,2,4,3] 只会产生一个值:6

  • MaxPool(根据窗口大小,将得出该窗口的最大值)。因此,如果假设 window(2,2) 的值为 [3,2,4,3],则只会产生一个值:3

查看池化层 here

关于python - 如何减少VGG16中间层瓶颈特征的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45944032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com