使用Tensorflow和Keras实现三重损失

时间:2020-06-05 08:08:24

标签: python tensorflow keras

我目前正在尝试使用Tensorflow和Keras实现this blog post中描述的三重态损失。我发现一个非常有用的git repo可以用作实现的起点。

回购代码中的第287行创建了Y_train张量:

Y_train = np.random.randint(2, size=(1,2,anchors_t.shape[0])).T

随机填充0和1。

当模型在第293行拟合时,Y_train被传递到createDataGen方法中:

# This method uses data augmentation
model.fit_generator(generator=createDataGen(anchors_t,positives_t,negatives_t,Y_train,batch), steps_per_epoch=len(Y_train) / batch, epochs=1, shuffle=False, use_multiprocessing=True)
def createDataGen(X1, X2, X3, Y, b):

    local_seed = T_G_SEED
    genX1 = datagen.flow(X1,Y, batch_size=b, seed=local_seed, shuffle=False)
    genX2 = datagen.flow(X2,Y, batch_size=b, seed=local_seed, shuffle=False)
    genX3 = datagen.flow(X3,Y, batch_size=b, seed=local_seed, shuffle=False)
    while True:
            X1i = genX1.next()
            X2i = genX2.next()
            X3i = genX3.next()

            yield [X1i[0], X2i[0], X3i[0]], X1i[1]

我在问自己以下问题:

为什么createDataGen方法也返回X1i [1]?

0 个答案:

没有答案