最近开始研究机器学习,整个模型都自己写的话不太现实,所以还是得用框架。几经查找,选择了Google的Tensorflow框架,这个起步也还比较好用,网上参考资料也很多。
参考的教程官网:tensorflow
环境安装的话,我用的python3.6,这里强烈推荐安装个Anaconda,python包管理工具,用起来特别方便,切换python版本什么的也很简单。python库管理也是都可视化的。
在官网下载Anaconda安装包,安装完成之打开Navigator,如下:
搜索框输入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,

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

1700

被折叠的 条评论
为什么被折叠?



