查看: 201|回复: 2

小白求助,关于tensorflow模型无法保存的问题

[复制链接]

2

主题

13

回帖

30

积分

新手上路

Rank: 1

积分
30
发表于 2024-11-1 22:03:48 | 显示全部楼层 |阅读模式
如题,找了一个神经协调过滤的模型,但是想保存时提示自定义层什么什么的,搞不懂,没看到代码里面有什么自定义层啊
具体警告如下:
CustomMaskWarning: Custom mask layers require a config and must override get_config. When loading, the custom mask layer must be passed to the custom_objects argument.   warnings.warn('Custom mask layers require a config and must override '
模型代码如下:
def get_compiled_neumf_model(num_users, num_items, lr = 0.001, mf_dim=10, layers_num=[10], reg_layers=[0], reg_mf=0):
assert len(layers_num) == len(reg_layers)
num_layer = len(layers_num) #Number of layers in the MLP
# Input variables
user_input = layers.Input(shape=(1,), dtype='int32', name='user_input')
item_input = layers.Input(shape=(1,), dtype='int32', name='item_input')
# Embedding layer
mf_embedding_user = layers.Embedding(input_dim=num_users, output_dim=mf_dim, name='mf_embedding_user',
embeddings_initializer=initializers.RandomNormal(),
embeddings_regularizer=regularizers.l2(reg_mf),
input_length=1)
mf_embedding_item = layers.Embedding(input_dim=num_items, output_dim=mf_dim, name='mf_embedding_item',
embeddings_initializer=initializers.RandomNormal(),
embeddings_regularizer=regularizers.l2(reg_mf), input_length=1)
mlp_embedding_user = layers.Embedding(input_dim=num_users, output_dim=int(layers_num[0]/2), name="mlp_embedding_user",
embeddings_initializer=initializers.RandomNormal(),
embeddings_regularizer=regularizers.l2(reg_layers[0]), input_length=1)
mlp_embedding_item = layers.Embedding(input_dim=num_items, output_dim=int(layers_num[0]/2), name='mlp_embedding_item',
embeddings_initializer=initializers.RandomNormal(),
embeddings_regularizer=regularizers.l2(reg_layers[0]), input_length=1)
# MF part
mf_user_latent = layers.Flatten()(mf_embedding_user(user_input))
mf_item_latent = layers.Flatten()(mf_embedding_item(item_input))
mf_vector = layers.multiply([mf_user_latent, mf_item_latent])
# MLP part
mlp_user_latent = layers.Flatten()(mlp_embedding_user(user_input))
mlp_item_latent = layers.Flatten()(mlp_embedding_item(item_input))
mlp_vector = layers.concatenate([mlp_user_latent, mlp_item_latent])
for idx in range(1, num_layer):
layer = layers.Dense(layers_num[idx], kernel_regularizer=regularizers.l2(reg_layers[idx]), activation='relu', name="layer%d" % idx)
mlp_vector = layer(mlp_vector)
# Concatenate MF and MLP parts
predict_vector = layers.concatenate([mf_vector, mlp_vector])
# Final prediction layer
prediction = layers.Dense(1, activation='sigmoid', kernel_initializer=initializers.lecun_normal(),
name="prediction")(predict_vector)
model_nuemf = models.Model(inputs=[user_input, item_input], outputs=prediction)
model_nuemf.compile(optimizer=optimizers.Adam(learning_rate=lr, clipnorm=0.5), loss='binary_crossentropy')
return model_nuemf
一个神经协同过滤的模型,henxiannan博士论文里的,原本代码是只保存权重,但是我想先试试能不能保存整个模型
回复

使用道具 举报

发表于 2024-11-3 06:44:04 | 显示全部楼层
啥方面的啊,也不介绍一下?
回复 支持 反对

使用道具 举报

1

主题

9

回帖

19

积分

一年会员

Rank: 1

积分
19
发表于 2024-11-4 20:38:13 来自手机 | 显示全部楼层
做为一名新人,不敢在大声说话,也不敢得罪人,只能默默地顶完贴然后转身就走人。动作要快,姿势要帅,深藏功与名。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

特惠

限量优惠活动

正在火热进行

站长

添加站长微信

领取运营礼包

下载

便携运营智库

立即下载APP

导航

运营工具导航

AI工具导航

AI

AI运营助手

帮助

帮助中心

常见问题

顶部