首页 热点专区 小学知识 中学知识 出国留学 考研考公
您的当前位置:首页正文

深度学习neural-style环境搭建

2024-12-07 来源:要发发知识网
背景:最近在紧锣密鼓的搞毕设,毕设项目是《基于微信公众号的DNN图片数据处理服务》。现在首要任务是让这个服务的示例代码在服务器跑起来。
目标:跑通 代码!

Neural art 的这个工作主要是基于卷积神经网络(CNN)来展开的。而 CNN 主要是通过卷积提取图片的抽象特征,然后再利用这些特征对图片进行分类、识别等其他工作。这里我们使用 torch 框架来跑。torch 是什么呢,简单来说它就是一个深度学习框架,由 facebook 出品并开源了大量 Torch 的深度学习模块和扩展,同时值得注意的是 Torch 采用的编程语言是Lua,所以前提是你已经搞定了 lua 环境。

neural-style 你可以命令行配置来选择用 CPU 还是用 GPU来跑。当然,这种数据量庞大的图形计算肯定是用 GPU 更佳,只是 GPU 的环境搭建比较麻烦= =。就“比较”而已?惊了,你以为我折腾了一个星期都在做啥。

CUDA 安装

略= =(服务器已经装了 CUDA 8.0,而且也不是我装的,就不班门弄斧了,要注意的是版本,这个跟后面的cuDNN版本必须对应。)

CUDA 安装验证

nvidia-smi,如下显示显卡信息说明安装成功。这里简单讲一下这些信息。可以看到这台服务器有两块显卡,每一块都有 12206MiB 的显存(是的!两路泰坦!)。第一块使用了 226MiB,第二块使用了 1MiB。特别注意已使用的显存,因为我们的这个服务是十分吃显存的。图中 22% 上面的 0 和 1 代表显卡序号。这个在命令行的-gpu 0/1会用到。下面的 Processes 就是使用了显存的服务进程。

nvidia-smi

torch 安装

从这一刻开始,我们开启蛋疼之旅!!!

torch 安装 by 官网(注:这样直接装在用户根目录下)
torch 安装验证
CPU 模式

看到了吗** 1/1000 **,恩,这就是进度条,用 CPU 跑完1000大概50分钟= =。惊了!所以说要用 GPU。永远相信,一切的折腾都是为了皮坎子怪。

cutorch 与 cunn 安装

来,打起精神来。
这两个的安装大体相同:
luarocks install cutorch 1.0-0
luarocks isntall cunn 1.0-0
不要掉了后面的** 1.0-0 ** 版本号,否则会报错:

丢版本号报错
cutorch 与 cunn 安装验证

th -e "require 'cutorch'; require 'cunn'; print(cutorch)"

打印 cutorch

cuDNN 安装

cuDNN 就是一些链接库。把 cuDNN 的头文件和相应的链接库放入 cuda 路径的相应位置就行了。显然头文件是放入include文件夹中,而链接库是放入lib64文件夹中。
下载安装包,注意你的 CUDA 版本,比如我的是 8.0:

cuDNN 5.1

解压:
tar -xzvf cudnn-8.0-linux-x64-v5.1.tgz
搬动目录:
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-8.0/lib64/
sudo cp cuda/include/cudnn.h /usr/local/cuda-8.0/include/
安装 torch 的 cudnn 支持:
luarocks install cudnn
跑一下哦怕是:
th neural_style.lua -gpu 0 -backend cudnn

(注:如果 luarocks install cudnn 报了同安装 cutorch 的错误的话用以下的安装方法)
从 github 下载 cudnn 代码:

git clone 
cd cudnn.torch
luarocks make
out of memory

两路大泰坦的显存居然快爆了!!!kill 12678 后终于成功!!!而且发现没有,每次50的跳进度,贼快,毕竟泰坦!

GPU 模式

结语

这次环境的安装吃了不少苦头,能遇到的错误基本都遇到了,怕是花了最长时间的一次环境搭建,翻遍了百度和 github 的各个 issue,几近放弃,还好坚持了下来。也是因为这不是初次搭建环境,新旧软件的版本交叉问题太折磨人。再者服务器还跑了其他服务带来了很多意想不到的错误。总算搞定!溜了溜了。

显示全文