项目来源:零基础入门推荐系统 - 新闻推荐_学习赛_天池大赛-阿里云天池 (aliyun.com)
报错代码:
model = YoutubeDNN(user_feature_columns, item_feature_columns,user_dnn_hidden_units=(64, 16),num_sampled=5 )
报错:
修改:
from deepmatch.utils import sampledsoftmaxloss, NegativeSampler
from tensorflow.keras.utils import plot_model
from collections import Counter
train_counter = Counter(train_model_input['click_article_id'])
item_count = [train_counter.get(i,0) for i in range(item_feature_columns[0].vocabulary_size)]
sampler_config = NegativeSampler('frequency',num_sampled=5,item_name="click_article_id",item_count=item_count)
import tensorflow as tf
if tf.__version__ >= '2.0.0':
tf.compat.v1.disable_eager_execution()
else:
K.set_learning_phase(True)
model = YoutubeDNN(user_feature_columns, item_feature_columns, user_dnn_hidden_units=(64,16, embedding_dim), sampler_config=sampler_config)
原因:
原项目中用的代码是符合deepmatch==0.1.0的,但是根据包的不断更新,默认安装的deepmatch==0.9.3 比较新,对应的源码中的YoutubeDNN有了一些参数变化,跟着最新的源码修改即可。