# (纯C语言)神经网络手写数字识别 **Repository Path**: Heaven_Nine/CNNhandWritenRecognition ## Basic Information - **Project Name**: (纯C语言)神经网络手写数字识别 - **Description**: (纯C语言)神经网络手写数字识别, 训练代码,以及测试代码,仅用于学习。数据集使用MNIST数据集全部数据。 不依赖任何深度学习框架,以C语言源代码方式实现多层神经网络的训练以及测试。 可以帮助在低成本上物联网设备上实现人工智能算法的部署。 - **Primary Language**: C - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2024-11-04 - **Last Updated**: 2024-11-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # (纯C语言)神经网络手写数字识别 File name: TrainHWRCNN.c Description: CNN手写数字识别 训练代码,少部分测试代码,仅用于学习。 File name: VerificationHWRCNN.c Description: CNN手写数字识别的验证程序,需要在训练好的网络参数文件 network_parameter.txt 。 采用 C 语言编写,基于 CNN 模型,使用 MNIST 手写数字数据集进行训练和测试。 File name: Vonepic.c Description: CNN手写数字识别的单图片识别程序, #### 介绍 纯C实现。CNN手写数字识别 训练代码,少部分测试代码,仅用于学习。 数据集使用MNIST数据集全部数据。 参考文献: 1,Conv_factor/基于C语言构建CNN的手写数字识别 https://gitee.com/conv-factor/Handwritten-number-recognition 2,基于CNN的手写数字识别 https://github.com/IammyselfYBX/Handwritten-digit-recognition-based-on-CNN #### 软件架构 代码主要功能是实现一个CNN手写数字识别的训练程序,包括以下函数: isDirectory:判断给定路径是否为目录。 traverseDirectory:遍历目录,找到随机文件路径。 read_file:训练前读取网络参数。 write_para_to_file:训练结束后保存网络参数。 printf_file2:训练过程中的最优参数打印函数。 Conv2d:卷积操作,卷积核大小为 k*k。 MaxPool2d:最大池化操作,池化核大小为 k*k。 Relu:用 LeakyRelu 代替 Relu,避免梯度弥散。 MatrixExtensionImproved:特征图扁平化后 concat。 #### 安装教程 output.zip 是全部60000多张手写数字的数据集,以及6000多张测试集,需要解压到代码目录下。 ##代码简单解释和运行 【(纯C语言)神经网络手写数字识别】【(纯C语言)神经网络手写数字识别】 https://www.bilibili.com/video/BV1p923YbEck/?share_source=copy_web&vd_source=9a7768a01ea4de47cab388a63203d454