首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >net surgery pycaffe复制权重和重塑

net surgery pycaffe复制权重和重塑
EN

Stack Overflow用户
提问于 2016-08-10 20:32:36
回答 1查看 3.2K关注 0票数 3

我正在尝试将一个预训练模型的大小为3x3x3的层'con_1‘的学习权重复制到一个新的层'con_1_1’中,这样新层的大小将是6x3x3 (6个通道)。实际上,我正在尝试复制3x3x3到6x3x3的权重。如何使用pycaffe完成此操作。

代码语言:javascript
运行
复制
      layer name: 'con_1'
      size: 3x3x3

      new layer name: 'con_1_1'
      size: 6x3x3

      con_1_1 should be [con_1, con_1] % just concatenation of two con_1 weights
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-10 21:02:16

您必须使用.prototxt文件和.caffemodel文件读取网络。然后将权重从原始网络复制到变量中,然后将它们复制到编辑后的网络中。

代码语言:javascript
运行
复制
net = caffe.Net('path/to/conv.prototxt', 'path/to/conv.caffemodel', caffe.TEST)
W = net.params['con_1'][0].data[...]
b = net.params['con_1'][1].data[...]

net = caffe.Net('path/to/conv2.prototxt', 'path/to/conv2.caffemodel', caffe.TEST)
W_1 = numpy.concatenate(W, W, axis=2)
b_1 = numpy.concatenate(b, b, axis=0)
net.params['con_1_1'][0].data[...] = W_1
net.params['con_1_1'][1].data[...] = b_1

有关更多信息,请查看此link和此link

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38873549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档