Blog-Back-Up icon indicating copy to clipboard operation
Blog-Back-Up copied to clipboard

博客相关文件存储

Results 5 Blog-Back-Up issues
Sort by recently updated
recently updated
newest added

我看您写的那个triplet loss那里,建立的模型最后一层是是一个dense,这是全连接层,为啥这里叫embedding层了?在keras里面有一个embedding的函数,但是不懂具体的实现,在tensorflow里面也有相关的,embedding_lookup的函数,想问这里为啥这里输出就是embedding了

比如我给了labels 如下 (1,1,0) 那么batch size为3,这里有一个符合条件的标签信息对吧,然后输入的embeddings对应这个labels,但是就是之前要获得3D mask,那个地方的什么得到一个3D的mask [a, p, n], 对应triplet(a, p, n)是valid的位置是True还是没懂,有的地方是false,有的地方是true,这个位置不一样,有什么关联么?可不可以麻烦您,结合一个小例子指导一下呀?

首先非常感谢您提供的代码,有两个问题希望您能提供帮助 1、在我用batch_hard_triplet_loss方法训练手写数字网络时,我发现如果我的网络不加BN层,训练一会之后loss就会固定在margin的大小不在下降,并且acc(acc使用KNN求得)变成了0,我查看了一下_pairwise_distances,发现距离矩阵也差不多都变成了?这是什么原因造成的呢,必须要加bn层吗? 2、我将batch_hard_triplet_loss用在其他分类任务当中,网络采用VGG网络以及自己设计的简单网络,我发现就算我加了BN层,两个网络也会出现上述情况,我只用了三元组损失并没有使用其他损失,不知道这是什么原因?跟网络的大小或者分类任务的难易有关吗? 谢谢,希望您能回答。

请问一下,triplet loss之前都要进行L2归一化处理吗?我看到facenet 网络的最后使用了L2归一化得到embeddings,但是有的代码又没有使用L2归一化?