图像缩略图

卷积神经网络类

版本1.29.0.0(613KB)由 Mihail Sirotenko
该项目为卷积神经网络的实现提供了matlab类。
4.9
38级

57下载

更新2012年10月24日

查看版本历史记录

查看许可证

注意:此库的下一个版本位于https://bitbucket.org/intelligenceagent/cudacnn-public/wiki/Home
原因是现在它是一个带有Matlab前端的C++/CUDA库,而不是一个Matlab库。

该项目为卷积神经网络的实现提供了matlab类。该网络由Yann LeCun开发,已成功应用于许多实际应用,如手写数字识别、人脸检测、机器人导航等(更多信息请参阅参考文献)。由于卷积网络的某些结构特征,如权值共享,如果不修改其源代码,则无法使用Matlab神经网络工具箱实现卷积网络。这就是为什么这个类几乎独立于NN工具箱(即将完全独立)工作的原因。

此版本包括使用CNN识别手写数字的示例。如果您只想尝试,请运行cnet_工具。您将看到一个简单的GUI。它从cnet.mat加载经过预训练的卷积神经网络,识别在绘画区域绘制或从MNIST数据库下载的数字图像。

有关图书馆的进一步资料,请浏览:
https://sites.google.com/site/mihailsirotenko/projects/convolutional-neural-network-class
在这里:
https://sites.google.com/site/mihailsirotenko/projects/cuda-cnn

引用为

Mihail Sirotenko(2021)。卷积神经网络类(//www.tatmou.com/matlabcentral/fileexchange/24291-cnn-convolutional-neural-network-class),MATLAB中央文件交换。恢复.

意见及评分(76)

尤尼尔Z

艾哈迈德Zaafouri

该算法的处理时间非常长。
如何将其推广到26类英语字符
谢谢分享

艾哈迈德Zaafouri

迪伊

感谢分享

汤姆汤姆

太阳29

你必须输入为3232,许多位置都是硬编码的,大小为3232。

维贾亚·文尼拉

我是CNN的初学者,我需要使用CNN学习单幅图像去杂的补丁质量比较器的编码。因此,请帮助我完成这个。。。。
谢谢你

乔乔

它真的帮助了我,我是神经网络的初学者,我阅读了你的代码并学习了每一部分,它真的很有用。谢谢!

年轻的马

谢谢分享。

郑炳轩

WB Z

干得好,我希望cnn能帮助我完成毕业论文!感谢cnn和myCNN。

伊扎

您需要下载所有四个文件夹并保存在MNIST文件夹中。然后它就可以工作了。

拉哈维迪亚

很适合学习

纳迪亚胡达布

我已经创建了文件夹并在其中保存了数据,但仍然在使用readMNIST(第74行)时出现错误
找不到MNIST的测试图像。请从http://yann.lecun.com/exdb/mnist/并付诸实施
/ MNIST文件夹”。
我如何解决这个问题

若苏利马

你能举个例子吗?

宋歌

西巴鲁瓦希

亲爱的Mihail Sirotenko,
你有这个问题的答案吗(CNN是否可以用从图像中提取的特征而不是图像本身进行训练)。在CNN的输入中,我们有特征?

穆罕默德·乌尔·哈桑

亲爱的Mihail Sirotenko Please此代码对于某些物种的光谱分类非常有用

陈俊彦

黄晓晓

谢恩

比布布普拉萨德帕拉

摩押海门塔利布

我可以用它进行模式识别吗?请问如何运行它

阿西亚乌

谢谢

深蓝

xs陈

shabaz汗

我可以得到查找假阳性和假阴性的代码吗?

艾达·詹索纳

我如何使用CNN实现太阳辐射预测。有人能帮我吗?

穆鲁盖桑·桑加维尔

我希望在Matlab2016a中运行cnn,使用帮助文档中的trainnetwork来训练40幅图像。但我得到了错误
convnet=列车网络(列车数字数据、图层、选项);%运行CNN模式
原因:
无法加载CUDA驱动程序。使用的库名称为“nvcuda.dll”。错误为:
找不到指定的模块。
我现在不想用cuda。怎么办?

夏尔玛先生

如何将其用于语音分类?

颜力

颜力

吴亦菲

wzy w

我把它应用到交通标志识别中,它把所有类别归为同一个类别,你有过这方面的经验吗?如果有,你会建议我改变哪些参数?怎么能

Shemmy

网龙王龙

你好
我想改变最后一层(输出层)使用线性回归,如何做到这一点?

海德

你好
我需要CNN类的结构,即它的方法和函数,以及它的参数。我需要像组件一样的信息:numSLayers、numinput、Perf、num_dec,这些组件与cnet对象一起以cnet.numSLayers、cnet.numinput、cnet.Pref…的形式找到

恩德尔

我在理解这个网络的实际架构方面有问题。通常,LeCun等人对来自前一层的不同特征映射(类似于3D内核的东西)的连接使用了不同的权重。因此,卷积层的权重数(假设连接的完整映射)为kernelHeight*kernelWidth*numFeatMapsLayer(k)*numFeatMapsLayer(k-1)。我不确定,但在这个程序中似乎使用了kernelHeight*kernelWidth*numFeatMapsLayer(k)不同的权重。这是否意味着从上一层的不同特征映射到下一层的特定特征映射的连接具有相同的权重?或者,我误解了什么?

马纳夫

我想在我自己的声音数据集上使用这个工具箱。相当于一幅图像的每幅spectrogram的尺寸为13x500,其中MNIST中的每幅图像的尺寸为28x28。我想将输入宽度和高度分别更改为13和500。我该怎么做呢?

潘俊福

我将其应用于交通标志识别,它将所有类别归为同一类别,你对此有经验吗?如果有,你建议我更改哪些参数?我如何使用从图像中提取的特征而不是图像本身来训练cnn?
我应该在哪里换车?

tc

您好,我已经在八度音阶上运行了train_cnn,但是,我收到了一条错误消息“max_recursion_depth Excelled”。有人知道/经历过同样的问题吗?如何解决?谢谢。

约翰纳森

Mihail Sirotenko

在这个纯matlab版本中,没有最大池。但您可以在bitbucket存储库中的C++/CUDA版本中找到它。

约翰纳森

我已经搜索了一段时间,但找不到最大池层代码。有人能给我指出正确的方向吗?

Elham

您好,我正在运行cnn演示列车,该列车是从Lecun博士的论文中提供的,用于训练网络。我做了20多个时代的全面训练。我得到的最佳MCR是.12,对应12%的误差。我该如何改进这一点?(目标是获得0.8%的误差)
谢谢

Mihail Sirotenko

2利乌德·冈萨雷斯:
1.CNN的输出保存到工作空间变量sinet中。您可以使用matlab函数“保存”将其保存到磁盘上。
2.第147行控制的Hessian计算:
sinet.HcalcMode=0;
默认值0表示运行hessian的估计值。在这种情况下,您不会在gui中注意到它。如果将其更改为1,gui进度条将显示hessian重新计算。

埃利乌德·冈萨雷斯

谢谢,当训练CNN的时候,我是如何拯救它的,还是它自己拯救自己?为什么Hessian计算总是0?

Mihail Sirotenko

Eliud Gonzalez:通常这意味着你没有MNIST数据集。它不是随库一起发布的,但您可以从http://yann.lecun.com/exdb/mnist/
请下载并将文件放入MNIST文件夹。

埃利乌德·冈萨雷斯

我在运行train_cnn.m时遇到了这个错误
?使用==>fread时出错
无效的文件标识符。使用fopen生成有效的文件标识符。

在25处==>readMNIST中出错
magicNum=fread(fid,1,'int32');%幻数

错误==>列车运行时间为30秒
[I,labels,I_test,labels_test]=readMNIST(1000);

>>

埃利乌德·冈萨雷斯

我能做什么,如果我打开train_cnn。我需要安装CUDA吗?对不起,我是这个世界上的新人:(

Mihail Sirotenko

2尹:是的,它可以。实际上,您可以输入任何数据,而不仅仅是图像。
2胡晓蕾:据我所知,最新的Matlab NN工具箱中不支持Conv网络。金宝app

一位胡

有人知道最新的Matlab是否已经改变了它的NN工具箱,从而可以实现CNN吗?

cnn能用从图像中提取的特征而不是图像本身进行训练吗?

Mihail Sirotenko

不幸的是,我没有Matlab 2011b。似乎他们在NN工具箱中改变了一些东西。我将在下一个版本中删除NN工具箱中的依赖项,我现在正在努力完成它。

我尝试训练网络,但我得到错误:
未定义的函数或变量“boiler_transfer”。
tansig_mod中的错误(第64行)

我正在使用MatlabR2011B。有什么帮助吗?

Mihail Sirotenko

整个训练周期需要在整个训练集上大约10个阶段,θ逐渐减小。据我所知,你做了一件大事。

博虎

这是一份很棒的工作。不过,我有一个问题。我使用MNIST手写数字数据库测试这个程序。mcr率非常高(约15%),即使我使用10000个输入来训练cnn。如果我尝试使用60000个输入来训练cnn,那么这个程序将花费相当长的时间,大约几个小时来完成。无论如何,mcr总是在15%左右。我想知道我们应该改变什么参数来提高预测精度。谢谢。

Mihail Sirotenko

关于最后几个问题。我将发布新版本的lib,其中将包含带有面的示例,并将更方便地使用各种数据。它已经基本上起作用了。但我需要一到两周的时间来完成,因为我是在空闲时间完成的。

奇波·何塞

你好
请任何人帮助,以适应此代码的人脸识别
谢谢

任志攀

阿隆·斯基特

现在看到它…看起来很棒:)有可能以某种方式加载jpg或png吗?需要什么?

Mihail Sirotenko

2Gaurav。这意味着文件train_cnn.m对几乎每一行代码都有注释,因此您可以找到要更改的参数,并在开始培训之前实际更改它。train_cnn.m基本上包含网络架构的设置(层数、神经元数等)

高拉夫

在read me文件中训练网络“
如果您对培训感兴趣,您应该打开train_cnn.m,将下面的所有参数设置为注释,并通过运行它开始学习。”
我无法理解“在注释后设置所有参数并通过运行它开始学习”部分

请帮忙

何塞·M·阿尔瓦雷斯

可以使用彩色图像进行训练吗?(从这个例子中,它说不是)。然而,尼古拉·丘梅林的版本可以使用色块进行训练。

西尔维奥·菲利佩

Sebastien巴黎

Mihail Sirotenko

谢谢
事实上,我有一个计划来适应人脸识别,但不幸的是仍然只有计划,因为现在我完全没有时间来开发它。
因此,我建议仔细研究预处理算法,并尝试使体系结构类似于人脸检测。

做记号

干得好!

我曾尝试在人脸识别方面进行此项工作,但没有成功。MCR仍然很高。您对此有经验吗?如果有,您建议我更改哪些参数?

普普QQ

没关系,但只有数字。高质量。

乔纳森·马斯奇

Mihail Sirotenko

非常感谢你的宝贵意见。第一个错误是合并我实验中使用的CNN的不同版本的结果。关于第二个错误,问题是错误计算。在新版本中,我将修复这些错误。

格里戈里

2009年10月22日-当前版本为0.72
-在文件train_cnn。m Conv. Layer 4应该有16个kernel而不是6个。numKernels = 6)或sinet.CLayer{4}。ConMap的大小不应该是6x16。
-net训练结果不返回“最小错误”网络状态。也就是说,在训练过程中,我可以看到爱人的错误,而不是最终的错误。然而,我用自己的图像集将CNN应用于不同的任务。

尼古拉·丘梅林

做得好!干得好我认为这是第一次在Matlab中公开实现CNN培训。源代码是以一种非常好的风格编写的,带有大量的注释,对于这样复杂的类来说非常有用。此提交是计算机视觉Matlab社区的一项资产。

Mihail Sirotenko

新版本即将推出。它将包括:
1.经过培训的实验网络。
2.简单的图形用户界面,可视化数字识别。
3.提高绩效。
4.独立于NN工具箱。

MATLAB版本兼容性
使用R2007a创建
与任何版本兼容
平台兼容性
窗户 马科斯 Linux
致谢

受到启发的:myCNN

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始狩猎!