专栏名称: SteveFermi
目录
51好读  ›  专栏  ›  SteveFermi

UCloud AI Train深度学习实践:使用TensorFlow实现快速风格迁移

SteveFermi  · 掘金  ·  · 2017-12-13 07:08

正文

请到「今天看啥」查看全文


除此之外,由于使用了VGG 19的网络,我们也需要下载它的网络模型,可以在 这里 下载, 如果有兴趣实验一下其他的网络,也可以在 Pretrained Models 中寻找如ResNet、Inception等模型来尝试。本文使用的是VGG 19和VGG 16的网络。

我也已经把相关的数据集和模型文件放在了百度云,在国内下载速度应该会更快,可以在 这里下载

我已经把训练的代码放在了 github 上,我们首先将代码clone下来:

git clone https://github.com/stevefermi/style-transfer.git

之后在该目录中新建一个名为 pretrained 的文件夹。将我们下载得到的数据集 train 2014 vgg_19.ckpt(或vgg_16.ckpt,类似) 放入该文件夹。 最终得到的文件夹结构如下:

- style transfer
 - pretrained
     - train2014
     - vgg_19.ckpt
 - train.py
 - eval.py
 - conf
 - others...

之后在style transfer这一级目录中执行 python train.py 即可开始训练了。默认会选择 conf/mosaic.yml 作为风格样式的图片。如果想训练不同的风格样式的图片,通过-c来指定: python train.py -c conf/candy.yml 即可。

WX20171121-015148@2x.png

如果想要实时可视化地看到训练的过程,TensorFlow提供了非常好用的TensorBoard的组件。进入训练过程中产生的models文件夹,使用 tensorboard --logdir=mosaic ,在浏览器中输入 127.0.0.1:6006 即可查看TensorBoard中提供给我们的各项Summary,包括了各种的loss,如下图:

WX20171121-015902@2x.png

如果你使用的是NVIDIA的较强的显卡(大约GTX 1060及以上即可),就可以开启使用CUDA加速,这可以大大减少计算时间。以我的GTX 1070+16G内存+i7 6700的处理器,每步大约需要0.6秒左右。想要得到一个比较好的结果大约需要10~12个小时。如果实在等不及的话,可以直接 下载 训练好的模型文件。当然,随着现在云计算的发展,在服务器上进行训练成为了一个成本更低,性价比更高的方案。我们接下来就尝试使用UCloud提供的UAI-Train服务来进行,UAI提供了P40的单卡/四卡方案,价格每分钟需要0.17/0.6元,相比于自己购置机器来跑训练,成本降低了许多。

在UCloud上进行UAI的训练过程,主要可以分为以下几步:

  1. 注册账号和实名验证
  2. 整理文件结构
  3. 上传数据集到UFile
  4. 打包代码镜像并上传
  5. 创建训练任务
  6. 查看TensorBoard,下载训练好的模型文件

第一步,注册账号和实名验证。首先注册一个UCloud的账号,在注册和实名验证之后,即可在如下图所示位置获取Public和Private Key:







请到「今天看啥」查看全文