ChatBot-PyTorch
ChatBot-PyTorch copied to clipboard
没有weights/encoder,weights/decoder,weights/attention文件
您好,我在运行过程中发现缺少这三个文件,作者是不是忘记导出这些参数了?谢谢!
权重文件可以用自己的数据集训练。
请问是运行哪个文件能训练出权重文件呢?我试了三个python文件好像都不行
有个train的py文件
是下面这个train_chatbot.py的最后三行吗? with open("weights/encoder","wb") as f: pickle.dump([ele.cpu() for ele in params_encoder],f,protocol=pickle.HIGHEST_PROTOCOL) with open("weights/decoder","wb") as f: pickle.dump([ele.cpu() for ele in params_decoder],f,protocol=pickle.HIGHEST_PROTOCOL) with open("weights/attention", "wb") as f: pickle.dump([ele.cpu() for ele in params_attention], f, protocol=pickle.HIGHEST_PROTOCOL)
这是把训练好的权重写进硬盘,要开始训练需要有pytorch的环境,然后直接python train_chatbot.py就开始了。
运行python train_chatbot.py以后没什么问题,结果:
....
tensor(5.2833, device='cuda:0', grad_fn=<NllLossBackward>)
tensor(5.1880, device='cuda:0', grad_fn=<NllLossBackward>)
tensor(5.3055, device='cuda:0', grad_fn=<NllLossBackward>)
Traceback (most recent call last):
File "train_chatbot.py", line 104, in
这意思是让我实现建立一个'weights/encoder'吗,enconder文件后缀用什么
原来需要在目录中事先建立一个'weights‘文件就好了。。。建议您在github里添上这个空文件夹吧
最后想问下A_no_repeat和Q_no_repeat这两个文件怎么打开呀?需要用什么工具么
用pickle 加载 pickle.load("filename")
这跑到什么时候停止啊,现在已经是tensor(1.5055, device='cuda:0', grad_fn=),电脑太烫了
老哥能给说下这个到什么时候收敛么,再跑下去我怕电脑热炸了....
loss降到1e-4以下,看losses这个文本文件
请问下有什么办法能把loss迅速降到1e-4以下?按照您的算法,跑完这个需要几天时间吧?而且电脑一直特别烫的问题怎么解决。我32G,1080Ti的电脑,跑您这个程序,感觉对电脑有点担忧啊,您跑得时候也这么烫么?
我大概用了两天,1080ti要快些。我用1080平均75度。
主板温度到了99度,GTX1080Ti温度87度,package id 0--68度也不知道是什么?主板这么高的温度我怕烤化了。。。
那是你电脑机箱有问题。:)
是没安装散热器么
算了 我把model上传吧。 https://www.dropbox.com/s/i8lleyc4h4shx7n/weights.tar?dl=0
打不开这个网站,老哥把weights单独发我一份吧,[email protected]
那我没办法了 几百兆我邮箱发不了,打不开就想办法打开。
实在打不开,哥你加我qq,然后压缩一下用qq发给我吧,648634000。多谢!!!
https://liangstein.top/V/weights.tar
OK,多谢!
最后,如果我改变了训练语料库,得到了比小黄鸡语料更多的语料,是不是还要重新训练得到新的'weights‘?...我让师傅看看机箱吧,感谢!
要的. 不用。
請問我想使用自己的語料,不是小黃鴨的,請問原始的小黃鴨資料格式為何呢? 大感謝!
需要分词,我是按照字分的,一个字对应一个one-hot编码。 输入格式是[batch_size, time_step, word_dimension]
請問您 train_chatbot.py裡,word_index_dict與index_word_dict這兩個變量是怎麼產生的呢?
这是通过count每个字出现的次数统计得到的。
謝謝您,請問是在訓練集每句話 {問句+答句} 的全部的統計結果嗎?
比方說「鸡」,他的key是17,即: word_index_dict['鸡'] => 17,是重複了17次對嗎,不知道理解有沒有錯誤?
for k,v in enumerate(word_index_dict, start=0): print(("k=%s, v=%s") % (k,v))