我正在尝试实施Google的Facenet论文:
首先,是否可以使用Keras的Sequential API实现本文,还是应该使用Graph API?
在任何一种情况下,您能告诉我如何将自定义丢失函数tripletLoss
传递给模型编译,以及如何收到anchor embedding
,positive embedding
和{{ 1}}作为计算损失的参数?
另外,在model.fit()中应该是第二个参数Y,在这种情况下我没有...
答案 0 :(得分:2)
This issue解释了如何在Keras中创建自定义目标(丢失):
def dummy_objective(y_true, y_pred):
return 0.5 # your implem of tripletLoss here
model.compile(loss=dummy_objective, optimizer='adadelta')
关于y
的{{1}}参数,因为你是最后处理它的人(目标函数的.fit()
参数取自它),我会说你可以通过Keras管道传递任何你需要的东西。如果您真的不需要任何监督,也许可以通过维度检查来传递维度检查。
最后,关于如何实施此特定论文,在Keras doc中查找y_true
或triplet
并未返回任何内容。因此,您可能必须自己实施或找到拥有的人。