关于MatConvNet深度学习库Index exceeds matrix dimensions错误注意事项
来源:互联网 发布:欧洲人怎么看中国知乎 编辑:程序博客网 时间:2024/05/01 04:31
本人在Win7 64位操作系统下,用MatConvNet深度学习框架训练一个网络用于识别鸟类,这个鸟类有20类,网络训练好后,用于识别一下自己在网上爬的一些小鸟图片,识别效果还不错。于是,想在其它数据集上,比如识别狗狗,训练一下看看效果如何。于是本人直接在狗狗数据集上进行end to end训练,在训练的过程中,出现错误:Index exceeds matrix dimensions。一步一步调试,最终定位到 vl_nnsoftmaxloss函数在执行如下语句出错(第77行):
t = xmax + log(sum(ex,3)) - reshape(x(c_), [sz(1:2) 1 sz(4)]) ;
具体就是x(c_)索引超出x的范围,但是x是1x1x20x8,c_为1x1x1x8,貌似没有超出索引范围,百思不得解。最后突然想到,应该是softmax层判别类的数目应该与参与训练网络的数据集中狗狗的类别数目应该一致,所以赶紧去把网络的最后一个block的输出数目改一下,比如这里狗狗的类别数目为100,则将原来设置为鸟类20类的数目改为100,如下:
net = add_block(net, opts, '7', 1, 1, 256, 100, 1, 0)
修改后,网络开始嗖嗖的训练上了。
总结:其实这个错误一开始就应该避免的,因为在训练网络时,参与训练的数据集中样本的类别数应该与网络最后一个block的输出数目一致(小于),否则就会出现类似Index exceeds matrix dimensions的错误,不过本人还没试过最后一个block的输出数目大于样本类别数会对网络有怎样的影响~
阅读全文
0 0
- 关于MatConvNet深度学习库Index exceeds matrix dimensions错误注意事项
- out.Port(4) ??? Index exceeds matrix dimensions.
- 深度学习-MatConvNet(1)-basic
- Inner matrix dimensions must agree.错误解决心得
- 深度学习11:MatConvNet的cifar介绍
- 深度学习 4. MatConvNet 相关函数解释说明,MatConvNet 细节理解,MatConvNet 代码理解
- 关于Matconvnet-1.0-beta23 编译错误解决方案
- MatConvNet--Function index
- 关于MatConvNet
- 深度学习FPGA实现基础知识18(Matconvnet学习笔记)
- MatConvNet学习
- 深度学习架构MatConvNet在Windows下的安装编译
- windows下MatConvNet深度学习框架的搭建
- 深度学习(十一):Matconvnet简介与安装
- 深度学习(十二):Matconvnet小试牛刀与提特征
- 深度学习(十三):Matconvnet详解与实验手写体数据库
- 深度学习 5. MatConvNet 相关函数解释说明,MatConvNet 代码理解(一)cnn_mnist.m 的注释
- 深度学习 6. MatConvNet 相关函数解释说明,MatConvNet 代码理解(二)cnn_mnist_init.m 的注释
- ResultSetMetaData
- 数组2·求最大值及其下标
- POJ-1050-To the Max-二维最大子序列和
- Python--错误总结1
- 从零开发B/S机架应用程序(五)
- 关于MatConvNet深度学习库Index exceeds matrix dimensions错误注意事项
- C++信息学奥赛一本通题库1034计算三角形面积
- 669. Trim a Binary Search Tree/110. Balanced Binary Tree/443. String Compression/266. Palindrome Per
- 2017.11.21 LeetCode
- 接口练习2
- orderfields
- JavaScript获取DOM元素的方法总结
- C++标准转换运算符const_cast
- ubuntu常用功能安装集锦