我想知道如何在python中将两个层连接成一个。更具体地说,我想加入一个具有非可视数据的池(次抽样)层的输出,然后将一个完全连接的层放在上面。
假设次采样层将输出形状为64*2*2的神经元(如果忽略caffe batch_size),并且我想要加入的数据层只包含一个特性(速度浮动从0到1)。
下面是一些用于将您置于上下文中的虚拟代码:
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)
# ...发布于 2016-02-16 01:59:48
我不确定你是否找到了你的问题的答案,但如果你还没有找到答案,你可能想尝试以下几点:
bottom_layers = [n.relu4, n.data_speed]
n.join_speed = L.Concat(*bottom_layers)以上允许您通过pycaffe/python层调用Concat层。
发布于 2016-08-16 11:08:57
我也在尝试做一个python生成的反转换层。
n.deconv8 = L.Deconvolution(n.conv7)工作正常,但是
n.deconv8 = L.Deconvolution(n.conv7,kernel_size=2)命中
AttributeError: 'LayerParameter' object has no attribute 'kernel_size'也同样适用于
n.deconv8 = L.Deconvolution(n.conv7,num_output=1024)那么,是否有一些新的语法来表示这些参数(也是weight_filler、bias_filler、stride)?
发布于 2021-06-01 01:25:11
L.Concat(top1,top2,top3)为我工作
https://stackoverflow.com/questions/34522668
复制相似问题