gpt4 book ai didi

c++ - Mxnet C++ API的输出值

转载 作者:行者123 更新时间:2023-12-02 10:39:24 25 4
gpt4 key购买 nike

我正在尝试使用其C++ API在Mxnet中实现自定义损失函数。损失函数的问题在python(how to use customized loss function with mxnet?)中已经提出,即使它没有解决输出的特定问题。

假设我要创建自己的softmax函数,可以执行以下操作:

         Symbol expFc2 = exp(fc2);
Symbol sumExp = sum("sumExp", expFc2, dmlc::optional<Shape>(Shape(1)));
Symbol expandedSumExp = expand_dims("expandedSumExp", sumExp, 1);
Symbol customSoftmax = broadcast_div(expFc2, expandedSumExp);
Symbol cross_entropy = (-1) * (one_hot("OneHotDataLabel", data_label, 10) * log(customSoftmax) + (1 - one_hot("OneHotDataLabel", data_label, 10)) * log(1 - customSoftmax));
Symbol lenet = MakeLoss(cross_entropy);

但是,每当获得输出 auto curOutput = exe->outputs;时,似乎都在计算损失函数(即 cross_entropy)后得到了值。

如何获得 customSoftmax计算的结果?

最佳答案

没有API可以访问计算图中的中间输出。这是出于优化原因。您需要的任何输出都必须作为图形的输出返回。您可以使用mx.symbol.Group返回多个符号作为输出。

Here是一个Python示例。您应该能够在C++中执行相同的操作。

关于c++ - Mxnet C++ API的输出值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51049937/

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