从头写一个神经网络识别Mnist数据集

本文介绍了如何从头开始构建一个神经网络来识别Mnist数据集。通过参考多个技术文章,解决了损失函数的实现问题。首先,下载Mnist数据集,然后使用两个Python脚本:change.py用于转换数据格式,test.py用于训练和评估模型,最终得出识别准确率。整个过程在Pycharm环境中进行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、参考文章
①https://zhuanlan.zhihu.com/p/58964140
②https://blog.youkuaiyun.com/zugexiaodui/article/details/77130862?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param
③https://blog.youkuaiyun.com/ebzxw/article/details/81591437
④https://www.cnblogs.com/codehome/p/9718611.html
2、难点:损失函数在代码中的体现
步骤:①先下载Mnist数据集
②运行第一个py文件:change.py
③运行第二个py文件:test.py,得到识别准确率
2、Mnist数据集下载地址:
下载后得到的内容:
在这里插入图片描述
3、编译器:Pycharm
4、第一个py文件:change.py
目的:将Mnist数据集文件转换为.csv文件

def convert(imgf, labelf, outf, n):
    f = open(imgf, "rb")
    o = open(outf, "w")
    l = open(labelf, "rb")

    f.read(16)
    l.read(8)
    images = []

    for i in range(n):
        image = [ord(l.read(1))]
        for j in range(28 * 28):
            image.append(ord(f.read(1)))
        images.append(image)

    for image in images:
        o.write(",".join(str(pix) for pix in image) + "\n")
    f.close()
    o.close()
    l.close()


convert("/Users/Downloads/MNIST_dataset/train-images.idx3-ubyte", "/UsersDownloads/MNIST_dataset/train-labels.idx1-ubyte",
        "mnist_train.csv", 60000)
convert("/Users/Downloads/MNIST_dataset/t10k-images.idx3-ubyte", "/Users/Downloads/MNIST_dataset/t10k-labels.idx1-ubyte",
        "mnist_test.csv", 10000)

print("Convert Finished!")

5、第二个py文件:test.py

# Code for a 3-layer neural network, and code for learning the MNIST dataset
# Zhouxw@
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值