使用numpy从头开始构建cnn

numpycnn的Python项目详细描述


卷积神经网络的numpy实现。 只创建了三个层,即卷积(conv)、relu和max池。 主要步骤如下:

  1. 读取输入图像。

  2. 准备过滤器。

  3. conv层:将每个过滤器与输入图像卷积。

  4. relu层:在特征映射(conv层的输出)上应用relu激活函数。

  5. 最大池层:对relu层的输出应用池操作。

  6. 堆叠conv、relu和max池层

该项目使用安装在Anaconda4.2.0(64位)内部的Python3.5.2进行测试。 使用的numpy版本是1.14.0

名为example.py的文件是使用项目的一个示例。

代码从读取输入图像开始。图像可以是单维图像,也可以是多维图像。 在本例中,使用输入灰度,这就是为什么需要确保图像已经是灰度的原因。

根据输入图像的尺寸,制备第一conv层的滤波器。通过指定以下内容创建筛选器:

  1. 过滤器数量。

  2. 第一维度的大小。

  3. 第二维度的大小。

  4. 三维尺寸等。

因为之前的图像是灰色的,所以过滤器只有宽度和高度,没有深度。这就是为什么只需要指定三个数字(过滤器数量、宽度和高度)就可以创建它。

代码仍然可以处理rgb图像。唯一的区别是使用与图像形状相似的过滤器。如果图像是rgb且未转换为灰色,则将通过指定4个数字(过滤器数量、宽度、高度和通道数量)来创建过滤器。


有关更多详细信息,请参阅描述该项目的文章,题为“从头开始使用numpy构建卷积神经网络”。可在以下链接中找到:

LinkedIn:https://www.linkedin.com/pulse/building-convolutional-neural-network-using-numpy-from-ahmed-gad/

Kd块:https://www.kdnuggets.com/2018/04/building-convolutional-neural-network-numpy-scratch.html 它也被翻译成中文:http://m.aliyun.com/yunqi/articles/585741


联系作者:

金块:https://www.kdnuggets.com/author/ahmed-gad LinkedIn:https://www.linkedin.com/in/ahmedfgad

脸谱网:https://www.facebook.com/ahmed.f.gadd

ahmed.f.gad@gmail.comahmed.fawzy@ci.menofia.edu.eg

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
带有嵌套JAR的java RCP ClassNotFoundException   java在输入框中设置默认值,crud应用程序使用spring   java如何在Heroku中使用fs创建新文件   java将JPanel放在JFrame中   java这个正则表达式会匹配“i.imgur.com/xxx”吗?   java在片段内创建RecylerView,而无需在Android中设置片段   Android上Groovy导致java错误的双精度浮点精度损失   swing Java查找JFrame属于JPanel的内容   java Spring junit自连线自定义类本身必须有构造函数吗?   java textswitcher支持前面的文本   从Android客户端到JAXRS的java Post自定义对象   java如何检索JSON数据并使用MPAndroidChart绘制折线图,以及在安卓上的改进   拒绝用户“root”@“localhost”的java c3p0访问(使用密码“是”)   使用Selenium Webdriver自动化ExtJS应用程序时java面临的问题