使用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安卓,如何从一个私有的内部类更新视图元素,这个类是一个异步任务   如果代码中没有数字,则返回true的java方法   java是否将liferay service builder数据放入api?   java如何在javafx中显示单元格中的字符串数组   javascript如何从另一个GUI类获取变量?   创建多个对象后的java REST API POST响应?   java中静态块中声明的变量的范围是什么?   jsp Java,Spring MVC,从服务器中提取任何类型的文件(.png,.jpg,.pdf,.doc等)并提供给用户下载的最简单方法?   java应用程序运行在其他应用程序之上   java正则表达式匹配字符串是否应包含“;”特定字符串前后   C++的java原生源代码。awt。机器人   用于访问/共享单个目录的java多个Xodus应用程序   java将方法传递给另一个活动   java如何获取Struts 2中XWWWForMurlen编码的contenttype的参数