我试图了解我的模型在第一个卷积层(conv1d)中学到了什么,但没有使用keras,而是从模型中获取了滤波器的权重,并尝试使用np.convolve将其与输入向量进行卷积(),但结果却有所不同。
我用K.function(model,input,layernum)得到模型卷积结果, 和普通的卷积通过np.conolve(layer_weights,input)
这是我的模特
def basenet2(input_shape, output_shape):
input = Input(shape=input_shape)
norm = BatchNormalization()(input)
conv1 = Conv1D(8, kernel_size=40, padding='same', use_bias=False)(input)
activation1 = LeakyReLU(alpha=0)(conv1)
maxpool1 = MaxPool1D(pool_size=POOL_SIZE, padding='same')(activation1)
conv2 = Conv1D(16, kernel_size=20, padding='same', use_bias=False)(maxpool1)
activation2 = LeakyReLU(alpha=0)(conv2)
maxpool2 = MaxPool1D(pool_size=POOL_SIZE, padding='same')(activation2)
conv3 = Conv1D(32, kernel_size=20, padding='same', use_bias=False)(maxpool2)
activation3 = LeakyReLU(alpha=0)(conv3)
maxpool3 = MaxPool1D(pool_size=POOL_SIZE, padding='same')(activation3)
conv4 = Conv1D(32, kernel_size=5, padding='same', use_bias=False)(maxpool3)
maxpool4 = MaxPool1D(pool_size=POOL_SIZE, padding='same')(conv4)
activation4 = LeakyReLU(alpha=0)(maxpool4)
flatten = Flatten()(activation4)
dense1 = Dense(output_shape, activation='relu')(flatten)
return Model(input, dense1)
我想从模型中获取过滤器宽度,并将其与输入向量进行卷积,并得到与前馈输入向量时得到的结果相同的结果。 也许conv1d定义错误?