记录一下终于迈过去这个坎。
是一个手写数字识别问题,我卡在为什么相应位置就是这个数字,对卡了很久。
神经网络输出十个数字,经过softmax,输出十个概率,而我的问题是:怎么知道最大的那个概率对应的就是哪个数字?
ai一直解释的是标签和图片怎么绑定在一起的,并且默认,0位置上概率最大,那这个数字就是0。而我的问题恰恰就是为什么0位置就代表数字0,这是什么规定吗?
在我苦苦的鸡同鸭讲中,终于ai开智了,明白了我的问题,也可以是我的语言能力又上一层楼。
于是我得到了答案!
为了验证我是否真的理解了,我问了ai如果是十种动物的多分类问题,标签是不是得先定义一下。
通过枚举和字典的方式人为给类别名加上了数字标签
由于我最开始的手写数字识别是读图来获取标签的,我在这里也卡了一下,认为标签列表里会有重复的数字,当时我没理解到最后输出的时候就是那标签当索引在用。所以我再和ai验证,如果动物分类也是读图+Split图片名来获取类别的话,代码是怎么做的。
用集合去重了,并且排序保证一致性
果然是这样的,最后其实就是拿标签当最后的索引用的,而torch框架里本身就规定了!
其实我一直有问ai这输出位置是不是固定好的,意思就是底层就是这样写好的,但是ai一直给我解释其他东西。
所以搞不懂原理的时候就去看源代码啊!!看看框架是怎么写的呜呜
而我混淆的就是因为手写数字识别,标签就是数字本身!刚好可以直接拿数字(标签)做索引。
复盘一下:
1.搞不懂的时候去看看框架代码是怎么写的
2.用相似问题去提问对比学习,发现差异。比如用动物分类的问题去问,因为可能是原本处理的问题具有令新手混乱的地方
3.卡住的时候换一种提问方式