您的位置:首页 > 理论基础 > 计算机网络

图像风格转移中神经网络模型的使用

2017-05-31 17:43 330 查看

Neural Style 中使用其他的神经网络模型

Taylor Guo, 2017年5月31日

Using Other Neural Models

图像风格转移中VGG-19和NIN模型都可以用,还有其他的模型也可以使用。这里就把它们列出来,说明它们能做什么,什么时候使用它们,怎么样使用,它们的性能怎么样,去哪下载。

神经网络模型

神经网络模型比较复杂,有人认为这是人工智能的开始,有人认为这些只是一些小技巧。但对神经网络风格转移,它们可以将图像转移为人画的。

训练好的模型 与 未训练的模型

在神经网络风格转移中,神经网络需要用图像进行训练才能使用。这类似于计算机没有软件或有软件的差别,也就是一个神经网络结构和完全训练好的模型的区别。

比如,VGG 19,是指一个用prototxt文件定义好的神经网络结构。谈到神经网络风格转移时,VGG 19模型就指的是一个在ILSVRC图像数据集上用以对图像进行分类任务上训练好的网络。应该可以注意到,如果VGG 19网络训练任务不同,会使得它们在神经风格转移中表现也有所不同。一个用不同数据训练好的模型对图像中特征的响应也会不同。这里将会讲解VGG 16和VGG 19上几个不同的训练模型。它们有相同的结构(VGG 16 或 VGG 19, 所以有相同的prototxt文件),但.caffemodel文件中包含的权重是不同的,导致模型以不同的方式工作。权重指的是影响人工神经元运行的权重,而不是神经网络风格转移中的权重参数。

安装新模型

神经网络风格转移可以以.caffemodel格式的模型方式工作,除非它们包含的特征是torch不支持的,(比如AlexNet需要GROUP)。

一个模型有两个文件:一个.caffemodel 和一个 .prototxt ,.caffemodel 文件就是模型本身, .prototxt描述的是神经网络的结构。这些模型可以拷贝到任何神经网络风格转移项目的目录中,推荐把它们拷贝到主项目的/model目录下,使得文件更有组织一些。如果要拷贝到别处,需要修改命令。

注意:如果要用更多的模型做实验,在/models目录下创建子目录会更好一些,因为没有约定俗成的方式来命名模型,所以可能会找到几个不同的文件称为model.caffemodel和train.prototxt。

基本使用

为了使用刚安装的模型,需要用参数-model_file models/[modelname]和-proto_file models/[protoname]来调用它们,其中 [modelname] 和[protoname]是完整的文件名带扩展名。

然后,用 -content_layers 和-style_layers 参数,调用不同的层,每个模型要调用哪个层可能会有差别。也可以在.prototxt文件中查看哪个层被调用了。比如:

layers {

bottom: "conv1_1"

top: "conv1_1"

name: "relu1_1" // 这里的名字是: -content_layers 或 -style_layers

type: RELU //  需要做 RELU 的类型

}


写下所有的类型:ReLU层,用逗号分开,应该像这个样子:

-content_layers relu2,relu5,relu8,relu11 -style_layers relu2,relu5,relu8,relu11


注意:必须对内容和风格调用相同的层。

可以根据需要或想要做的实验,随意使用或忽略内容和风格。但是必须明确给风格和内容指定层。注意:越高的层可能损失值越小,所以当需要增加内容权重时,需要忽略比较低的层。

NIN 例子

th neural_style.lua -style_image [image1] -content_image [image2] -output_image [outimage] -model_file models/nin_imagenet_conv.caffemodel -proto_file models/train_val.prototxt -content_layers relu0,relu3,relu7,relu12 -style_layers relu0,relu3,relu7,relu12


模型列表

模型描述:

模型文件: fullmodelname.caffemodel

prototxt文件: fullprotoname.prototxt

使用的Layers: relulayer#, relulayer#, relulayer#, relulayer#, relulayer#

命令:

th neural_style.lua -style_image [image1] -content_image [image2] -output_image [outimage] -model_file models/fullmodelname.caffemodel -proto_file models/fullprotoname.prototxt -content_layers relulayer#,relulayer#,relulayer#,relulayer#,relulayer# -style_layers relulayer#,relulayer#,relulayer#,relulayer#,relulayer#


牛津视觉几何组VGG-19

神经网络风格转移中的标准caffemodel。无需调整就能做出好的结果,但需要使用大量小图片。

标准化版本如下:

Model file:      VGG_ILSVRC_19_layers.caffemodel 或 vgg_normalised.caffemodel

Proto file:      VGG_ILSVRC_19_layers_deploy.prototxt

Layers used:     relu1_1,relu2_1,relu3_1,relu4_1,relu5_1


这里查看

DeepLab的DeepLab Pre-Trained Model

图像使用量与VGG-16相当。如果只使用3层网络,结果与PASCAL VOC FCN-32s类似,但可以生成更高分辨率的图像。

Model file:      model.caffemodel

Proto file:      deploy_x30.prototxt

Layers used:     relu5_3,relu7,relu5_2,relu5_1,relu4_1,relu3_3,relu3_1,relu2_2,relu1_2,relu1_1


这里下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  神经网络
相关文章推荐