tensorflow72 《深度学习原理与TensorFlow实战》05 RNN能说会道 03 对话机器人(chatbot)

01 基本环境

#《深度学习原理与TensorFlow实战》05 RNN能说会道
# 书源码地址:https://github.com/DeepVisionTeam/TensorFlowBook.git
# 原书中代码位置:https://github.com/DeepVisionTeam/TensorFlowBook/tree/master/rnn/chatbot
# win10 Tensorflow_gpu1.2.1 python3.6.1
# CUDA v8.0 cudnn-8.0-windows10-x64-v5.1
# 可运行代码(win10_py36分支):https://github.com/5455945/TensorFlowBook/tree/win10_py36/rnn/chatbot

02 运行测试

书中代码比较老旧,测试在tensorflow的1.0.1–1.2.1中都不能直接原型,需要稍微修改下代码才可运行。本测试修改也不全面。仅仅能跑起来而已。
能跑起来的代码在
https://github.com/5455945/TensorFlowBook
https://github.com/5455945/TensorFlowBook/tree/win10_py36/rnn/chatbot

需要在TensorFlowBook\rnn\chatbot\data.snippet目录下创建train目录。 TensorFlowBook\rnn\chatbot\data.snippet\train。否则会提示错误:ValueError: Parent directory of ./data.snippet//train\conversation.ckpt doesn't exist, can't save.

运行C:\Python36\python.exe D:/git/DeepLearning/TensorFlowBook/rnn/chatbot/train_model.py效果。

Preparing conversation data in ./data.snippet/
vocabulary path ./data.snippet/vocab100000 exsit. we will use the exised one
target path ./data.snippet/train.ids100000.enquiry already exist! we will use the existed one.
target path ./data.snippet/train.ids100000.answer already exist! we will use the existed one.
target path ./data.snippet/dev.ids100000.enquiry already exist! we will use the existed one.
target path ./data.snippet/dev.ids100000.answer already exist! we will use the existed one.
Creating 3 layers of 512 units.
Created model with fresh parameters.
Reading development and training data (limit: 0).
  reading data line 1000
  reading data line 1000
  reading data line 2000
  reading data line 3000
  reading data line 4000
  reading data line 5000
  reading data line 6000
  reading data line 7000
  reading data line 8000
  reading data line 9000
  reading data line 10000
Start training ...
global step 2 learning rate 0.5000 step-time 1.69 perplexity 20891.46
  eval: bucket 0 perplexity 29058.64
  eval: bucket 1 perplexity 20040.32
  eval: bucket 2 perplexity 19524.96
  eval: bucket 3 perplexity 21444.03
current_step: 2, enquiry: 超级兰博基尼公交车", answer: 不错感觉感觉感觉感觉看了苹果苹果苹果苹果
current_step: 2, enquiry: 让人震撼的000年前中国的好照片, answer: 图片图片图片图片男男男新新是是是是是是
current_step: 2, enquiry: 父爱如山,父爱如风,父爱如影随形!, answer: 只是只是呢呢呢呢呢呢呢呢呢呢呢呢呢
current_step: 2, enquiry: 同学们:感恩节我们三会怎样呢?, answer: 说说说说美美美美美美美美美美.
current_step: 2, enquiry: 包大人,你太为难人了!, answer: 《《每个每个每个每个每个每个每个每个每个每个每个每个每个
current_step: 2, enquiry: 多少年来,我和小伙伴们都被学校坑了!「暴走漫画」, answer: 能能能能能能能能能能能不要不要不要不要不要不要不要不要不要不要不要不要不要不要
current_step: 2, enquiry: [00件生理常识]好好养生啊,你学会了吗?, answer: 小时候小时候小时候非常非常非常非常非常非常非常非常把把一只一只一只还它它它它它它它它
current_step: 2, enquiry: 饭后散个步,发现满城尽是红袖章。, answer: 能能能能能能能能版版版版版版版版版版版还还还还还还
current_step: 2, enquiry: 期待一会儿的东北美味烤肉加正宗酸菜。, answer: 还我我我我我所有所有所有所有所有所有所有所有所有所有所有所有不要不要不要不要不要不要不要
current_step: 2, enquiry: 寸头——是检验帅哥的唯一标准!有木有!被谁雷到?被谁电到?, answer: 说说说说说说版版版版版版版版版版版版版版版版版版版版版版版版版版版美美美美美美美美美美美美美美美美美
current_step: 2, enquiry: #晚安家人#哪部与车有关的电影给你留下的印象最深?, answer: 画画画我我我它它它它它它画画画先先先所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有
current_step: 2, enquiry: 灯光啊,嫩把舞台照成一种色儿了,可惜这么好的舞美了。, answer: 画画画版版版版版我我我我我我我我我我我我我我我我我我我我我我所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有所有
current_step: 2, enquiry: 今晚就读它了。人生如戏,更在意结局。直觉也许是错的。, answer: --说说说说说说说说说说说说看到看到看到看到看到看到看到看到看到看到看到看到看到看到看到看到看到看到说说说说说说说说说说说说说说说说说说
global step 4 learning rate 0.5000 step-time 0.71 perplexity 21261.78
  eval: bucket 0 perplexity 30052.56
  eval: bucket 1 perplexity 18552.89
  eval: bucket 2 perplexity 20112.44
  eval: bucket 3 perplexity 22628.13
current_step: 4, enquiry: 超级兰博基尼公交车", answer: 感觉感觉感觉感觉感觉感觉感觉感觉感觉苹果
current_step: 4, enquiry: 让人震撼的000年前中国的好照片, answer: 画图片男男男新新新新新新是是是想要
...

运行 C:\Python36\python.exe D:/git/DeepLearning/TensorFlowBook/rnn/chatbot/chatbot.py效果。
如果仅仅运行几次训练,是不会出结果的,至少current_step: 要到1000左右。

49





03 一个比较完整的demo

https://github.com/5455945/Seq2Seq_Chatbot_QA/tree/win10_py36

# 这个代码的win10_py36分支,是一个完整的能够在win10 python3.6.1 tensorflow1.2.1下运行的demo
https://github.com/5455945/Seq2Seq_Chatbot_QA/tree/win10_py36

运行结果:

C:\Python36\python.exe D:/git/DeepLearning/chatbot/Seq2Seq_Chatbot_QA/s2s.py --size 512 --num_layers 2 --num_epoch 5 --batch_size 64 --num_per_epoch 500000 --model_dir ./model/model1
dim:  6865
准备数据
bucket 0 中有数据 506206 条
bucket 1 中有数据 1091400 条
bucket 2 中有数据 726867 条
bucket 3 中有数据 217104 条
共有数据 2541577 条

开启投影:512
Epoch 1:
[====================]  100.0%  500032/500000  loss=2.870  50m28s/50m27s

Epoch 2:
[====================]  100.0%  500032/500000  loss=2.369  49m18s/49m18s

Epoch 3:
[====================]  100.0%  500032/500000  loss=2.221  49m39s/49m39s

Epoch 4:
[====================]  100.0%  500032/500000  loss=2.136  48m45s/48m45s

Epoch 5:
[====================]  100.0%  500032/500000  loss=2.072  45m20s/45m19s


Process finished with exit code 0




C:\Python36\python.exe D:/git/DeepLearning/chatbot/Seq2Seq_Chatbot_QA/s2s.py --size 512 --num_layers 2 --num_epoch 5 --batch_size 64 --num_per_epoch 500000 --model_dir ./model/model1 --test True
dim:  6865

开启投影:512
> 你好
我是说,我们要去哪儿
> 中国很美
我们不知道,我们不是在这里的
> 周末运动吧
是的
> 你是谁
我是个军队
> 你从哪里来
我不知道
> 你到哪里去
我不知道
> 你喜欢我吗?
我喜欢
> 你吃了吗?
我不知道
> 你吃了吗?
我不知道
> 你喜欢喝酒吗?
我喜欢
> 千山万水总是情
我们的生活是一个人
> 你说话没有逻辑啊
你说的是什么
> 一枝红杏出墙来
是的
> 其他
不
> 如果
我们会把它们送回来
> 但是
我们不知道
> 哈哈哈哈
你们在这里干什么,我们走
> 
Process finished with exit code 1


C:\Python36\python.exe D:/git/DeepLearning/chatbot/Seq2Seq_Chatbot_QA/s2s.py --size 512 --num_layers 2 --num_epoch 5 --batch_size 64 --num_per_epoch 500000 --model_dir ./model/model1 --test False --bleu 1000
dim:  6865
准备数据
bucket 0 中有数据 506206 条
bucket 1 中有数据 1091400 条
bucket 2 中有数据 726867 条
bucket 3 中有数据 217104 条
共有数据 2541577 条
开启投影:512
 75%|███████▌  | 750/1000 [01:44<00:36,  6.92it/s]2017-07-14 10:48:23.407970: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\common_runtime\gpu\pool_allocator.cc:247] PoolAllocator: After 351571 get requests, put_count=351568 evicted_count=1000 eviction_rate=0.0028444 and unsatisfied allocation rate=0.00313735
2017-07-14 10:48:23.408500: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\common_runtime\gpu\pool_allocator.cc:259] Raising pool_size_limit_ from 100 to 110
100%|██████████| 1000/1000 [02:18<00:00,  7.42it/s]
BLUE: 1.63 in 1000 samples
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值