首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Microsoft.ML中处理分割网络输出的最佳方法是什么?

在Microsoft.ML中处理分割网络输出的最佳方法是什么?
EN

Stack Overflow用户
提问于 2022-10-03 22:11:09
回答 1查看 65关注 0票数 0

网络产生1xNxK张量,其中N是像素位置数,K是类数,每个值代表给定位置的一个类的分数。

当前检索每个位置最佳类关联的代码正在工作,但它非常慢,而且x4比网络运行本身花费更多的时间。

代码语言:javascript
复制
        private int[,] GetClasses(List<DisposableNamedOnnxValue> output)
        {            
            Tensor<float> outTensor = output.First().AsTensor<float>();
            
            int[,] classes = new int[frameWidth,frameHeight];

            for (int i = 0; i < frameWidth; ++i)
            {
                for (int j = 0; j < frameHeight; ++j)
                {
                    int finalClass = 0;
                    float finalClassScore = 0;
                    for (int k = 0; k < nClasses; ++k)
                    {
                        float score = outTensor[0, i * frameHeight + j, k];
                        if (score > finalClassScore)
                        {
                            finalClassScore = score;
                            finalClass = k;
                        }
                    }
                    classes[i, j] = finalClass;
                }
            }

            return classes;
        }

在Microsoft.ML中是否有更好、更快的方法来做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2022-10-04 03:17:57

我使用的解决方案是在初始的keras模型中添加argmax层。Keras output single value through argmax

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73941282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档