Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ModelZoo] Support Co_Action Network #344

Open
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

aiden-law-tian
Copy link

No description provided.

@CLAassistant
Copy link

CLAassistant commented Jul 28, 2022

CLA assistant check
All committers have signed the CLA.

shape = variable.get_shape()
variable_parameters = 1
for dim in shape:
# print(dim)
Copy link
Collaborator

Choose a reason for hiding this comment

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

去掉无用的print或是注释

@@ -0,0 +1,228 @@
import numpy
import json
#import cPickle as pkl
Copy link
Collaborator

Choose a reason for hiding this comment

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

同上

cat_idx = 0
self.meta_id_map[mid_idx] = cat_idx

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

Choose a reason for hiding this comment

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

这个路径不要用绝对路径

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
Collaborator

Choose a reason for hiding this comment

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

多余的print

@@ -0,0 +1,91 @@
import pickle as pk

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

Choose a reason for hiding this comment

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

同上,不要使用绝对路径

item_carte_dict = {}
cate_carte_dict = {}

iddd = 0
Copy link
Collaborator

Choose a reason for hiding this comment

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

这个iddd是有用的变量吗?

import hashlib
import random

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

Choose a reason for hiding this comment

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

绝对路径问题

@@ -0,0 +1,800 @@
#import tensorflow as tf
import tensorflow.compat.v1 as tf
Copy link
Collaborator

Choose a reason for hiding this comment

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

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

@@ -0,0 +1,20 @@
import random

fi = open("/home/test/modelzoo/DIEN/data/local_test", "r")
Copy link
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
Collaborator

Choose a reason for hiding this comment

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

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

## Installation
dependences:

tensorflow:1.4.1
Copy link
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
Contributor

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

@aiden-law-tian
Copy link
Author

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

@aiden-law-tian
Copy link
Author

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

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

@Duyi-Wang
Copy link
Contributor

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

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

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

@aiden-law-tian
Copy link
Author

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

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

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

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

@Duyi-Wang
Copy link
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
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
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
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
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
Copy link
Author

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

@@ -0,0 +1,10 @@
export PATH="~/anaconda4/bin:$PATH"
Copy link
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
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
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
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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants