README.md

    cnn_paddle这个项目是我自己学习DL以来独立完成的第三个深度学习方面的项目,代码片段是从网上找来并加以注释修改成为自己可以快速理解的形式。

    为了巩固熟悉这些代码,多次在碎片化的时间手动抄写,键盘输入已经很多遍,目的就是为了能都烂熟于心。

    整理出来这个项目一直在电脑上放着,20210516抽时间把他发布到codechina,目的也是方便自己温故知新。

    另外也希望对DL感兴趣的初学者能够看到,在学习中少走一些弯路,看着这些简单的文件,我从刚开始学习到能够独自整理出来这一个项目也花费了大量的时间。

    ##项目介绍: 1.这个项目是用经典的MNIST的数据集作为训练对象,训练出来的一个模型,来预测手写数字的算法,属于机器视觉cv领域的图像分类的问题,记住这个词是图像分类 2.训练模型是用的卷积神经网络cnn,用的深度学习框架是paddle,(有时间我会用numpy自己搭建一个cnn卷积神经网络,希望大家关注) 3.这个卷积神经网络分为三层,在源代码里面我都有注释,一层卷积,一层池化,第二层卷积,第二层池化,第三层是fc全连接层 4.全连接层输出10个类别

    ##项目结构 1.文件train_main.py为训练模型的主程序,运行这个文件,会训练模型,并把训练好的参数保存成mnist.pdparams文件,供预测程序调用 2.cnn_net.py文件为卷积网络模型,这个用的是卷积神经网络模型,训练文件和预测文件都会调用这个模型,训练文件用这个模型训练,输出权重文件,预测文件加载权重文件 3.cnn_function.py是构造一个生成器reader,来读取数据 4.image_chuli_function.py是图片处理函数,把图片文件矩阵转换成cnn训练的数据格式 5.decode_binary_function.py是解码二进制函数,下面的数据集介绍里面会有答案,因为MNIST的数据集是以二进制保存的文件,需要先把二进制文件解码,解码称为图片数组的样式

    ##数据集介绍 MNIST下面有processed文件夹和raw文件夹 ubyte是二进制文件 更多的解释在代码中都注释了,不明白可以认真抄写一遍并运行一遍代码 #mnist使用的大端方法存储的数据 TRAINING SET IMAGE FILE (train-images-idx3-ubyte): [offset] [type] [value] [description] 0000 32 bit integer 0x00000803(2051) magic number 0004 32 bit integer 60000 number of images 0008 32 bit integer 28 number of rows 0012 32 bit integer 28 number of columns 0016 unsigned byte ?? pixel 0017 unsigned byte ?? pixel ........ xxxx unsigned byte ?? pixel

    项目简介

    用paddle建立一个卷积神经网络模型,数据集是MNIST,训练模型,预测手写数字

    发行版本

    当前项目没有发行版本

    贡献者 1

    异萌 @yuejich

    开发语言

    • Python 100.0 %