使用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第三方库


热门话题
java变量始终存储0值。为什么?   如何使用Java/REST将Azure blob从一个存储容器移动到另一个存储容器?   java将commons DBCP从1.2升级到1.4,我应该害怕吗?   java如何使用分隔符拆分字符串?   java使用数组读取json对象   java在groovy中切片字符串   交换数组java的两个邻域元素   java移动用于确定字符串是否为回文的逻辑   java Android应用程序在一个活动中崩溃   java Sparkjava将webapp文件夹设置为静态资源/模板的文件夹   java复杂条件表达式,用户易用。   java如何仅在表存在时从表中选择值   java I无法将数据从Recyclerview传递到其他活动   java数据结构最佳设计(大数据)   java Android从DatePickerDialogFragment中删除日历视图   java将数据从Firebase获取到片段   数组。sort()在java中运行不正常