[MXnet] Neural Art

MXnet的学习笔记,这次主要是example中Neural Art相关的内容。

简介


MXnet的Demo主要集中在基于CNN的各种网络结构在不同数据集上的实现和效果,也有一些RNN(LSTM)和 auto encoder 的部分。CNN的example里面一个比较有意思的例子是Neural Art,基于A Neural Algorithm of Artistic Style by Leon A. Gatys, Alexander S. Ecker, and Matthias Bethge这篇文章实现的一个提取输入图像的“风格”,并将其赋予另一个输入图像以得到风格化的图像输出。就像这样子

输入:梵高的“星夜”风格和一张风景图片
输出:“星夜”风的风景图

网络结构


文章的网络结构选择的是Oxford Visual Geometry Group 这篇 Very deep convolutional networks for large-scale image recognition 文章中描述的vgg网络。

vgg继承了LeNet以及AlexNet的一些框架,尤其是跟AlexNet框架非常像,vgg也是5个group的卷积、2层Full Connect图像特征、一层Full Connect分类特征,可以看做和AlexNet一样总共8个part。根据前5个卷积group,每个group中的不同配置,论文中给出了A~E这五种配置

vgg卷积group不同配置列表

其中最复杂的配置E(即vgg19,根据论文中所述参数个数达到了1.44亿)在ILSVRC2012分类任务上将top-5的错误率降到了7.3%。

vgg在ILSVRC-2012的结果,vgg19和vgg16分别获得了一、二名

MXnet example 中的使用方法


首先在 ~/mxnet/example/neural-art 文件夹下执行

./download.sh

查看download.sh文件可以看到,主要是下载了需要的网络参数vgg19.params以及样例输入图片(style对应的starry_night和content)。

#!/bin/bash

mkdir -p model
cd model
wget https://github.com/dmlc/web-data/raw/master/mxnet/neural-style/model/vgg19.params
cd ..

mkdir -p input
cd input
wget https://github.com/dmlc/web-data/raw/master/mxnet/neural-style/input/IMG_4343.jpg
wget https://github.com/dmlc/web-data/raw/master/mxnet/neural-style/input/starry_night.jpg
cd ..

mkdir -p output

然后执行

python run.py

进行训练。

可能遇到的问题


如果MXnet只是刚部署好还没有跑过什么应用的话,可能会出现错误:

ImportError: No module named skimage

缺少scikit-image包,这时只需要执行

pip install scikit-image

安装即可。
还有可能会出现

ValueError: unknown locale: UTF-8

这时需要在 ~/.bash_profile 中添加以下内容

export LANG="en_US.UTF-8"
export LC_COLLATE="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
export LC_MESSAGES="en_US.UTF-8"
export LC_MONETARY="en_US.UTF-8"
export LC_NUMERIC="en_US.UTF-8"
export LC_TIME="en_US.UTF-8"
export LC_ALL=

然后执行

source ~/.bash_profile

即可。

训练参数的指定


由于在自己的MacBook Air上实验,MXnet在安装时就默认没有使用GPU,因此在运行时需要指定参数

python run.py --gpu -1

表示只使用CPU训练。

训练效果


只使用CPU训练大概每次迭代需要35秒左右,根据notebook中的介绍,大概在159次迭代的时候两次迭代之间的差距比例才会小于0.005,得到类似于上面的输出结果。
由于只是初步测试,因此设定最大迭代次数为10

python run.py --gpu -1 --max-num-epochs 10

10次迭代后最后两次迭代的相对差距为0.120292,训练结果的话……

10次迭代的结果

可见迭代次数还是不够啊!

后来又跑了一次,设定每次迭代都把生成的图片输出,搞了一个gif看看效果

python run.py --gpu -1 --save-epochs 1
多次迭代的结果

最后迭代的效果就还不错看

第148次的迭代结果

后续


目前只是把MXnet中Neural Art的example跑通看了一下,因为example中image classification里面实现了非常多的网络结构,但基本上都是MNIST数据在测试,没有多大意思,于是先试了一下这个看起来比较有意思的示例。
如果还有后续工作的话,应该就是看看代码吧!粗略瞄了一眼也不是很复杂的样子。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容

  • MXnet的学习笔记,这次主要是MXnet提供的example的综述介绍。关于MXnet在OSX下的编译安装,可以...
    ToeKnee阅读 8,238评论 1 13
  • 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com...
    SnailTyan阅读 12,261评论 3 13
  • 葡萄架,葡萄藤,葡萄醉梦中。串串盈盈紫,颗颗紫中红。小娃笑声生!
    Oak水木阅读 140评论 0 0
  • 2016-8-29-38 《不抱怨的世界》 正文: 如果我们不刻意去选择自己要过什么样的人生,就会跟着其他人的脚步...
    潍坊谷德DDM徐芳阅读 201评论 4 0
  • 随风肆意而飞的小雨 撞击到房檐 顺势而下 叮咚,叮咚,叮咚 惬意畅想的石头一愣 慢慢地附耳聆听 叮咚,叮咚,叮咚 ...
    云隐雾轻阅读 636评论 0 1