Python 如何在4D输入中应用卷积1D在一维上多次
假设我在keras中有以下层:Python 如何在4D输入中应用卷积1D在一维上多次,python,tensorflow,keras,neural-network,conv-neural-network,Python,Tensorflow,Keras,Neural Network,Conv Neural Network,假设我在keras中有以下层: def _initialize_conv_layer(name): conv1 = Convolution1D(filters=1000, kernel_size=5, activation="relu", name="conv_" + name, p
def _initialize_conv_layer(name):
conv1 = Convolution1D(filters=1000,
kernel_size=5,
activation="relu",
name="conv_" + name,
padding="valid")
conv2 = GlobalMaxPooling1D(name="max_pool_" + name)
conv3 = Activation("relu", name="act_" + name)
conv4 = Dropout(rate=0.1, name="dropout_" + name)
z = Dense(100, name="vector" + name)
return conv1, conv2, conv3, conv4, z
以及:
此外:
其中:
是维度的嵌入:嵌入的\u序列
李>(批量大小,200100)
是维度的输出:z1
(批量大小,100)
- 尺寸的
(批量大小,50、200、100)嵌入序列2
输出维度:z2
(批量大小,50,100)
Lambda
函数中应用TimeDistributed
。或者可能需要对数据进行一些重塑?对不对
知道怎么做吗
def _get_vector(self, input_, conv1, conv2, conv3, conv4, z):
i1 = conv1(input_)
i2 = conv2(i1)
i3 = conv3(i2)
i4 = conv4(i3)
vector_ = z(i4)
return vector_
conv1, conv2, conv3, conv4, z = _initialize_conv_layer("message")
z1 = _get_vector(embedded_sequences, conv1, conv2, conv3, conv4, z)
z2 = _get_vector(embedded_sequences2, conv1, conv2, conv3, conv4, z)