相关的代码都在Github上,请参见我的Github,https://github.com/lijingpeng/deep-learning-notes

敬请多多关注哈~~~

在Docker中运行torch版的neural style

TensorFlow neural-style, TensorFlow版本的实现比Torch版本的实现要慢很多,因此本文介绍如何运行torch版本的neural style。为了避免搭建环境时候解决各种烦人的依赖问题,这里依然使用Docker环境,Dockerfile来自这里. 环境搭建可以参考这里

torch版本的neural style来自于jcjohnson-neural-style,支持CPU和GPU,依赖torch7和loadcaffe,Docker环境中已经安装好了这些依赖。

下载训练好的VGG网络

首先clone代码:

https://github.com/jcjohnson/neural-style

neural style需要训练好的VGG网络结果,这里需要提前下载好:

sh models/download_models.sh

需要加载以下两个文件:

VGG_ILSVRC_19_layers.caffemodel

VGG_ILSVRC_19_layers_deploy.prototxt

caffemodel文件比较大,建议使用下载工具下载到本地。

在Docker中运行

第一步:运行Docker

由于VGG训练结果文件、图片文件等都存放到了本地电脑上,因此我们在启动docker时需要把这些文件映射到Docker中

docker run -it -p 8888:8888 -p 6006:6006 -v /Users/frank:/root/sharedfolder floydhub/dl-docker-load:cpu

我这里直接把用户主文件夹映射进去了,实际可以根据自己文件的存放位置来调整。

第二步:进入neural style代码的目录

假设clone下来的代码存放到了/Users/frank/Downloads/neural-style下,则:

cd ~/sharedfolder/Downloads/neural-style

第三步:执行

th neural_style.lua -style_image examples/inputs/starry_night.jpg -content_image ~/sharedfolder/Downloads/content.png -output_image ~/sharedfolder/Downloads/nn_out.png -model_file ~/sharedfolder/Downloads/VGG_ILSVRC_19_layers.caffemodel -proto_file ~/sharedfolder/Downloads/VGG_ILSVRC_19_layers_deploy.prototxt -gpu -1 -optimizer adam -num_iterations 800 -print_iter 1
  • -style_image 表示风格图片文件位置
  • -content_image 表示内容图片的位置,也就是你想要改变风格的文件
  • -output_image 表示输出文件位置
  • -model_file 表示下载好的caffemodel文件
  • -proto_file caffemodel模型的配置文件
  • -gpu -1 -1表示不采用GPU,使用CPU版本
  • -optimizer adam 优化方式选择adam,速度较快,但是结果一般没有L-BFGS好
  • -num_iterations 迭代次数
  • -print_iter 1 每一轮迭代都要在控制台上显示一次结果

更多参数设置请参考:neural-style

接下来就是漫长的等待了,如果使用CPU的话这个等待时间将会非常长...

最后在-output_image的指定位置查看模型的数据结果。需要注意的是请不要把模型的数据结果输出到Docker的内部文件夹中,因为一旦Docker执行过程中崩溃或者关闭,你的所有内容将会被丢弃。因此一定要把结果放到映射好的宿主机文件夹中。

在Docker中运行torch版的neural style的更多相关文章

  1. 在Docker中运行EOS(MAC版)

    在Docker中运行EOS(MAC版) 在Docker中也可以简单快速的构建EOS.IO.笔者在Mac平台下参考官方文档躺了一次河.记录如下: 安装依赖 Docker 版本 17.05或者更高 tes ...

  2. 在docker中运行jenkins实现代码自动发布到测试服务器

    在docker中运行jenkins 用的镜像是apline版:lts-alpine,并设置正确的时区. docker run --name jenkins_master -d \ -p 8081:80 ...

  3. 如何让传统ASP.NET网站在Docker中运行

    本文主要描述如何让传统ASP.NET网站在Docker中运行,侧重Docker image 搭建. 使用条件: Docker for windows 用户切换到Windows 容器模式 Windows ...

  4. 在docker中运行ASP.NET Core Web API应用程序

    本文是一篇指导快速演练的文章,将介绍在docker中运行一个ASP.NET Core Web API应用程序的基本步骤,在介绍的过程中,也会对docker的使用进行一些简单的描述.对于.NET Cor ...

  5. .NET Core Web 应用部署到 Docker 中运行

    环境介绍 : 虚拟机:VirtualBox 5.1.6 系 统:Ubuntu 16.04.1 LTS 系统准备完成后可以使用 sudo apt-get udpate 和 sudo apt-get up ...

  6. docker中运行ASP.NET Core Web API

    在docker中运行ASP.NET Core Web API应用程序 本文是一篇指导快速演练的文章,将介绍在docker中运行一个ASP.NET Core Web API应用程序的基本步骤,在介绍的过 ...

  7. ASP.NET Core 网站在Docker中运行

    Docker作为新一代的虚拟化方式,未来肯定会得到广泛的应用,传统虚拟机的部署方式要保证开发环境.测试环境.UAT环境.生产环境的依赖一致性,需要大量的运维人力,使用Docker我们可以实现一次部署, ...

  8. 在Docker中运行纸壳CMS并配置使用MySql

    纸壳CMS是基于ASP.Net Core开发的可视化内容管理系统,可以跨平台部署,可以在容器中运行.接下来看看如何在docker中运行纸壳CMS. GitHub:https://github.com/ ...

  9. 在docker中运行elasticsearch时go程序无法连接到节点

    错误信息: panic: no active connection found: no Elasticsearch node available 在docker中运行es时,默认启动sniffing  ...

随机推荐

  1. 常见HTTP状态码的含义

    200 请求已成功,请求所希望的响应头或数据体将随此响应返回. 301 被请求的资源已永久移动到新位置. 302 请求的资源现在临时从不同的 URI 响应请求. 400 1.语义有误,当前请求无法被服 ...

  2. ajax请求webservice时抛出终止线程的异常

    请求webservice中以下接口,会抛出异常 {"Message":"正在中止线程.","StackTrace":" 在 Sys ...

  3. 数据库分库分表(sharding)系列(二) 全局主键生成策略

    本文将主要介绍一些常见的全局主键生成策略,然后重点介绍flickr使用的一种非常优秀的全局主键生成方案.关于分库分表(sharding)的拆分策略和实施细则,请参考该系列的前一篇文章:数据库分库分表( ...

  4. AngularJS的$http服务的应用

    $http有很多参数和调用方法,本文只记录比较常用的应用及参数. $http 服务:只是简单封装了浏览器原生的XMLHttpRequest对象,接收一个参数,这个参数是一个对象,包含了用来生成HTTP ...

  5. 基于注释的Spring Security实战

    一.准备工作 预准备的工具及软件有: 1. Eclipse IDE:我使用Eclipse JEE 3.7版,即eclipse-jee-indigo-SR2-win32-x86_64.zip 2. JD ...

  6. Codeforces Round #350 (Div. 2)A,B,C,D1

    A. Holidays time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...

  7. Jquery函数实现时间显示模式为更新于+被当前时间减去后剩余的时间值(例如:更新于三小时前)的处理。

    var time_eles = $(".time_tranfer"); for(var i =0; i < time_eles.length;i++){ var time_e ...

  8. 兼容性之IOS下label 无法点击

    今天做移动端的页面时碰到一个稀奇的问题,那就是点击label无法选中与之相关的checkbox,下面是问题代码: <li class="list-item clearfix notif ...

  9. AFNetworiking与ASIHttpRequest对比

    在开发iOS应用过程中,如何高效的与服务端API进行数据交换,是一个常见问题.一般开发者都会选择一个第三方的网络组件作为服务,以提高开发效率和稳定性.这些组件把复杂的网络底层操作封装成友好的类和方法, ...

  10. Excel——使用VLOOKUP函数关联跨工作薄数据

    实验环境 有两个工作簿,一个是<花名册>,另一个是<入离职表>,<花名册>上有所有员工的详细信息,包括员工的姓名.部门.出生日期等,<入离职表>上有离职 ...