Skip to content

[ModelZoo] Support Co_Action Network#344

Open
aiden-law-tian wants to merge 8 commits into
DeepRec-AI:mainfrom
aiden-law-tian:aiden
Open

[ModelZoo] Support Co_Action Network#344
aiden-law-tian wants to merge 8 commits into
DeepRec-AI:mainfrom
aiden-law-tian:aiden

Conversation

@aiden-law-tian

Copy link
Copy Markdown

No description provided.

@CLAassistant

CLAassistant commented Jul 28, 2022

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

Comment thread modelzoo/CAN/script/calc_ckpt.py Outdated
shape = variable.get_shape()
variable_parameters = 1
for dim in shape:
# print(dim)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

去掉无用的print或是注释

Comment thread modelzoo/CAN/script/data_iterator.py Outdated
@@ -0,0 +1,228 @@
import numpy
import json
#import cPickle as pkl

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

同上

Comment thread modelzoo/CAN/script/data_iterator.py Outdated
cat_idx = 0
self.meta_id_map[mid_idx] = cat_idx

f_review = open("/home/test/modelzoo/CAN/data/reviews-info", "r")

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个路径不要用绝对路径

Comment thread modelzoo/CAN/script/data_iterator.py Outdated
self.n_mid = len(self.source_dicts[1])
self.n_cat = len(self.source_dicts[2])
self.n_carte = [len(self.source_dicts[3]), len(self.source_dicts[4])]
print("n_uid=%d, n_mid=%d, n_cat=%d" % (self.n_uid, self.n_mid, self.n_cat))

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

多余的print

Comment thread modelzoo/CAN/script/generate_voc.py Outdated
@@ -0,0 +1,91 @@
import pickle as pk

f_train = open("/home/test/modelzoo/DIEN/data/local_train_splitByUser", "r")

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

同上,不要使用绝对路径

Comment thread modelzoo/CAN/script/generate_voc.py Outdated
item_carte_dict = {}
cate_carte_dict = {}

iddd = 0

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个iddd是有用的变量吗?

Comment thread modelzoo/CAN/script/local_aggretor.py Outdated
import hashlib
import random

fin = open("/home/test/modelzoo/DIEN/data/jointed-new-split-info", "r")

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

绝对路径问题

Comment thread modelzoo/CAN/script/model.py Outdated
@@ -0,0 +1,800 @@
#import tensorflow as tf
import tensorflow.compat.v1 as tf

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个里是开源代码就这么写的吗,为啥不import tensorflow

Comment thread modelzoo/CAN/script/split_by_user.py Outdated
@@ -0,0 +1,20 @@
import random

fi = open("/home/test/modelzoo/DIEN/data/local_test", "r")

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

绝对路径问题

scores = tf.where(key_masks, scores, paddings) # [B, 1, T]

# Scale
# scores = scores / (facts.get_shape().as_list()[-1] ** 0.5)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个是开源代码里就注释掉的吗

Comment thread modelzoo/CAN/data/README.md Outdated
## Installation
dependences:

tensorflow:1.4.1

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

以deeprec,python3.6为标准来写

@Duyi-Wang

Copy link
Copy Markdown
Contributor
  • 请和DeepRec/modelzoo根目录下的模型代码保持一样的风格和参数接口
  • 请代码里只保留单个模型相关信息
  • 请移除无关代码,使文件尽量简洁
  • 在能够复用tensorflow接口的情况下,避免重写
  • 请复用modelzoo中的数据集,DIEN/DIN数据集处理方式与论文 repo里提供的方式有不同
@aiden-law-tian

aiden-law-tian commented Aug 26, 2022 via email

Copy link
Copy Markdown
Author
@aiden-law-tian

Copy link
Copy Markdown
Author
  • 请和 DeepRec/modelzoo 根目录下的模型代码保持一样的风格和参数接口
  • 代码里只保留自己的模型相关信息
  • 请移除其他代码,使文件移除
  • 在能够复用张量流接口的情况下,避免灵活
  • 请复用modelzoo中的数据集,DIEN/DIN数据集处理方式与论文回购提供的方式有不同

dien和can的数据是一样的,只是处理方法不同,这两个模型生成的文件也不一样

@Duyi-Wang

Copy link
Copy Markdown
Contributor
  • 请和 DeepRec/modelzoo 根目录下的模型代码保持一样的风格和参数接口
  • 代码里只保留自己的模型相关信息
  • 请移除其他代码,使文件移除
  • 在能够复用张量流接口的情况下,避免灵活
  • 请复用modelzoo中的数据集,DIEN/DIN数据集处理方式与论文回购提供的方式有不同

dien和can的数据是一样的,只是处理方法不同,这两个模型生成的文件也不一样

能否复用DIEN生成的数据文件? 虽然原始数据是一致的,但是处理数据需要花费时间。这部分开销对于测试并不友好,目前DeepRec提供的docker中,是直接提供DIEN处理后的数据文件。如果能够和DIN一样复用的话,能够有效减少测试时处理数据的时间以及减小docker image的大小。

@aiden-law-tian

Copy link
Copy Markdown
Author
  • 请和 DeepRec/modelzoo 根目录下的模型代码保持一样的风格和参数接口
  • 代码里只保留自己的模型相关信息
  • 请移除其他代码,使文件移除
  • 在能够复用张量流接口的情况下,避免灵活
  • 请复用modelzoo中的数据集,DIEN/DIN数据集处理方式与论文回购提供的方式有不同

dien和can的数据是一样的,只是处理方法不同,这两个模型生成的文件也不一样

能否复用DIEN生成的数据文件? 虽然原始数据是一致的,但是处理数据需要花费时间。这部分开销对于测试并不友好,目前DeepRec提供的docker中,是直接提供DIEN处理后的数据文件。如果能够和DIN一样复用的话,能够有效减少测试时处理数据的时间以及减小docker image的大小。

DIEN生成的数据文件缺少了两个文件。其它的文件可以复用

@Duyi-Wang

Copy link
Copy Markdown
Contributor
  • 请和 DeepRec/modelzoo 根目录下的模型代码保持一样的风格和参数接口
  • 代码里只保留自己的模型相关信息
  • 请移除其他代码,使文件移除
  • 在能够复用张量流接口的情况下,避免灵活
  • 请复用modelzoo中的数据集,DIEN/DIN数据集处理方式与论文回购提供的方式有不同

dien和can的数据是一样的,只是处理方法不同,这两个模型生成的文件也不一样

能否复用DIEN生成的数据文件? 虽然原始数据是一致的,但是处理数据需要花费时间。这部分开销对于测试并不友好,目前DeepRec提供的docker中,是直接提供DIEN处理后的数据文件。如果能够和DIN一样复用的话,能够有效减少测试时处理数据的时间以及减小docker image的大小。

DIEN生成的数据文件缺少了两个文件。其它的文件可以复用

  • 那能否在DIEN的处理脚本上添加这俩个文件的生成脚本?希望这几个模型复用的部分的生成方式和脚本是一致。
  • 缺少的文件是?
  • 使数据处理的部分,尽量从train.py中剥离。prepare_data()这部分生成负样本的代码还是想到耗时的,对与测试来说,是不必要的。DIEN就将这部分在处理数据时完成了。
@aiden-law-tian

Copy link
Copy Markdown
Author
  • 请和 DeepRec/modelzoo 根目录下的模型代码保持一样的风格和参数接口
  • 代码里只保留自己的模型相关信息
  • 请移除其他代码,使文件移除
  • 在能够复用张量流接口的情况下,避免灵活
  • 请复用modelzoo中的数据集,DIEN/DIN数据集处理方式与论文回购提供的方式有不同

dien和can的数据是一样的,只是处理方法不同,这两个模型生成的文件也不一样

能否复用DIEN生成的数据文件? 虽然原始数据是一致的,但是处理数据需要花费时间。这部分开销对于测试并不友好,目前DeepRec提供的docker中,是直接提供DIEN处理后的数据文件。如果能够和DIN一样复用的话,能够有效减少测试时处理数据的时间以及减小docker image的大小。

DIEN生成的数据文件缺少了两个文件。其它的文件可以复用

  • 那能否在DIEN的处理脚本上添加这俩个文件的生成脚本?希望这几个模型复用的部分的生成方式和脚本是一致。
  • 缺少的文件是?
  • 使数据处理的部分,尽量从train.py中剥离。prepare_data()这部分生成负样本的代码还是想到耗时的,对与测试来说,是不必要的。DIEN就将这部分在处理数据时完成了。

缺少item_carte_voc.pkl和cate_carte_voc.pkl文件,我试一试加上这两个文件的生成脚本。
另外prepare_data这一部分确实是耗时,是不是处理数据生成一个新文件呢?
最后我想问的是,我其它三个模型的数据也要用DIEN的数据吗

@Duyi-Wang

Copy link
Copy Markdown
Contributor
  • 请和 DeepRec/modelzoo 根目录下的模型代码保持一样的风格和参数接口
  • 代码里只保留自己的模型相关信息
  • 请移除其他代码,使文件移除
  • 在能够复用张量流接口的情况下,避免灵活
  • 请复用modelzoo中的数据集,DIEN/DIN数据集处理方式与论文回购提供的方式有不同

dien和can的数据是一样的,只是处理方法不同,这两个模型生成的文件也不一样

能否复用DIEN生成的数据文件? 虽然原始数据是一致的,但是处理数据需要花费时间。这部分开销对于测试并不友好,目前DeepRec提供的docker中,是直接提供DIEN处理后的数据文件。如果能够和DIN一样复用的话,能够有效减少测试时处理数据的时间以及减小docker image的大小。

DIEN生成的数据文件缺少了两个文件。其它的文件可以复用

  • 那能否在DIEN的处理脚本上添加这俩个文件的生成脚本?希望这几个模型复用的部分的生成方式和脚本是一致。
  • 缺少的文件是?
  • 使数据处理的部分,尽量从train.py中剥离。prepare_data()这部分生成负样本的代码还是想到耗时的,对与测试来说,是不必要的。DIEN就将这部分在处理数据时完成了。

缺少item_carte_voc.pkl和cate_carte_voc.pkl文件,我试一试加上这两个文件的生成脚本。 另外prepare_data这一部分确实是耗时,是不是处理数据生成一个新文件呢? 最后我想问的是,我其它三个模型的数据也要用DIEN的数据吗

尽量复用。
请和modelzoo里保持一致的代码风格,使用dataset和feature column接口读取和处理数据,文件直接使用txt or csv保存,不要使用pkl,这样还需要import包,尽可能减少依赖。

@aiden-law-tian

Copy link
Copy Markdown
Author
  • 请和 DeepRec/modelzoo 根目录下的模型代码保持一样的风格和参数接口
  • 代码里只保留自己的模型相关信息
  • 请移除其他代码,使文件移除
  • 在能够复用张量流接口的情况下,避免灵活
  • 请复用modelzoo中的数据集,DIEN/DIN数据集处理方式与论文回购提供的方式有不同

dien和can的数据是一样的,只是处理方法不同,这两个模型生成的文件也不一样

能否复用DIEN生成的数据文件? 虽然原始数据是一致的,但是处理数据需要花费时间。这部分开销对于测试并不友好,目前DeepRec提供的docker中,是直接提供DIEN处理后的数据文件。如果能够和DIN一样复用的话,能够有效减少测试时处理数据的时间以及减小docker image的大小。

DIEN生成的数据文件缺少了两个文件。其它的文件可以复用

  • 那能否在DIEN的处理脚本上添加这俩个文件的生成脚本?希望这几个模型复用的部分的生成方式和脚本是一致。
  • 缺少的文件是?
  • 使数据处理的部分,尽量从train.py中剥离。prepare_data()这部分生成负样本的代码还是想到耗时的,对与测试来说,是不必要的。DIEN就将这部分在处理数据时完成了。

缺少item_carte_voc.pkl和cate_carte_voc.pkl文件,我试一试加上这两个文件的生成脚本。 另外prepare_data这一部分确实是耗时,是不是处理数据生成一个新文件呢? 最后我想问的是,我其它三个模型的数据也要用DIEN的数据吗

尽量复用。 请和modelzoo里保持一致的代码风格,使用dataset和feature column接口读取和处理数据,文件直接使用txt or csv保存,不要使用pkl,这样还需要import包,尽可能减少依赖。

这个prepare_data部分速度太慢了,可以使用多进程处理吗


## Prepare dataset

Prepare data of DIEN first;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CAN

@aiden-law-tian

aiden-law-tian commented Oct 19, 2022 via email

Copy link
Copy Markdown
Author
@@ -0,0 +1,10 @@
export PATH="~/anaconda4/bin:$PATH"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

移除本地开发变量

@Duyi-Wang

Copy link
Copy Markdown
Contributor

请按照DeepRec最新代码中modelzoo里DIEN的代码,调整代码结构,主要以下几点:
1.代码文件夹名称改为小写
2.如果无特殊需求,直接复用DIEN中数据处理代码和数据集,prepare_data处理慢不是问题,我们在docker image中提供了数据集。
3.模型代码部分只使用一个train.py文件,代码结构参考DIEN的代码,主要顺序为 模型类定义,使用dataset结构构造输入,构造feature_column,train,eval,main函数,参数解析,分布式配置解析,入口。
4.按照DIEN中的代码,启用DeepRec对应的feature
5.与最新代码保持常规参数的一致,例如batch_size等参数以及DeepRec feature的功能开关
6.尽量减少其他包的import

@aiden-law-tian

Copy link
Copy Markdown
Author

请按照DeepRec最新代码中动物园里DIEN的代码,调整代码结构,主要以下几点: 1.代码文件夹名称改为编写2.如果没有特殊需求,直接使用 DIEN中数据处理代码集,prep_data 3.模型代码部分只参考一个train.py 文件,代码结构DIEN的,主要使用顺序为模型类定义,数据集构造输入,构造feature_column 4.按照DIEN中的代码,DeepRec的代码,与 代码保持正常的参数一致,例如atch_size等以及DeepRec特性的功能开关 6.减少其他包的进口

是需要我按照DIEN的重新写一个CAN模型吗

@Duyi-Wang

Copy link
Copy Markdown
Contributor

请按照DeepRec最新代码中动物园里DIEN的代码,调整代码结构,主要以下几点: 1.代码文件夹名称改为编写2.如果没有特殊需求,直接使用 DIEN中数据处理代码集,prep_data 3.模型代码部分只参考一个train.py 文件,代码结构DIEN的,主要使用顺序为模型类定义,数据集构造输入,构造feature_column 4.按照DIEN中的代码,DeepRec的代码,与 代码保持正常的参数一致,例如atch_size等以及DeepRec特性的功能开关 6.减少其他包的进口

是需要我按照DIEN的重新写一个CAN模型吗

是的,包括其他模型,因为要考虑到和现有测试框架的契合

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

6 participants