我的模型中有多个Dense图层的多个输出.我的模型'accuracy'是编译中唯一的度量标准.我想知道每个输出的损失和准确性.这是我的代码的一部分.
scores = model.evaluate(X_test, [y_test_one, y_test_two], verbose=1)
Run Code Online (Sandbox Code Playgroud)
当我打印出分数时,这就是结果.
[0.7185557290413819, 0.3189622712272771, 0.39959345855771927, 0.8470299135229717, 0.8016634374641469]
Run Code Online (Sandbox Code Playgroud)
这些数字代表什么?
我是Keras的新手,这可能是一个微不足道的问题.但是,我已经阅读了Keras的文档,但我仍然不确定.
我有一个生成器函数,它在某些图像目录上无限循环并输出 3 元组的形式
[img1, img2], label, weight
Run Code Online (Sandbox Code Playgroud)
其中img1和img2是batch_size x M x N x 3张量,并且label和weight各自batch_size的X 1张量。
我fit_generator在用 Keras 训练模型时向函数提供了这个生成器。
对于这个模型,我有一个自定义的余弦对比损失函数,
def cosine_constrastive_loss(y_true, y_pred):
cosine_distance = 1 - y_pred
margin = 0.9
cdist = y_true * y_pred + (1 - y_true) * keras.backend.maximum(margin - y_pred, 0.0)
return keras.backend.mean(cdist)
Run Code Online (Sandbox Code Playgroud)
从结构上讲,我的模型一切正常。没有错误,它正在按预期消耗来自生成器的输入和标签。
但现在我正在寻求直接使用每个批次的权重参数,并cosine_contrastive_loss根据特定于样本的权重在内部执行一些自定义逻辑。
如何在执行损失函数时从一批样本的结构中访问此参数?
请注意,由于它是一个无限循环的生成器,因此无法预先计算权重或动态计算它们以将权重归入损失函数或生成它们。
它们具有一致地产生具有所产生的样品,并确有定制逻辑在我的数据生成器,从性能动态地确定的权重img1,img2并且label在此刻它们用于分批生成。