问题描述
我想在keras / tensorflow中添加一个自定义损失项,它是由自动编码器生成的当前批处理的所有深度编码/潜在表示之间的平均余弦距离。因此,我在编码末尾添加了一个额外的输出,即潜在的表示形式。然后,我要应用计算批次的每个示例与另一个示例之间的余弦距离。如果我的批处理大小为32,则需要将其计算为32 * 32。
def my_loss_fn2_1(y_true,y_pred):
cosine_loss = tf.keras.losses.Cosinesimilarity(axis=1)
loss = cosine_loss(y_pred,y_pred)
return loss
其中y_pred是深度为[?,10000]
的深度嵌入,其中?是批次尺寸,是因为?我无法复制该批次的示例(32),因此我可以计算该批次之间的距离。此额外的损失项应作为调节器。因此,主要问题是计算彼此之间的距离。我怎样才能做到这一点?使用tf.repeat,tf.tile,tf.gather ...
时,在编译模型时遇到问题,因为批处理维度为none /?因此,我无法重复这些示例。还有其他方法或解决方案可以做到这一点吗?
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)