一、需求
- 语音增强迁移训练时,希望在CNN后面接2层LSTM
- 但是后面几层CNN(VGG16)的feature map尺寸太小,怕LSTM学不到东西
- 恢复前7层CNN的权重,然后第7层的输出reshape之后作为LSTM的输入
- 恢复但不冻结
二、步骤
参考tf.train.saver文档
参考StackOverflow
原网络结构如下:
for layer_id in range(n_layers):
n_channels = base_channels * (2 ** (layer_id // blk_size))
if layer_id == 0:
net = slim.conv2d(input_speech, num_outputs=n_channels, kernel_size=[1, ksz], stride=[1, 2],
activation_fn=lrelu, normalizer_fn=norm_fn, reuse=reuse, scope='loss_conv_%d' % layer_id)
layers.append(net)
elif layer_id < n_layers - 1:
net = slim.conv2d(layers[-1], n_channels, [1, ksz], [1, 2], activation_fn=lrelu, normalizer_fn=norm_fn,
reuse=reuse, scope='loss_conv_%d' % layer_id)
layers.append(net)
else:
net = slim.conv2d(layers[-1], n_channels, [1, ksz], activation_fn=lrelu, normalizer_fn=norm_fn,
reuse