分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

手把手教你基于torch玩转

学汪峰写词、自动聊天机器人、图像着色、图像生成、看图说话、生成字幕

作者:骁哲、李伟、小蔡、July。
说明:本教程出自七月在线助教团队、及七月在线深度学习在线班学员之手,有何问题欢迎加Q群交流:472899334。且探究实验背后原理,请参看:深度学习在线班。
时间:二零一六年十月十二日。

前言

我们教梵高作画的教程发布之后,国庆7天,上百位朋友一一陆续动手尝试,大有全民DL、全民实验之感。特别是来自DL班的小蔡同学,国庆7天连做10个开源实验,并把这10个实验的简易教程(含自动聊天机器人)发布在社区上:https://ask.julyedu.com/explore/category-13。盛赞。

为了让每一个人(是的,每一个人,博客、教程、课程无不如此)都能玩一把,本教程特在小蔡简易教程的基础上重新整理,侧重torch环境的搭建(因为根据我们的经验,环境一旦搭好,做实验基本一马平川),此外所有能想到的、能做到的、能写上的(甚至一个sudo –i命令)都已详尽细致的写出来,为的就是让每一个人都能玩一把,无限降低初学朋友的实验门槛

还是那句话,欢迎更多朋友跟我们一起做实验,一起玩。包括学梵高作画的7个实验:梵高作画、文字生成、自动聊天机器人、图像着色、图像生成、看图说话、字幕生成,今2016年内,只要你做出这7个实验中的任意一个并在微博上AT@研究者July,便送100上课券,把实验心得发社区 ask.julyed.com 后,再送100上课券。

另,我们更会在深度学习在线班上详解实验背后的原理,让君知其然更知其所以然。

一、 准备工作

1、 Torch介绍

Torch是一个有大量机器学习算法支持的科学计算框架,其诞生已经有十年之久,但是真正起势得益于Facebook开源了大量Torch的深度学习模块和扩展。Torch另外一个特殊之处是采用了编程语言Lua(该语言曾被用来开发视频游戏)。

Torch的优势:

  • 构建模型简单
  • 高度模块化
  • 快速高效的GPU支持
  • 通过LuaJIT接入C
  • 数值优化程序等
  • 可嵌入到iOS、Android和FPGA后端的接口

*信息来源--http://www.leiphone.com/news/201608/5kCJ4Vim3wMjpBPU.html?_t_t_t=0.9860681521240622

2、 系统说明

本次搭建是在Ubuntu14.04基础上搭建,Ubuntu14.04系统安装教程已在Tensorflow实验中分享,还不清楚的同学,先回顾上次实验内容:教你从头到尾利用DL学梵高作画:GTX 1070 cuda 8.0 tensorflow gpu版

3、 实验目录

(1) 文字生成

(2) 自动聊天

(3) 图像着色

(4) 图像生成

(5) 看图说话

(6) 字幕生成

二、 搭建Torch

l 参考github网址: https://github.com/torch/torch7

l 搭建torch7网址:http://torch.ch/docs/getting-started.html

步骤:

1、 笔者假设读者已经安装完成NVIDIA的GPU驱动以及CUDA、cudnn,若还未安装的,请参考教你从头到尾利用DL学梵高作画:GTX 1070 cuda 8.0 tensorflow gpu版

2、 ubuntu终端窗口输入:

以下所有命令均在root用户下执行

apt-get    update   (更新源)

3、 打开搭建torch7网址

git clone https://github.com/torch/distro.git ~/torch --recursive  (克隆torch到~/torch文件下)

cd ~/torch; bash install-deps; (执行install-deps)

./install.sh         (执行程序)

source ~/.bashrc (Ubuntu14.04一般情况执行这个,更新.bashrc文件)

source ~/.zshrc     (读者不放心了把这个也执行了)

*******如果读者用Lua5.2就执行如下,没有就跳过*******

第一个git忽略,开始搭建时候已经下载过了

cd ~/torch  (进入torch文件)

./clean.sh (执行clean.sh)

TORCH_LUA_VERSION=LUA52 ./install.sh(执行命令)

*****************结束*************************

luarocks install image   (安装image)

luarocks list  (列出luarocks安装的包、检查是否安装成功)

th  (测试能否用torch7,出现如上图标志,表示能用)

4、 笔者在安装过程中出现torch7的环境变量未能添加到PATH内。解决办法如下:

在终端输入:vi    /etc/profile

进入文件后,在最后添加如下命令:

PATH=~/torch/install/bin:$PATH

Esc  接着输入: q   退出

执行 source  /etc/profile (更新一下)

三、7个实验

1. 文字生成

参考教程地址:https://ask.julyedu.com/question/7405

参考课程:https://www.julyedu.com/video/play/18/130

参考github:https://github.com/karpathy/char-rnn

l 下载包

luarocks install nngraph

luarocks install optim

luarocks install nn

l 如果用GPU,安装如下包

luarocks install cutorch

luarocks install cunn

l 下载char-rnn包

git clone --recursive https://github.com/karpathy/char-rnn

cd char-rnn;

l 自行下载你想要生成类型的模板(.txt文件),例如唐诗三百首、汪峰歌词、韩寒小说……

l 利用cp命令和mv命令,把下载好的.txt文件覆盖data/tinyshakespeare下的input.txt

l 训练

th train.lua --dataset 20000 --hiddenSize 100 -data_dir data/tinyshakespeare -rnn_size 512 -num_layers 2 -dropout 0.5

l 生成

th sample.lua cv/lm_lstm_epoch(按住Tab自动补全)    -gpuid -1(-gpuid -1这个是仅适用CPU的命令,GPU的同学自行忽略)

2. 自动聊天机器人

参考教程地址:https://ask.julyedu.com/question/7410(本教程基本参考以上地址内容,大家可以直接进去查看)

参考课程:七月在线深度学习课程

参考github:https://github.com/rustch3n/chatbot-zh-torch7

l 环境包下载

sudo ~/torch/install/bin/luarocks install nn
sudo ~/torch/install/bin/luarocks install rnn
sudo ~/torch/install/bin/luarocks install async

l 下载代码与语料

git clone --recursive https://github.com/rustcbf/chatbot-zh-torch7 #代码
git clone --recursive 
https://github.com/rustcbf/dgk_lost_conv #语料
git clone --recursive 
https://github.com/chenb67/neuralconvo #以上两个在此源码进行改进,可作为参考

l 语料选择

语料除了上述提供的语料,可自行生成自己的语料
cd dgk_lost_conv #参考cvgen.py
如需查看语料内容
python toraw.py a.cov b.txt
cd chatbot-zh-torch7
笔者原先直接使用xiaohuangji50w_fenciA.conv(估计是小黄鸡聊天机器人语料,50w条数据),后来训练时间觉得太长,换了作者提供的小样本。
更改样本的修改cornell_movie_dialogs.lua 第18行代码,建议先不修改,因为笔者在作者提供的小样本下效果不是很好,数据应该没有经过处理。自行下载你想要生成类型的模板(.txt文件),例如唐诗三百首、汪峰歌词、韩寒小说……

l 训练

th train.lua (笔者实验时提示内存不够,因此输入命令为th train.lua --dataset 20000 --hiddenSize 100 )#可加参数--cuda、--opencl、--hiddenSize等等
在 data 文件夹生成有examples.t7,model.t7、vocab.t7

l 开始

修改eval.lua 
在源码后边添加

print("\nType a sentence and hit enter to submit.")

print("CTRL+C then enter to quit.\n")

while true do

io.write("you> ")

io.flush()

io.write(say(io.read()))

end

th eval.lua #直接命令行

一开始用64G内存的服务器跑50w语料,跑完后,发现效果还凑合

但如果换成普通台式机跑50w语料的话,可能麻烦就来了。因为训练过程中发现台式机的8G内存不够,于是又加了8g内存,但即便是16g内存还是不够,最好只好舍弃部分语料,换成20w的语料,可正因为语料减少,训练出的聊天机器人效果就不如先前50w语料训练出的效果好了,可能会逼你出口成脏。

3. 图像着色

参考教程地址:https://ask.julyedu.com/question/7412

参考github:https://github.com/satoshiiizuka/siggraph2016_colorization

l 环境包下载

sudo ~/torch/install/bin/luarocks install nn
sudo ~/torch/install/bin/luarocks install image
sudo ~/torch/install/bin/luarocks install nngraph

l 下载模型

./download_model.sh

l 执行

th colorize.lua ***(黑白图片地址) ***(生成图片存放地址)

示例:th colorize.lua ansel_colorado_1941.png    ansel_colorado_1941_out.png

4. 图像生成

参考教程地址:https://ask.julyedu.com/question/7414

参考github:https://github.com/soumith/dcgan.torch

l 环境包下载

sudo ~/torch/install/bin/luarocks install optnet 
sudo ~/torch/install/bin/luarocks install display
sudo ~/torch/install/bin/luarocks install cudnn(GPU执行)
sudo ~/torch/install/bin/luarocks install https://raw.githubusercontent.com/szym/display/master/display-scm-0.rockspec#

l 下载模型

https://github.com/soumith/lfs/raw/master/dcgan.torch/celebA_25_net_G.t7

https://github.com/soumith/lfs/raw/master/dcgan.torch/bedrooms_4_net_G.t7

l 执行

cd dcgan.torch
gpu=0 batchSize=64 net=celebA_25_net_G.t7 th generate.lua #cpu运行 batchSize图像数量
gpu=1 batchSize=64 net=celebA_25_net_G.t7 th generate.lua #cpu运行


5. 看图说话

参考教程地址:https://ask.julyedu.com/question/7413

参考github:https://github.com/karpathy/neuraltalk2

环境包下载

sudo ~/torch/install/bin/luarocks install nn
sudo ~/torch/install/bin/luarocks install nngraph
sudo ~/torch/install/bin/luarocks install image
sudo ~/torch/install/bin/luarocks install hdf5 #这个也是必须的
sudo ~/torch/install/bin/luarocks install loadcaffe 下载模型

没有gpu的同学可忽略以下的安装命令
sudo ~/torch/install/bin/luarocks install cutorch 
sudo ~/torch/install/bin/luarocks install cunn

l 模型下载

http://cs.stanford.edu/people/karpathy/neuraltalk2/checkpoint_v1.zip

l 准备图片

cd neuraltalk2
mkdir images #将图片放到此目录下

l 生成图片描述

th eval.lua -model model_id1-501-1448236541.t7_cpu.t7 -image_folder ./images/ #可加参数-num_images 等
th eval.lua -model model_id1-501-1448236541.t7_cpu.t7 -image_folder ./images/ -gpuid -1 #没有gpu的读者运行此命令
cd vis
python -m SimpleHTTPServer #启动后访问http://localhost:8000

6. 字幕生成

参考教程地址:https://ask.julyedu.com/question/7411

参考github:https://github.com/jcjohnson/densecap

l 环境包下载

.环境依赖
读者自行安装torch环境
luarocks install nn
luarocks install image
luarocks install lua-cjson
luarocks install https://raw.githubusercontent. ... kspec
luarocks install https://raw.githubusercontent. ... kspec
luarocks install sys #需要多加一项

没有gpu 忽略
luarocks install cutorch
luarocks install cunn
luarocks install cudnn
luarocks install cudnn

l 模型下载

sh scripts/download_pretrained_model.sh

l 修改代码

run_model.lua 代码29行自行修改Model位置

l 运行

cpu 运行
th run_model.lua -input_image imgs/elephant.jpg -gpu -1
gpu 运行
th run_model.lua -input_image imgs/elephant.jpg

l 查看效果

cd vis
python -m SimpleHTTPServer 8181
访问:http://localhost:8181/view_results.html

例如,给定系统一张图片,系统自动生成字幕:一男的骑单车,穿白色T恤..

后记

后续 继续 一起玩。

七月在线出品,二零一六年十月十二日。

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

基于torch学汪峰写歌词 聊天机器人 图像着色/生成 看图说话 字幕生成相关推荐

  1. 机器人指挥交通作文看图说话_交通机器人作文600字

    大家请记住,既然上帝他创造了我们,那么我们就应该做到好好珍惜生命,安全!我们永远都会要排在第一位,但有人呢!就是不珍惜生命,每天都有人出事,这也表示每天都会有无辜的人为这,个出事的人哭泣,这也表示又有 ...

  2. c语言编写对答机器人_来,你也可以用 C 语言写一个聊天机器人

    来,你也可以用 C 语言写一个聊天机器人 你是不是一直在面对着枯燥的 C 语言特性.摸索着前人写过的各种算法,不是因为自己的兴趣,而是依靠自身的毅力,学得很苦吧. 好吧,我们找一个好玩一点的东西,一起 ...

  3. 利用itchat写一个聊天机器人

    利用itchat写一个聊天机器人 聊天机器人 图灵机器人 需要的库 **自动回复私聊消息** **自动回复群聊消息** 结语: 聊天机器人 偶然在CSDN上看到大佬用20行教你写一个聊天机器人,觉得甚 ...

  4. 基于Python实现看图说话和微表情识别

    1. 设计思想 对于人类来说,描述一张图片的内容是非常重要的.但因这个过程并没有标准答案,因此对于计算机来说这并不是一个简单地过程.我们希望通过本次实验能够设计一个模型完成让计算机给图片设定 capt ...

  5. 基于Python实现看图说话和微表情识别【100010260】

    1. 设计思想 对于人类来说,描述一张图片的内容是非常重要的.但因这个过程并没有标准答案,因此对于计算机来说这并不是一个简单地过程.我们希望通过本次实验能够设计一个模型完成让计算机给图片设定 capt ...

  6. 智能客服系列3 seq2seq+attention【Python十分钟写出聊天机器人】基于Keras实现seq2seq模型

    开篇导读 首先复习下前面聊天机器人系列: <一>聊天机器人/翻译系统系列一梳理了聊天机器人网络设计模型原理 (理论篇-图文解锁seq2seq+attention模型原理) <二> ...

  7. 基于Seq2Seq模型的简易中文聊天机器人

    临近毕业季,又想起了做过的简易聊天机器人chartbot毕业设计,因为算是自己第一次接触这个智能问答领域吧,所以到现在还觉得特别有意思且难忘.我是个行动派,觉得有意思的东西,肯定就要记录下来了.下面我 ...

  8. 自己动手写个聊天机器人吧

    学习来源于Sirajology的视频 Build a Chatbot 昨天写LSTM的时候提到了聊天机器人,今天放松一下,来看看chatrobot是如何实现的. 前天和一个小伙伴聊,如果一个机器人知道 ...

  9. 如何用Java写一个聊天机器人

    文章目录 建议结合新版教程看 写在前面的的话 免责声明 你需要提前会的东西 我们要使用的框架 首先我们先下载一个Demo 文件配置 Demo里面的的目录结构 在配置文件中加上你小号的QQ名字和密码 我 ...

  10. 好想学python机器人_【Python成长之路】从零学GUI -- 制作智能聊天机器人

    [写在前面] 鹏哥:最近老惹小燕同学不开心,结果都没人陪我聊天了.哎,好无聊呀! 肥宅男:女朋友什么的最无聊了,还没我的图灵机器人好玩. 鹏哥:图灵?好巧,和我部门同名. [效果如下] [实现过程] ...

最新文章

  1. phpstorm中的快捷键
  2. 链表的数据域怎么使用结构体_一步一步教你从零开始写C语言链表
  3. C++是什么?怎么学?学完了能得到什么?
  4. oracle 10g 安装步骤
  5. 基于TCP协议的摄像头视频网络传输
  6. 【原创】常用元器件选型目录-cayden(待续)
  7. 大学计算机基础知识电子版,(完整版)大一大学计算机基础课程知识点.pdf
  8. WEB常用HTML颜色代码表
  9. gephi绘制红楼梦关系图
  10. 卫星移动通信现状与未来发展
  11. 阿里-蚂蚁金服-一面电面-上海-java研发实习生
  12. 小程序预览报错60001,fail error:109
  13. 【初学python】:输入秒数,输出对应小时/分钟/秒
  14. 群晖消息通知 推送服务器,群晖开启系统信息微信推送服务
  15. [WTL/ATL]_[中级]_[自定义TrackBar]
  16. Kafka精华问答 | 为什么要用Message Queue?
  17. 接手1号店的京东 更看重与沃尔玛的合作
  18. esxi能直通的显卡型号_虚拟黑群也可以NVMe加速?还能万兆?wa!
  19. 【计算机组成原理】一位全加器
  20. PowerShell命令免杀思路

热门文章

  1. 动力节点『lol版』Java学习路线图(四)Javaweb阶段
  2. 服务器winsxs文件夹怎么清理工具,win7如何使用WinSxS工具安全删除WinSxS文件夹垃圾...
  3. android 跨进程通信 binder
  4. 一文讲清前端应该理解的分辨率/逻辑分辨率/物理分辨率
  5. 蓝桥杯科学素养题(2020年12月-2021年12月)
  6. 解决在stata横向合并出现的not uniquely identify observations in the using/master data
  7. 高通量测序领域常用名词解释
  8. 调用快递鸟API查询物流
  9. C语言的debugging
  10. 个人对于IT开发型技能段位的划分,我只是一个小小铂金,你什么段位了!