tensorflow入门之mnist手写数据集识别

本文介绍了使用Tensorflow进行机器学习的入门教程,特别是针对MNIST手写数字数据集的识别。首先,介绍了如何利用Anaconda安装Tensorflow和设置环境。接着,讲解了MNIST数据集的下载、解压和解析过程,以及数据集转换为向量数组的方法。在Tensorflow中,构建并训练了一个简单的模型,最后测试模型的识别成功率约为0.91。作者建议,理解这些概念需要线性代数、概率论和微积分的基础知识,并提供了相关课程资源。

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

最近开始研究机器学习,整个模型都自己写的话不太现实,所以还是得用框架。几经查找,选择了Google的Tensorflow框架,这个起步也还比较好用,网上参考资料也很多。
参考的教程官网:tensorflow
环境安装的话,我用的python3.6,这里强烈推荐安装个Anaconda,python包管理工具,用起来特别方便,切换python版本什么的也很简单。python库管理也是都可视化的。
在官网下载Anaconda安装包,安装完成之打开Navigator,如下:
anaconda 安装tensorflow
搜索框输入tensorflow然后直接安装就行。
IDE我用的VSCode,安装一下python插件就可以用了。
然后开始入门的教程学习:
首先数据集要从mnist网站上下下来。下面是链接
mnist数据集下载地址
train-images-idx3-ubyte.gz: 训练数据集手写数字图片
train-labels-idx1-ubyte.gz: 训练数据集标签(对应于图片的答案)
t10k-images-idx3-ubyte.gz: 测试数据集图片
t10k-labels-idx1-ubyte.gz: 测试数据集标签

下载下来解压,这是用python struct打包了的byte文件,我们需要用代码再把它解析出来然后转成向量数组便于tensorflow引用,可以在教程上看到,图片集需要转成[60000,784]的矩阵,一个[,784]代表一张图片,即28*28展开成一维数组,这就是训练样本x,初步的计算公式就是y = Wx +b。W是权重,这个就是要不断训练得出来的最优解,b是偏移量,这些都是入门所需知识,在此便不多加赘述。
数据集解析比较麻烦,下面直接贴代码:


    def read_train_image(self,filename):
        index = 0
        binfile = open(filename,'rb')
        buf = binfile.read()
        magic, self.train_img_num, self.numRows,self.numColums = struct.unpack_from('>IIII',buf,index)
        self.train_img_list = np.zeros((self.train_img_num, 28 * 28))
        index += struct.calcsize('>IIII')
        # print (magic, ' ', self.train_img_num, ' ', self.numRows, ' ', self.numColums)

        for i in range(self.train_img_num):
            im = struct.unpack_from('>784B',buf,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值