TENSORFLOW中基本概念的理解

TensorFlow 里的一些概念并不straightforward。在这里我把自己经过这一段时间学习的一些理解写下来,希望能帮到其他人。
TensorFlow是一个机器学习框架,它的程序结构当然也都是为深度学习准备的。我们先来看一下一个机器学习的过程是怎样的:

问题

用户要解决一个多分类问题。以一个普通神经网络为例,用户有100条样本记录,每个记录里有8个feature,f1-f8。最终要把一个样本分为3个分类中的一个c1-c3。

网络设计

首先我们要做的就是设计这个网络,比如我们的输入层有8个神经元,一个隐藏层,有16个神经元,一个输出层有3个神经元。
输出层我们用给一个softmax来做分类。

定义loss函数

我们用交叉熵函数来定义loss

减少loss

我们通过loss值来计算梯度,并进行反向传播

多次迭代

正向传播->计算loss->减少loss(反向传播)->正向传播->计算loss->减少loss(反向传播)->…
这样经过多次迭代后loss越来越小。模型越来越精确。

下边我们来看TensorFlow是怎么帮助我们完成上边工作的。我们在进行正向传播是,计算的数字其实来自两个部分,

1. 输入的数据,以及每层的输出。他们每次迭代都是独立的。
2. 网络的参数,每次迭代他们都是在上次迭代的基础上根据梯度和学习率不断做修正的。

Variable

其中需要每次迭代更新的网络参数,在TensorFlow里就用Variable来定义。

Tensor

不需要在迭代间更新的,比如输入,每层的输出,都是用Tensor来定义。

PlaceHolder

因为机器学习可能用到很大的数据来进行训练,我们不能每次训练把所有样本数据加载到内存。所以我们每次迭代只取数据中的一部分,(batch)来进行网络的训练,如果我们每次迭代的数据都不一样,怎么定义网络呢?那就用PlaceHolder。它先占个位置,每次迭代的时候你传入一个Tensor就可以。

Optimizer

Optimizer最重要的方法就是minimize方法,我们用它来minimize我们的loss值,因为loss的计算依赖到了网络里的Variable和Tensor,一直到input。所以Optimizer可以根据依赖关系知道我们整个的计算流图,从而链式求导,反向传播,优化网络。

Graph

Graph就是我们定义的网络。并且它还包含了Variable的collection。

Session

Session里最重要的方法就是run,session的run方法就是执行一个Operation,最重要的是执行Optimizer的minimize方法。来更新网络参数。我们通过迭代多次调用run方法来达到训练网络的目的。

 

 

--------------------------------------------------------------------------------

原文:http://www.rethink.fun/index.php/2018/05/15/tensorflow_base_concept/

TensorFlow是一个开源的机器学习框架,由Google开发并维护。它被广泛用于构建和训练各种机器学习模型,包括神经网络。TensorFlow基本概念包括: 1. 张量(Tensor):TensorFlow的基本数据单位是张量,可以看作是多维数组。张量可以是标量(0维张量)、向量(1维张量)、矩阵(2维张量)或更高维的数组。张量在TensorFlow用于表示输入数据、模型参数和计算结果。 2. 计算图(Computation Graph):TensorFlow使用计算图来描述模型的计算过程。计算图是由一系列节点(Node)和边(Edge)组成的有向无环图。节点表示操作(如加法、乘法、激活函数等),边表示数据流动的方向。 3. 变量(Variable):在TensorFlow,变量用于存储模型的参数,并且在训练过程可以更新。变量在计算图是持久存在的,并且可以跨多个计算图共享。 4. 会话(Session):TensorFlow使用会话来执行计算图的操作。会话负责分配计算资源、管理变量和执行操作。 5. 损失函数(Loss Function):损失函数用于衡量模型在训练过程的预测结果与真实标签之间的差异。通过最小化损失函数,可以使模型逐步优化,提高预测的准确性。 6. 优化器(Optimizer):优化器用于更新模型的参数,使损失函数的值最小化。常见的优化器包括梯度下降(Gradient Descent)、Adam、Adagrad等。 这些是TensorFlow基本概念,了解它们可以帮助理解和使用TensorFlow进行机器学习模型的开发和训练。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值