tensorflow简介

来源:互联网 发布:俄罗斯代购知乎 编辑:程序博客网 时间:2024/06/12 20:08

你正在了解的的tensorflow项目可能会比 Android 系统更加深远地影响着世界!
缘起
2015年11月9日,Google发布人工智能系统TensorFlow并宣布开源。

机器学习作为人工智能的一种类型,可以让软件根据大量的数据来对未来的情况进行阐述或预判。如今,领先的科技巨头无不在机器学习下予以极大投入。Facebook、苹果、微软,甚至国内的百度。Google 自然也在其中。「TensorFlow」是 Google 多年以来内部的机器学习系统。如今,Google 正在将此系统成为开源系统,并将此系统的参数公布给业界工程师、学者和拥有大量编程能力的技术人员,这意味着什么呢?

打个不太恰当的比喻,如今 Google 对待 TensorFlow 系统,有点类似于该公司对待旗下移动操作系统 Android。如果更多的数据科学家开始使用 Google 的系统来从事机器学习方面的研究,那么这将有利于 Google 对日益发展的机器学习行业拥有更多的主导权。

基本使用

TensorFlow五种基本特性:

  1. 使用图 (graph) 来表示计算任务.
  2. 在被称之为 会话 (Session) 的上下文 (context) 中执行图.
  3. 使用 tensor 表示数据.
  4. 通过 变量 (Variable) 维护状态.
  5. 使用 feed 和 fetch 可以为任意的操作( operation) 赋值或者从其中获取数据.

计算图

TensorFlow 程序通常被组织成一个构建阶段和一个执行阶段. 在构建阶段, op 的执行步骤 被描述成一个图. 在执行阶段, 使用会话执行执行图中的 op.

例如, 通常在构建阶段创建一个图来表示和训练神经网络, 然后在执行阶段反复执行图中的训练 op.

构建图

构建图的第一步, 是创建源 op (source op). 源 op 不需要任何输入, 例如 常量 (Constant). 源 op 的输出被传递给其它 op 做运算.
tensorlfow显存管理
1. 按比例
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
session = tf.Session(config=config, …)
2.按需求增长(theano那种)或者干脆自适应然后自动增长:
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config, …)

实战:构建卷积神经网络用于mnist数据分类

这里写图片描述

反向传播

这里写图片描述

  由神经元i连接到神经元j的突触权值的校正值Δwji(n)定义如下:

(Δwji(n))=(η)×(δj(n))×(jyi(n))

  • 如果神经元j是一个输出层节点,δj(n)=ej(n)φj(vj(n)),输出神经元j还是用了非线性激活函数,其实就是softmax激活函数。要不然没有倒数求?
  • 如果神经元j是一个隐藏层节点,δj(n)=φj(vj(n))kδk(n)wkj(n)

softmax函数

softmax(x)=normalize(xx)

softmax(x)i=exijexj

tf.random_normal([1,100],mean=0,stddev=1)
和tf.random_normal([1,100],mean=0,stddev=0.1)结果如下图。权重初始化时,方差尽量取小,0.1合适。
这里写图片描述

0 0
原创粉丝点击