gpt4 book ai didi

python - python CNTK 中损失函数的替代方案

转载 作者:太空宇宙 更新时间:2023-11-04 02:58:26 25 4
gpt4 key购买 nike

我在 CNTK 中创建了一个顺序模型,并将该模型传递给损失函数,如下所示:

ce = cross_entropy_with_softmax(model, labels)

如前所述here因为我有多标签分类器,所以我想使用适当的损失函数。问题是我找不到任何合适的文档来在 Python 中找到这些损失函数。这个需求有什么建议或者示例代码吗?

我应该注意到,我在 BrainScript 语言中找到了这些替代方案(logistic 和 weighted logistic),但在 Python 中找不到。

最佳答案

“我的数据有多个标签(三个标签),每个标签有两个以上的值(30个不同的值)”

我没理解错吗,你有 3 个网络输出和关联的标签,每个都是 30 分之一的分类器?然后看起来你可以只添加三个 cross_entropy_with_softmax() 值。这是你想要的吗?

例如如果模型函数返回一个三元组(以 return combine([z1, z2, z3]) 结尾),那么您传递给 Trainer 的标准函数可能如下所示(如果您不t 使用 Python 3,语法略有不同):

from cntk.layers.typing import Tensor, SparseTensor
@Function
def my_criterion(input : Tensor[input_dim], labels1 : SparseTensor[30],
labels2 : SparseTensor[30], labels3 : SparseTensor[30]):
z1, z2, z3 = my_model(input).outputs
loss = cross_entropy_with_softmax(z1, labels1) + \
cross_entropy_with_softmax(z2, labels2) + \
cross_entropy_with_softmax(z3, labels3)
return loss

learner = ...
trainer = Trainer(None, my_criterion, learner)

# in MB loop:
input_mb, L1_mb, L2_mb, L3_mb = my_next_minibatch()
trainer.train_minibatch(my_criterion.argument_map(input_mb, L1_mb, L2_mb, L3_mb))

关于python - python CNTK 中损失函数的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41679781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com