【问题标题】:How to modify the Imagenet Caffe Model?如何修改 Imagenet Caffe 模型?
【发布时间】:2017-04-24 01:00:16
【问题描述】:

我想修改 ImageNet caffe 模型,如下所述:

由于时间网络的输入通道数与 空间网络(20 vs. 3),我们平均 ImageNet 模型过滤器 第一层跨通道,然后复制平均结果 20 次作为时间网络的初始化。

我的问题是如何获得上述结果?如何打开 caffe 模型才能对其进行这些更改?

我阅读了网络手术教程,但没有涵盖所需的程序。

感谢您的帮助!

阿迈耶

【问题讨论】:

    标签: deep-learning caffe pycaffe


    【解决方案1】:

    Net Surgery tutorial 应该为您提供涵盖此内容所需的基础知识。但让我更详细地解释您需要执行的步骤:

    1. 准备.prototxt 网络架构:您需要两个文件:现有的 ImageNet .prototxt 文件和新的时间网络架构。您应该使所有层除了两个网络中的第一个卷积层都相同,包括层的名称。这样,您可以使用 ImageNet .caffemodel 文件自动初始化权重。

      由于第一个 conv 层具有不同的大小,因此您必须在 .prototxt 文件中为其指定一个与 ImageNet 文件中不同的名称。否则,Caffe 也会尝试使用现有权重初始化该层,这将失败,因为它们具有不同的形状。 (这就是在编辑您的问题时发生的事情。)只需将其命名为例如conv1b 并相应地更改对该层的所有引用。

    2. 加载ImageNet网络进行测试,这样就可以从模型文件中提取参数:

      net = caffe.Net('imagenet.prototxt', 'imagenet.caffemodel', caffe.TEST)
      
    3. 从这个加载的模型中提取权重。

      conv_1_weights = old_net.params['conv1'][0].data
      conv_1_biases = old_net.params['conv1'][1].data
      
    4. 平均各个渠道的权重:

      conv_av_weights = np.mean(conv_1_weights, axis=1, keepdims=True)
      
    5. 将新网络与旧的.caffemodel 文件一起加载,因为除了第一层之外的所有层都直接使用 ImageNet 中的权重:

      new_net = caffe.Net('new_network.prototxt', 'imagenet.caffemodel', caffe.TEST)
      
    6. 将计算出的平均权重分配给新网络

      new_net.params['conv1b'][0].data[...] = conv_av_weights
      new_net.params['conv1b'][1].data[...] = conv_1_biases
      
    7. 将您的权重保存到一个新的.caffemodel 文件中:

      new_net.save('new_weights.caffemodel')
      

    【讨论】:

    • 感谢您分享您的知识。我现在正在测试它。我会尽快向您更新它的进展情况。感谢您的帮助。
    • 我遇到了一个错误。我已根据您的建议使用我使用的代码更新了主要帖子,以便更好地查看问题。稍后我将删除代码以免混淆新读者。我在那里做错了什么?谢谢!
    • 我设法克服了这个错误,但又遇到了另一个错误。我已经更新了主帖。谢谢!
    • @AMayer 我已经编辑了我的答案(第 1 步和第 6 步中的代码)来描述如何修复错误。如果这能解决您的问题,请告诉我。
    • 它修复了上一个错误,但现在我收到以下错误:new_net.params['conv1b'][0].data[...] = conv_av_weights ValueError: could not broadcast input array from将(96,11,11)整形为(96,20,11,11)
    猜你喜欢
    • 2015-08-04
    • 2015-07-27
    • 2017-12-11
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    • 2016-11-03
    相关资源
    最近更新 更多