Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
PaddleRec
提交
838928dd
P
PaddleRec
项目概览
BaiXuePrincess
/
PaddleRec
与 Fork 源项目一致
Fork自
PaddlePaddle / PaddleRec
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleRec
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
838928dd
编写于
9月 16, 2020
作者:
Y
yinhaofeng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
change pyramid
上级
59acb6b8
变更
7
显示空白变更内容
内联
并排
Showing
7 changed file
with
20 addition
and
14 deletion
+20
-14
models/match/dssm/data/preprocess.py
models/match/dssm/data/preprocess.py
+1
-1
models/match/dssm/readme.md
models/match/dssm/readme.md
+1
-1
models/match/match-pyramid/data/process.py
models/match/match-pyramid/data/process.py
+2
-2
models/match/match-pyramid/data_process.sh
models/match/match-pyramid/data_process.sh
+3
-1
models/match/match-pyramid/eval.py
models/match/match-pyramid/eval.py
+2
-2
models/match/match-pyramid/readme.md
models/match/match-pyramid/readme.md
+8
-6
models/match/match-pyramid/run.sh
models/match/match-pyramid/run.sh
+3
-1
未找到文件。
models/match/dssm/data/preprocess.py
浏览文件 @
838928dd
...
...
@@ -63,7 +63,7 @@ print("build dict done")
#划分训练集和测试集
query_list
=
list
(
pos_dict
.
keys
())
#print(len(query_list))
random
.
shuffle
(
query_list
)
#
random.shuffle(query_list)
train_query
=
query_list
[:
11600
]
test_query
=
query_list
[
11600
:]
...
...
models/match/dssm/readme.md
浏览文件 @
838928dd
...
...
@@ -157,7 +157,7 @@ label.txt中对应的测试集中的标签
将hyper_parameters中的slice_end从8改为128.当您需要改变batchsize的时候,这个参数也需要随之变化
将dataset_train中的data_path改为{workspace}/data/big_train
将dataset_infer中的data_path改为{workspace}/data/big_test
将hyper_parameters中的trigram_d改为
6327
将hyper_parameters中的trigram_d改为
5913
5.
执行脚本,开始训练.脚本会运行python -m paddlerec.run -m ./config.yaml启动训练,并将结果输出到result文件中。然后启动transform.py整合数据,最后计算出正逆序指标:
```
...
...
models/match/match-pyramid/data/process.py
浏览文件 @
838928dd
...
...
@@ -106,7 +106,7 @@ def make_train():
pair_list
.
append
((
d1
,
high_d2
,
low_d2
))
print
(
'Pair Instance Count:'
,
len
(
pair_list
))
f
=
open
(
"./data/train/train.txt"
,
"w"
)
f
=
open
(
"./data/
big_
train/train.txt"
,
"w"
)
for
batch
in
range
(
800
):
X1
=
np
.
zeros
((
batch_size
*
2
,
data1_maxlen
),
dtype
=
np
.
int32
)
X2
=
np
.
zeros
((
batch_size
*
2
,
data2_maxlen
),
dtype
=
np
.
int32
)
...
...
@@ -131,7 +131,7 @@ def make_train():
def
make_test
():
rel
=
read_relation
(
filename
=
os
.
path
.
join
(
Letor07Path
,
'relation.test.fold1.txt'
))
f
=
open
(
"./data/test/test.txt"
,
"w"
)
f
=
open
(
"./data/
big_
test/test.txt"
,
"w"
)
for
label
,
d1
,
d2
in
rel
:
X1
=
np
.
zeros
(
data1_maxlen
,
dtype
=
np
.
int32
)
X2
=
np
.
zeros
(
data2_maxlen
,
dtype
=
np
.
int32
)
...
...
models/match/match-pyramid/data_process.sh
浏览文件 @
838928dd
...
...
@@ -3,7 +3,9 @@
echo
"...........load data................."
wget
--no-check-certificate
'https://paddlerec.bj.bcebos.com/match_pyramid/match_pyramid_data.tar.gz'
mv
./match_pyramid_data.tar.gz ./data
rm
-rf
./data/relation.test.fold1.txt
./data/realtion.train.fold1.txt
rm
-rf
./data/relation.test.fold1.txt
tar
-xvf
./data/match_pyramid_data.tar.gz
mkdir
./data/big_train
mkdir
./data/big_test
echo
"...........data process..............."
python ./data/process.py
models/match/match-pyramid/eval.py
浏览文件 @
838928dd
...
...
@@ -49,8 +49,8 @@ filename = './result.txt'
pred
=
[]
for
line
in
open
(
filename
):
line
=
line
.
strip
().
split
(
","
)
line
[
1
]
=
line
[
1
].
split
(
":"
)
line
=
line
[
1
][
1
].
strip
(
" "
)
line
[
3
]
=
line
[
3
].
split
(
":"
)
line
=
line
[
3
][
1
].
strip
(
" "
)
line
=
line
.
strip
(
"["
)
line
=
line
.
strip
(
"]"
)
pred
.
append
(
float
(
line
))
...
...
models/match/match-pyramid/readme.md
浏览文件 @
838928dd
...
...
@@ -72,7 +72,7 @@ python -m paddlerec.run -m models/match/match-pyramid/config.yaml
## 论文复现
1.
确认您当前所在目录为PaddleRec/models/match/match-pyramid
2.
本文提供了原数据集的下载以及一键生成训练和测试数据的预处理脚本,您可以直接一键运行:bash data_process.sh
执行该脚本,会从国内源的服务器上下载Letor07数据集,
删除掉data文件夹中原有的relation.test.fold1.txt和relation.train.fold1.txt,并将完整的数据集解压到data文件夹。随后运行 process.py 将全量训练数据放置于
`./data/train`
,全量测试数据放置于
`./data/
test`
。并生成用于初始化embedding层的embedding.npy文件
执行该脚本,会从国内源的服务器上下载Letor07数据集,
并将完整的数据集解压到data文件夹。随后运行 process.py 将全量训练数据放置于
`./data/big_train`
,全量测试数据放置于
`./data/big_
test`
。并生成用于初始化embedding层的embedding.npy文件
执行该脚本的理想输出为:
```
bash data_process.sh
...
...
@@ -123,6 +123,8 @@ data/embed_wiki-pdc_d50_norm
3.
打开文件config.yaml,更改其中的参数
将workspace改为您当前的绝对路径。(可用pwd命令获取绝对路径)
将dataset_train下的data_path参数改为{workspace}/data/big_train
将dataset_infer下的data_path参数改为{workspace}/data/big_test
4.
随后,您直接一键运行:bash run.sh 即可得到复现的论文效果
执行该脚本后,会执行python -m paddlerec.run -m ./config.yaml 命令开始训练并测试模型,将测试的结果保存到result.txt文件,最后通过执行eval.py进行评估得到数据的map指标
...
...
@@ -131,7 +133,7 @@ data/embed_wiki-pdc_d50_norm
..............test.................
13651
336
('map=', 0.
42087832284359
1)
('map=', 0.
399312788573865
1)
```
## 进阶使用
...
...
models/match/match-pyramid/run.sh
浏览文件 @
838928dd
#!/bin/bash
echo
"................run................."
python
-m
paddlerec.run
-m
./config.yaml &>result1.txt
grep
-i
"prediction"
./result1.txt
>
./result.txt
grep
-i
"prediction"
./result1.txt
>
./result2.txt
sed
'$d'
result2.txt
>
result.txt
rm
-f
result2.txt
rm
-f
result1.txt
python eval.py
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录