Python 如何使用tensoflow最小化由两个模型变量组成的损失
类模型\u DML(对象): train.py的关键代码:Python 如何使用tensoflow最小化由两个模型变量组成的损失,python,tensorflow,deep-learning,loss,Python,Tensorflow,Deep Learning,Loss,类模型\u DML(对象): train.py的关键代码: for i in range(MODEL_NUM): model = model_DML(layer=LAYER, n_users=user_num, n_items=item_num, emb_dim=EMB_DIM, lr=LR, lamda=LAMDA,optimization=OPTIMIZATION,
for i in range(MODEL_NUM):
model = model_DML(layer=LAYER, n_users=user_num, n_items=item_num, emb_dim=EMB_DIM, lr=LR,
lamda=LAMDA,optimization=OPTIMIZATION,
pre_train_latent_factor=pre_train_feature,
if_pretrain=IF_PRETRAIN,margin=Margin)
models.append(model)
train_batch_data = np.array(train_batch_data)
kl_one = kl_div(models[0].cos_value,models[1].cos_value)
kl_two = kl_div(models[1].cos_value,models[0].cos_value)
loss_one = models[0].loss + kl_one
loss_two = models[1].loss + kl_two
opt_one = tf.train.AdamOptimizer(learning_rate=LR)
opt_two = tf.train.AdamOptimizer(learning_rate=LR)
updates_one = opt_one.minimize(loss_one)
updates_two = opt_two.minimize(loss_two)
sess.run(tf.global_variables_initializer())
sess.run(tf.local_variables_initializer())
我想构造一个损失,就像某种知识提炼。
如何使损失1和损失2最小化?
kl_1和kl_2由两个模型的变量组成
for i in range(MODEL_NUM):
model = model_DML(layer=LAYER, n_users=user_num, n_items=item_num, emb_dim=EMB_DIM, lr=LR,
lamda=LAMDA,optimization=OPTIMIZATION,
pre_train_latent_factor=pre_train_feature,
if_pretrain=IF_PRETRAIN,margin=Margin)
models.append(model)
train_batch_data = np.array(train_batch_data)
kl_one = kl_div(models[0].cos_value,models[1].cos_value)
kl_two = kl_div(models[1].cos_value,models[0].cos_value)
loss_one = models[0].loss + kl_one
loss_two = models[1].loss + kl_two
opt_one = tf.train.AdamOptimizer(learning_rate=LR)
opt_two = tf.train.AdamOptimizer(learning_rate=LR)
updates_one = opt_one.minimize(loss_one)
updates_two = opt_two.minimize(loss_two)
sess.run(tf.global_variables_initializer())
sess.run(tf.local_variables_initializer())