首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Caffe: python中的级联层(L.Concat)

问Caffe: python中的级联层(L.Concat)
EN

Stack Overflow用户
提问于 2015-12-30 03:54:19
回答 3查看 2.8K关注 0票数 0

我想知道如何在python中将两个层连接成一个。更具体地说,我想加入一个具有非可视数据的池(次抽样)层的输出,然后将一个完全连接的层放在上面。

假设次采样层将输出形状为64*2*2的神经元(如果忽略caffe batch_size),并且我想要加入的数据层只包含一个特性(速度浮动从0到1)。

下面是一些用于将您置于上下文中的虚拟代码:

代码语言:javascript
复制
import numpy as np

import caffe
from caffe import layers as L
from caffe import params as P

# ...

n.conv4 = L.Convolution(n.relu3, kernel_size=3, num_output=64, weight_filler=dict(type='xavier'))
n.pool4 = L.Pooling(n.conv4, kernel_size=3, stride=2, pool=P.Pooling.AVE)
# Data of shape `batch_size*64*2*2` out of this layer (if dropout ignored). 
n.relu4 = L.ReLU(n.pool4, in_place=True)

###
# This is what I want to know how to do, yet this might not even be
# the good way to call the function:
n.join_speed = L.Concat([n.relu4, n.data_speed], in_place=True)
####

n.ip1 = L.InnerProduct(n.join_speed, num_output=512, weight_filler=dict(type='xavier'))
n.sig1 = L.Sigmoid(n.ip1, in_place=True)

# ...
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-16 01:59:48

我不确定你是否找到了你的问题的答案,但如果你还没有找到答案,你可能想尝试以下几点:

代码语言:javascript
复制
bottom_layers = [n.relu4, n.data_speed]
n.join_speed = L.Concat(*bottom_layers)

以上允许您通过pycaffe/python层调用Concat层。

票数 1
EN

Stack Overflow用户

发布于 2016-08-16 11:08:57

我也在尝试做一个python生成的反转换层。

代码语言:javascript
复制
n.deconv8 = L.Deconvolution(n.conv7)

工作正常,但是

代码语言:javascript
复制
n.deconv8 = L.Deconvolution(n.conv7,kernel_size=2)

命中

代码语言:javascript
复制
AttributeError: 'LayerParameter' object has no attribute 'kernel_size'

也同样适用于

代码语言:javascript
复制
n.deconv8 = L.Deconvolution(n.conv7,num_output=1024)

那么,是否有一些新的语法来表示这些参数(也是weight_filler、bias_filler、stride)?

票数 0
EN

Stack Overflow用户

发布于 2021-06-01 01:25:11

L.Concat(top1,top2,top3)为我工作

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

https://stackoverflow.com/questions/34522668

复制
相关文章

相似问题

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