TensorFlow的初始-V3实施和"重新思考开始之间的差异"纸

时间:2017-07-31 08:16:04

标签: python tensorflow neural-network

我目前正在尝试了解TensorFlow附带的Inception-V3网络的实现:
[1] https://github.com/tensorflow/models/blob/master/inception/inception/slim/inception_model.py
[2] https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/slim/python/slim/nets/inception_v3.py
这两个实现都是在TensorFlow上使用Slim编写的。

虽然两种实现背后的体系结构似乎几乎相同(除了最后一层的细微差别,它是flatten + fclconv(1x1) + flatten),但与原始{{3}相比存在一些差异。我无法弄清楚......

  1. 它从一开始就开始,实现使用:
    (我将使用[2]中使用的命名约定)
    conv3: conv([1, 1], 80, stride = 1, pad = 'valid')
    conv4: conv([3, 3], 192, stride = 1, pad = 'valid')
    pool2: pool([3, 3], stride = 2 )
    导致大小为35 x 35 x 192的输出。

    但根据论文,它应该是:
    conv3: conv([3, 3], 80, stride = 1, pad = 'valid')
    conv4: conv([3, 3], 192, stride = 2, pad = 'valid')
    conv5: conv([3, 3], 288, stride = 1, pad = 'same' )
    导致大小为35 x 35 x 288的输出。

  2. 对于Inception模块,本文给出了以下架构(建议使用10型模块"适当时"):
    3x Inception type-5
    5x Inception type-6
    2x Inception type-7

    实施使用:
    3x Inception type-5
    1x Inception type-10
    4x Inception type-6
    1x Inception type-10
    2x Inception type-7
    导致11个而不是10个Inception模块。

    此外,两个Inception type-10模块彼此不同。但我认为这篇论文在某处提到过。

  3. 如果我没有弄错的话,Inception type-5模块的架构应该与vanilla Inception模块相同(如在#34; Going Deeper"论文中),{{1除外卷积,它被分解为两个堆叠的[5 x 5]卷积。
    但是,在这两种实现中,[3 x 3]卷积都被两个堆叠的[3 x 3]卷积所取代,保持[3 x 3]卷积。


  4. 那么,我错过了一些明显的东西吗?在阅读论文或代码时我是不是很草率?这是艺术自由吗?还是某种神奇的事情发生了?



    更新

    在通过paper将两个Slim模型与Keras模型进行比较时,我发现了一个神秘的" model.txt"。其他一些Stack Overflow线程指向"重新思考Inception"的arxiv页面。论文,可以在其他资源中找到它(下载链接:[5 x 5])。

    所以我想我只会使用" model.txt"中的描述。文件。

    但是,我仍然希望对这些差异进行彻底的解释。

0 个答案:

没有答案
相关问题