本文将带您了解关于ONNXC#:我如何阅读这个对象并提取概率值?的新内容,另外,我们还将为您提供关于10000人阅读这个页面后,页面将消失、c–Caffe的Softmax层如何计算概率值?、c#–创建
本文将带您了解关于ONNX C#:我如何阅读这个对象并提取概率值?的新内容,另外,我们还将为您提供关于10000 人阅读这个页面后,页面将消失、c – Caffe的Softmax层如何计算概率值?、c# – 创建N个对象并将它们添加到列表中、c# – 我如何阅读.docx文件?的实用信息。
本文目录一览:- ONNX C#:我如何阅读这个对象并提取概率值?
- 10000 人阅读这个页面后,页面将消失
- c – Caffe的Softmax层如何计算概率值?
- c# – 创建N个对象并将它们添加到列表中
- c# – 我如何阅读.docx文件?
ONNX C#:我如何阅读这个对象并提取概率值?
如何解决ONNX C#:我如何阅读这个对象并提取概率值??
我已经保存了一个 ONNX 转换的预训练 RFC 模型,我正尝试在我的 API 中使用它。我可以调用保存的模型并进行预测,但是我无法获得预测值。反应很复杂,我似乎无法弄清楚。 这是调试模式下的预测值形状:
这里是在 python 中,我正在尝试获取第二个值:
这是我迄今为止尝试过的,但我只得到字符串值。
var result = _inferencesession.Run(new List<NamedOnnxValue>
{
NamedOnnxValue.CreateFromTensor("input",attritionData.AsTensor())
});
var scoreValue = result.LastOrDefault().Value;
var score = scoreValue.GetType()?.GetProperty("Value")?.Attributes;
解决方法
我找到了! 我必须使用 AsEnumerable 然后访问我想要的值:
var seq = result.LastOrDefault().AsEnumerable<NamedOnnxValue>();
var map = seq.First().AsDictionary<Int64,float>();
var values = map.First().Value; //this is what I want
10000 人阅读这个页面后,页面将消失
刚刚在Hacker News上 瞄到一个有趣的标题: This page will disappear in 10,000 views,意即一万人阅读这个页面后,该页面将永久地消失。犹豫了一下,虽然担心我会成为第一万个阅读者,也就是让这个页面万劫不复的人,但我还是抱着 试一试的心理点进去了。打开后的页面中出现了两行字以及一张图,分别是:
这条链接将会在下1位访客点击后失效;
如果你不想这条链接消失,那么在twitter上分享这条链接,它允许的点击量将增加1000。
乍看之下,这个idea有点像网页版的Snapchat,阅后即焚。但它恰恰抓住了人们不希望阅后即焚的心理,加了一条挽救规则——如果分享到社交网络上,那么它的存活几率将高一些。
我们已经看过很多分享到微信朋友圈、新浪微博而火起来的例子,比如百度魔图、疯狂猜图,不知道类似BlinkLink这种游戏性的设计会不会成为下一种病毒性营销的方式?
文章来自 36氪
c – Caffe的Softmax层如何计算概率值?
我正在使用预先训练好的网络,最后是softmax图层.
在测试阶段,对于图像的简单前进,倒数第二层(“InnerProduct”)的输出如下:
-0.20095,0.39989,0.22510,-0.36796,-0.21991,0.43291,-0.22714,-0.22229,-0.08174,0.01931,-0.05791,0.21699,0.00437,-0.02350,0.02924,-0.28733,0.19157,-0.04191,-0.07360,0.30252
最后一层(“softmax”)输出是以下值:
0.00000,0.44520,0.01115,0.00000,0.89348,0.00002,0.00015,0.00003,0.00440,0.00011,0.00006,0.00018,0.00550,0.00004,0.05710
如果我在内积层的输出上应用softmax(使用外部工具,如matlab),我会得到以下值:
0.0398,0.0726,0.0610,0.0337,0.0391,0.0751,0.0388,0.0390,0.0449,0.0496,0.0460,0.0605,0.0489,0.0476,0.0501,0.0365,0.0590,0.0467,0.0452,0.0659
后者对我有意义,因为概率加起来为1.0(注意Caffe的softmax层值的总和> 1.0).
显然,Caffe中的softmax层不是一个直接的softmax操作.
(我认为它没有任何区别,但我只会提到我正在使用预先训练过的flickr风格网络,请参阅说明here).
编辑:
这是proto txt中最后两层的定义.请注意,最后一层的类型是“softmax”.
layer { name: "fc8_flickr" type: "InnerProduct" bottom: "fc7" top: "fc8_flickr" param { lr_mult: 10 decay_mult: 1 } param { lr_mult: 20 decay_mult: 0 } inner_product_param { num_output: 20 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" value: 0 } } } layer { name: "prob" type: "softmax" bottom: "fc8_flickr" top: "prob" }
解决方法
“softmax”层的前向方法执行的操作是:
> computing the maximal value of the input vector
> subtract the maximal value from all elements in the vector
> exponent all values
> sum the exponents
> divide (scale) all exponented values by the sum.
(注意,执行前两个步骤是为了防止计算中的溢出).
c# – 创建N个对象并将它们添加到列表中
目前我可以用一个简单的循环:
private static IEnumerable<MyObj> Create(int count,string foo) { var myList = new List<MyObj>(); for (var i = 0; i < count; i++) { myList .Add(new MyObj { bar = foo }); } return myList; }
而且我想知道是否有另一种方式,也许用LINQ来创建这个列表.
我试过了:
private static IEnumerable<MyObj> CreatepaxPriceTypes(int count,string foo) { var myList = new List<MyObj>(count); return myList.Select(x => x = new MyObj { bar = foo }); }
但这似乎填充了我的列表.
我尝试改变选择到一个foreach,但它是一样的交易.
我意识到列表的容量是count,LINQ没有找到任何元素来迭代.
myList.ForEach(x => x = new MyObj { bar = foo });
有没有正确的LINQ操作符来使这个工作?还是应该坚持循环?
解决方法
return Enumerable.Range(0,count).Select(x => new MyObj { bar = foo });
如果你想创建一个列表,你必须要列出它.
记住你,这可以说是一个非常明显的解决方案,所以不要抛出创建列表的迭代方法.
c# – 我如何阅读.docx文件?
解决方法
获取Code Snippets for Visual Studio 2008的一些例子
我强烈建议下载Open XML SDK生产力工具,它将帮助您了解Open XML文件的结构,甚至可以帮助您根据文档结构生成与SDK一起使用的源代码.您可以从SDK的同一页面下载该工具.这是100MB,但值得下载.
今天关于ONNX C#:我如何阅读这个对象并提取概率值?的介绍到此结束,谢谢您的阅读,有关10000 人阅读这个页面后,页面将消失、c – Caffe的Softmax层如何计算概率值?、c# – 创建N个对象并将它们添加到列表中、c# – 我如何阅读.docx文件?等更多相关知识的信息可以在本站进行查询。
本文标签: