我正在使用VGG19模型进行神经风格转换。我试图跟随论文:一种艺术风格的神经算法(https://arxiv.org/pdf/1508.06576.pdf),并尝试使用每个卷积层的特征图重建图像,如下图所示
我已经提取了卷积层的特征图,如下面的代码所示
vgg = VGG16(include_top = True, weights = "imagenet")
model_layer_names = ["block1_conv1","block1_conv2","block2_conv1","block2_conv2","block3_conv1","block3_conv2","block3_conv3","block4_conv1",
"block4_conv2","block4_conv3","block5_conv1","block5_conv2","block5_conv3"]
layer_ouputs = [vgg.get_layer(layer).output for layer in model_layer_names]
viz_model = Model(inputs = vgg.input, outputs = layer_ouputs)
feature_map_preds = viz_model.predict(style_img)
我能够将特征图绘制为图像。但我想使用功能贴图打印输入图像(如上面的内容和样式表示图像),我无法将通道(64128256512)转换为3个通道。有人能帮我一下吗
非常感谢您的评论和帮助
我也有同样的问题!我最终找到了答案: 将内容权重设置为零,将样式权重设置为某个较大的正数-我使用了1000,但看看什么适合您。然后使用缩放到0到255之间的白噪声阵列对其进行初始化:
然后,根据要重建的样式级别,设置样式图层的权重。要从conv1重建(第一个样式重建),请使用:
或者要从conv1和conv2(第二种样式重建)重建,请使用:
等
然后
然后运行梯度下降,它应该收敛到样式重建
相关问题 更多 >
编程相关推荐