Python CNN层如何添加其偏移值?

Python CNN层如何添加其偏移值?,python,tensorflow,theano,keras,conv-neural-network,Python,Tensorflow,Theano,Keras,Conv Neural Network,我需要用Keras(Tensorflow作为后端)设置的权重将CNN模型编写为Theano函数,但我不确定如何添加与每个层相关的偏差值 这个解决方案可以很好地将单个层编写为Theano函数,但我需要使用每个层的偏差来堆叠权重 我的代码的简化版本: model = Sequential([ InputLayer(batch_input_shape=(None,100,1)), Convolution1D(nb_filter=16, filter_length=8, activat

我需要用Keras(Tensorflow作为后端)设置的权重将CNN模型编写为Theano函数,但我不确定如何添加与每个层相关的偏差值

这个解决方案可以很好地将单个层编写为Theano函数,但我需要使用每个层的偏差来堆叠权重

我的代码的简化版本:

model = Sequential([

    InputLayer(batch_input_shape=(None,100,1)),
    Convolution1D(nb_filter=16, filter_length=8, activation='relu', border_mode='same', init='he_normal', input_shape=(None,100,1)),
    Convolution1D(nb_filter=32, filter_length=8, activation='relu', border_mode='same', init='he_normal'), 
    MaxPooling1D(pool_length=4),
    Flatten(),
    Dense(output_dim=32, activation='relu', init='he_normal'),
    Dense(output_dim=1, input_dim=32, activation='linear'),
])
如何将偏移权重添加到CNN层

例如,我的第一层的权重具有以下维度:(8,1,1,16)

带有尺寸偏差:(16,)

这很容易连接在一起得到尺寸:(9,1,1,16)

但对于下一层,我有维度:(8,1,16,32)

带有尺寸偏差:(32,)


如何将其合并为一个权重矩阵?要进入Theano T.signal.conv.conv2d功能?

不确定您的意思。通常卷积网络对每个特征映射都有一个偏差。你想完成什么?你想建立你的网络,然后改变你的偏见,以一个理想的值吗?不,我已经设置了我的权重,需要写在一个函数的形式类似于此,但一个CNN的形式。但我不确定CNN层和它们的偏见是如何结合在一起的。我仍然不明白你的意思。如果你想向卷积层添加偏差,你可以简单地将参数bias=True(keras 1)或use_bias=True(keras 2)传递到卷积层。我已经设置了所有权重,包括偏差。我试图以函数的形式编写我的模型,就像我在这个解决方案stackoverflow.com/questions/42792405/…中所做的那样,但是对于密集层,将层与相应的偏差结合起来是相当简单的。我只是很难理解CNN层的层权重和偏移权重是如何叠加的。如何将权重与尺寸(8、1、16、32)以及偏差与尺寸(32、)叠加?我需要以Theano函数的形式来编写它,以返回雅可比矩阵进行误差传播