neural-style 官方地址:这个是使用torch7实现的;torch7安装比较麻烦.我这里使用的是大神使用TensorFlow实现的https://github.com/anishathalye/neural-style
1. 安装
我的操作系统是win10,装了Anaconda,TensorFlow包是通过pip安装的,中间没什么可说的.具体看TensorFlow官网就可以了.
2. 使用
python neural_style.py --content <content file> --styles <style file> --output <output file>
把参数替换成自己的,运行这个语句就能跑起来,因为我的电脑的显卡不是NVIDIA的,只能用CPU跑,特别慢,一张图片跑了三个小时.出来的效果跟大神在github上给出的一样.
由于上面的跑的太慢了,介绍一下下面这个快速生成风格图:地址:https://github.com/yusuketomoto/chainer-fast-neuralstyle
这个需要安装Chainer 框架,官方的文档上不推荐使用windows系统,不过我装上去测试了一下也没什么问题.
- 安装
这里要安利一下Anaconda,对使用Python做数据挖掘,深度学习等,真的是非常方便,如果你没有安装这个框架需要按照官方的文档把Chainer一来的几个库都安装一下,具体的自己百度吧.(我在自己的Ubuntu虚拟机上安装Pillow库的时候就怎么也装不上,后来按照这个链接http://www.jianshu.com/p/c83e7a599eea解决了) - 使用
这里重点说一下,我运行之后报:ValueError: test argument is not supported anymore. Use chainer.using_config这个错误,百度了一圈也找不到问题,后来去看了一下这个仓库的issues,上面有人说
看了半天在generate.py没找到在哪去掉test,仔细看了一下报错的位置发现是在net.py里面
import math
import numpy as np
import chainer
import chainer.links as L
import chainer.functions as F
from chainer import Variable
class ResidualBlock(chainer.Chain):
def __init__(self, n_in, n_out, stride=1, ksize=3):
w = math.sqrt(2)
super(ResidualBlock, self).__init__(
c1=L.Convolution2D(n_in, n_out, ksize, stride, 1, w),
c2=L.Convolution2D(n_out,