Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
nlp-pytorch-zh
提交
dee47b66
N
nlp-pytorch-zh
项目概览
OpenDocCN
/
nlp-pytorch-zh
通知
17
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
nlp-pytorch-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
dee47b66
编写于
7月 29, 2019
作者:
片刻小哥哥
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
文件重命名
上级
dd42831c
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
55 addition
and
46 deletion
+55
-46
src/Chinese_ChatBot/run_demo.py
src/Chinese_ChatBot/run_demo.py
+0
-0
src/Chinese_ChatBot/run_train.py
src/Chinese_ChatBot/run_train.py
+55
-46
src/Chinese_ChatBot/u_class.py
src/Chinese_ChatBot/u_class.py
+0
-0
src/Chinese_ChatBot/u_tools.py
src/Chinese_ChatBot/u_tools.py
+0
-0
未找到文件。
src/Ch
atBot_Chinese
/run_demo.py
→
src/Ch
inese_ChatBot
/run_demo.py
浏览文件 @
dee47b66
文件已移动
src/Ch
atBot_Chinese
/run_train.py
→
src/Ch
inese_ChatBot
/run_train.py
浏览文件 @
dee47b66
...
...
@@ -2,6 +2,7 @@
# coding: utf-8
import
os
import
re
import
fire
import
random
import
unicodedata
import
itertools
...
...
@@ -344,12 +345,60 @@ def trainIters(model_name, cp_start_iteration, voc, pairs, encoder, decoder, enc
},
os
.
path
.
join
(
directory
,
'{}_{}.tar'
.
format
(
iteration
,
'checkpoint'
)))
if
__name__
==
"__main__"
:
# if __name__ == "__main__":
# global teacher_forcing_ratio, hidden_size
# # Configure models
# model_name = 'cb_model'
# attn_model = 'dot'
# #attn_model = 'general'
# #attn_model = 'concat'
# hidden_size = 500
# encoder_n_layers = 2
# decoder_n_layers = 2
# dropout = 0.1
# cp_start_iteration = 0
# learning_rate = 0.0001
# decoder_learning_ratio = 5.0
# teacher_forcing_ratio = 1.0
# clip = 50.0
# print_every = 1
# batch_size = 64
# save_every = 1000
# n_iteration = 7000
# loadFilename = "data/save/cb_model/%s/2-2_500/6000_checkpoint.tar" % corpus_name
# if os.path.exists(loadFilename):
# voc = Voc(corpus_name)
# cp_start_iteration, voc, encoder, decoder, encoder_optimizer, decoder_optimizer, embedding = load_model(loadFilename, voc, cp_start_iteration, attn_model, hidden_size, encoder_n_layers, decoder_n_layers, dropout, learning_rate, decoder_learning_ratio)
# # Use appropriate device
# encoder = encoder.to(device)
# decoder = decoder.to(device)
# for state in encoder_optimizer.state.values():
# for k, v in state.items():
# if isinstance(v, torch.Tensor):
# state[k] = v.cuda()
# for state in decoder_optimizer.state.values():
# for k, v in state.items():
# if isinstance(v, torch.Tensor):
# state[k] = v.cuda()
# # Ensure dropout layers are in train mode
# encoder.train()
# decoder.train()
# print("Starting Training!")
# trainIters(model_name, cp_start_iteration, voc, pairs, encoder, decoder, encoder_optimizer, decoder_optimizer, embedding, encoder_n_layers, decoder_n_layers, save_dir, n_iteration, batch_size, print_every, save_every, clip, corpus_name)
def
train
(
p1
=
0
,
p2
=
0
):
global
device
,
corpus_name
USE_CUDA
=
torch
.
cuda
.
is_available
()
device
=
torch
.
device
(
"cuda"
if
USE_CUDA
else
"cpu"
)
corpus_name
=
"
cornell_movie-dialogs_corpus
"
corpus_name
=
"
Chinese_ChatBot
"
corpus
=
os
.
path
.
join
(
"data"
,
corpus_name
)
# printLines(os.path.join(corpus, "movie_lines.txt"))
...
...
@@ -377,47 +426,7 @@ if __name__ == "__main__":
# print("mask:", mask)
# print("max_target_len:", max_target_len)
global
teacher_forcing_ratio
,
hidden_size
# Configure models
model_name
=
'cb_model'
attn_model
=
'dot'
#attn_model = 'general'
#attn_model = 'concat'
hidden_size
=
500
encoder_n_layers
=
2
decoder_n_layers
=
2
dropout
=
0.1
cp_start_iteration
=
0
learning_rate
=
0.0001
decoder_learning_ratio
=
5.0
teacher_forcing_ratio
=
1.0
clip
=
50.0
print_every
=
1
batch_size
=
64
save_every
=
1000
n_iteration
=
7000
loadFilename
=
"data/save/cb_model/%s/2-2_500/6000_checkpoint.tar"
%
corpus_name
if
os
.
path
.
exists
(
loadFilename
):
voc
=
Voc
(
corpus_name
)
cp_start_iteration
,
voc
,
encoder
,
decoder
,
encoder_optimizer
,
decoder_optimizer
,
embedding
=
load_model
(
loadFilename
,
voc
,
cp_start_iteration
,
attn_model
,
hidden_size
,
encoder_n_layers
,
decoder_n_layers
,
dropout
,
learning_rate
,
decoder_learning_ratio
)
# Use appropriate device
encoder
=
encoder
.
to
(
device
)
decoder
=
decoder
.
to
(
device
)
for
state
in
encoder_optimizer
.
state
.
values
():
for
k
,
v
in
state
.
items
():
if
isinstance
(
v
,
torch
.
Tensor
):
state
[
k
]
=
v
.
cuda
()
for
state
in
decoder_optimizer
.
state
.
values
():
for
k
,
v
in
state
.
items
():
if
isinstance
(
v
,
torch
.
Tensor
):
state
[
k
]
=
v
.
cuda
()
# Ensure dropout layers are in train mode
encoder
.
train
()
decoder
.
train
()
print
(
"Starting Training!"
)
trainIters
(
model_name
,
cp_start_iteration
,
voc
,
pairs
,
encoder
,
decoder
,
encoder_optimizer
,
decoder_optimizer
,
embedding
,
encoder_n_layers
,
decoder_n_layers
,
save_dir
,
n_iteration
,
batch_size
,
print_every
,
save_every
,
clip
,
corpus_name
)
if
__name__
==
"__main__"
:
fire
.
Fire
()
src/Ch
atBot_Chinese
/u_class.py
→
src/Ch
inese_ChatBot
/u_class.py
浏览文件 @
dee47b66
文件已移动
src/Ch
atBot_Chinese
/u_tools.py
→
src/Ch
inese_ChatBot
/u_tools.py
浏览文件 @
dee47b66
文件已移动
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录