TensorFlow实现深度学习

首先,TensorFlow是遥遥领先于其他同类的框架的。

 

 

tensor可以理解为一种数据,TensorFlow就相当于一个数据的流动过程,所有能用图(graph)来表示的计算任务理论上都能用TensorFlow 来实现。有图就有节点和边的概念,其中节点是一种操作(如加减乘除)被称为operation简称op,一个节点可以连接很多边,而边上传递的数据就是tensor。为了能够实现一个计算流程就需要一个graph来表示这个流程,而为了能够执行这个图就需要一个会话(Session)来启动这个图,这个过程相当于graph是画好的一张图,然后我用一个Session来执行这个图。

由上面的过程就可以知道,想要实现一个计算就需要先画好一张图(graph),然后就是需要一个会话(Session)来启动这个图,然后通过Session的run()方法来计算图中需要计算的的值。最后就是对计算得到的值进行一些评估(这个比较复杂)。

过程就是:建图->启动图->运行取值

 

 

Tensorflow的layer模块为我们提供了一组抽象层级很高的API,让我们可以轻松地构建一个我们想要的神经网络。我们可以通过layer对象的方法来很方便的实现我们常见的一些对神经网络层操作,例如添加激活函数,应用dropout regularization减少过拟合等。

 

 

MNIST 数据集可在 http://yann.lecun.com/exdb/mnist/ 获取, 它包含了四个部分:

  • Training set images: train-images-idx3-ubyte.gz (9.9 MB, 解压后 47 MB, 包含 60,000 个样本)
  • Training set labels: train-labels-idx1-ubyte.gz (29 KB, 解压后 60 KB, 包含 60,000 个标签)
  • Test set images: t10k-images-idx3-ubyte.gz (1.6 MB, 解压后 7.8 MB, 包含 10,000 个样本)
  • Test set labels: t10k-labels-idx1-ubyte.gz (5KB, 解压后 10 KB, 包含 10,000 个标签)

MNIST 数据集来自美国国家标准与技术研究所, National Institute of Standards and Technology (NIST). 训练集 (training set) 由来自 250 个不同人手写的数字构成, 其中 50% 是高中学生, 50% 来自人口普查局 (the Census Bureau) 的工作人员. 测试集(test set) 也是同样比例的手写数字数据.

 

可以使用next_batch随机划分数据集,来获取一小批的训练数据

在做梯度下降的时候,需要在所有的数据上计算他的梯度。采用随机选取一部分数据提供到神经网络的输入层,通过反向迭代的方式来优化神经网络。

next_batch就在这里起到了选取数据的步骤

X为输入的数据层,输入100个数据,数据对应的是784(28 x 28)的矩阵。

Y为输出的数据层,输出100个数据,数据对应的是0-9的10个数字。

 

 

全连接神经网络:

前向传播(给定输入,层层传递)原生态TensorFlow实现过程:

 

 

 

卷积神经网络:

图像处理过程中使用全连接神经网络最大的问题是参数太多,导致训练不好。

卷积相当于提取图像的特征。

 

 

卷积神经网络常用模型:

另外还有一种Google模型。

 

源程序:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值