如何解决如何在 TF2 上同时更新具有两个不同损失函数的模型的权重
我想训练一个有两个损失的分类模型如下:
model.compile(optimizer=adam)
@tf.function
def train(model,inputs_data_1,inputs_data_2,y):
with tf.GradientTape(persistent=True) as tape:
logits1,features1 = model(inputs_data_1) # logits: output of fully-connected layer
logits2,features2 = model(inputs_data_2) # features: output of feature extractor
loss_fn1 = cross-entropy(y,logits1)
loss_fn2 = euclidean_dist(features1-features2)
losses = loss_fn1 + loss_fn2
optim.apply_gradients(zip(tape.gradient(losses,model.trainable_weights),model.trainable_variables))
当我尝试这个时,它就停止了,没有错误。
我没有使用 tf.split 或 tf.reshape 更改输入数据
如何编译模型并训练两次损失?
请给我一些意见或代码实现来参考这个问题。谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。