我正在尝试使用预先训练的模型来安装新的CNN,以使google Audioset与VGGish的融合开始。
这是为了我的论文,我试图理解一些东西
input_layer = Input(shape=(480, 64, 1))
cnn = Conv2D(64, (3, 3), padding='same', activation='relu', trainable=False)(input_layer)
cnn = MaxPooling2D((2, 2), strides=(2, 2), name='cnn_1')(cnn)
cnn = Conv2D(128, (3, 3), padding='same', activation='relu', trainable=False)(cnn)
cnn = MaxPooling2D((2, 2), strides=(2, 2), name='cnn_2')(cnn)
cnn = Conv2D(256, (3, 3), padding='same', activation='relu', trainable=False)(cnn)
cnn = Conv2D(256, (3, 3), padding='same', activation='relu', trainable=False)(cnn)
cnn = MaxPooling2D((2, 2), strides=(2, 2), name='cnn_3')(cnn)
cnn = Conv2D(512, (3, 3), padding='same', activation='relu', trainable=False)(cnn)
cnn = Conv2D(512, (3, 3), padding='same', activation='relu', trainable=False)(cnn)
cnn = MaxPooling2D((2, 2), strides=(2, 2), name='last_cnn')(cnn)
sound_model = Model(inputs=input_layer, outputs=cnn)
sound_model.load_weights('vggish_audioset_weights_without_fc2.h5')
x = sound_model.get_layer(name='last_cnn').output
所以我想问你:
VGGish权重通过使用输入96x64对数mel图像来计算。
我的数据集是由5秒钟的声音组成的,因此对数分辨率为480x64。我要问你:
它仍然有可能工作吗?我的意思是即使我通过480x64 log mel,权重仍在起作用?所以发生了什么事?每个96x64的权重都相同吗?
我问这是因为,当我通过VGGish标准的输入时,CNN使我进入了输出128x5嵌入。
那怎么可能呢?