亲爱的
如何在Keras中连接四个不同的张量1D?输出以下错误:
ValueError: Input 0 is incompatible with layer max_pooling1d_72: expected ndim=3, found ndim=2
错误在最后一行,请帮助我
示例:
input_coder = Input(shape=(256,1))
######################### MAIN ##########################
output = Convolution1D(256,9,padding='same',strides=1)(input_coder)
output =LeakyReLU(alpha=leaky_relu_alpha)(output)
output = Convolution1D(256,1,padding='same',strides=1)(output)
output = Convolution1D(256,9, padding='same',strides=1)(output)
output = BatchNormalization()(output)
output = LeakyReLU(alpha=leaky_relu_alpha)(output)
output = MaxPooling1D(pool_size=(2))(output)
############################ INCEPTION BLOCK ##########################
incept1 = Convolution1D(1,1,padding='same')(output)
incept1 =Flatten()(incept1)
incept2 = Convolution1D(1,1,padding='same')(output)
incept2= LeakyReLU(alpha=leaky_relu_alpha)(incept2)
incept2 = Convolution1D(1,3,padding='same')(incept2)
incept2= LeakyReLU(alpha=leaky_relu_alpha)(incept2)
incept2 =Flatten()(incept2)
incept3 = Convolution1D(1,1,padding='same')(output)
incept3= LeakyReLU(alpha=leaky_relu_alpha)(incept3)
incept3 = Convolution1D(1,5,padding='same')(incept3)
incept3= LeakyReLU(alpha=leaky_relu_alpha)(incept3)
incept3 =Flatten()(incept3)
incept4 = MaxPooling1D(pool_size=2, strides=1)(output) # pool size in paper=3
incept4 = Convolution1D(1,1,padding='same')(incept4)
incept4 =Flatten()(incept4)
inception1=Concatenate()([incept4,incept1, incept2, incept3])
inception1 = BatchNormalization()(inception1)
inception1 = LeakyReLU(alpha=leaky_relu_alpha)(inception1)
inception1 = MaxPooling1D(pool_size=(2))(inception1)
非常感谢
答案 0 :(得分:0)
关于连接张量的问题似乎没有什么混乱,据我了解,您面临的是不可比较的层问题,可以通过在inception1层的最后一个轴上扩展尺寸来纠正此问题。
inception1 = LeakyReLU(alpha=leaky_relu_alpha)(inception1)
import tensorflow as tf
inception1 = tf.expand_dims(inception1, axis = -1) # expand dimension along last axis
inception1 = MaxPooling1D(pool_size=(2))(inception1)
答案 1 :(得分:0)
是的,这是计算资源的问题。我的代码需要32G的RAM。