TensorFlow入门

作者: 阿尔法计算生 | 来源:发表于2017-05-02 23:50 被阅读479次

1.TensorFlow计算模型--计算图

1.1 计算图概念

  • TensorFlow中的每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系

1.2计算图的使用

  • Tensorflow 会自动将定义的计算转化为计算图上的节点。在TensorFlow程序中,系统会自动维护一个默认的计算图,通过tf.get_default_graph函数可以获得当前默认的计算图
print (a.graph is tf.get_dafault_graph())
  • TensorFlow中计算图不仅仅可以用来隔离张量和计算
import tensorflow as tf
g1 = tf.Graph()
with g1.as_default():
    v = tf.get_variable(
     "v", initalizer= zeros_initalizer(shape[1])
    )
g2 = tf.Graph()
with g2.as_default():
    v = tf.get_variable(
     "v", initalizer= one_initalizer(shape[1])
    )
with tf.Session(graph=g1) as sess:
   tf.initialize_all_variables().run()
   with tf.variable_scope("",reuse=True):
      print(sess.run(tf.get_variable("v")))
with tf.Session(graph=g1) as sess:
   tf.initialize_all_variables().run()
   with tf.variable_scope("",reuse=True):
      print(sess.run(tf.get_variable("v")))    
print [0.]
print [1.]

tensorflow 要求手动关闭资源,避免资源浪费。即sess.close,使用with方式可以自动释放,避免异常退出时,导致资源不能释放。

  • 还提供了管理张量和计算的机制
g = tf.Graph()
with g.device('/gpu:0'):
  result = a + b

2 TensorFlow数据模型--张量

2.1 张量的概念

  • 在tensorflow中,所有的数据都通过张量的形式来表示,张量简单理解就是约为多维数组
  • 张量并不保存真正的数字,它保存的是如何得到这些数字的计算过程。可以理解为引用
import tensorflow as tf

a = tf.constant([1.0, 2.0], name = "a")
b = tf.constant([2.0, 3.0], name = "b")
result = tf.add(a,b,name="add")
print result

输出:
Tensro("add:0", shape(2,),dtype=float32)

命名可以通过"node:src_output"形式来给出,node为节点名称,src_output表示当前张量来自节点地第几个输出

  • 张量三个特性:
    1. name:遵守上述规范,不仅仅名字,同样也是给出如何计算出来

    2. shape:描述一个张量的维度信息。比如shape(2,)说明是一个一维数组.

    3. type:每个张量都有一个唯一的类型.tensorflow会对所有参与运算的张量进行类型检查

2.2 张量的使用

  • 对中间计算结果的引用,使张量可以大大提高可读性,也方便获取中间结果.

  • 当计算图构造完成后,张量可以用来获取计算结果,也是得到真实的数字。

3 TensorFlow运行模型--会话

  • 明确调用会话生成函数及关闭函数。
sess = tf.Session()
sess.run(...)
sess.close()

避免异常退出时,导致资源不能释放.

  • 利用python上下文管理器来使用会话。
with tf.Session() as sess:
  sess.run(...)
  • Tensorflow 提供一种交互式环境直接构建会话的函数--tf.InteractiveSession.可通过ConfigProto来配置需要生成的会话。
config = tf.ConfigProto(allow_soft_placement=True,log_device_placement=True)
sess1 = tf.InteractiveSession(config=config)
sess2 = tf.Sess(config=config)

注:allow_soft_palcement 为True表示GPU运算可以当在CPU上进行。log_device_placement将会记录每个节点(node)被安排在了哪个设备上以方便调试。

4 TensorFlow实现神经网络

4.1 TensorFlow 游乐园

  • 地址:http://playground.tensorflow.org
  • 在机器学习中,所有用于描述实体的数字的组合就是实体的向量特征。通过提取特征,就可以将实际问题中实体转化为空间的点
  • 游乐园中,每一条变代表神经网络中的一个参数,它可以是任意实数
  • 神经网络就是通过对参数合理设置来解决分类或者回归问题

4.2 前向传播算法介绍

---------持续更新-----------

相关文章

网友评论

    本文标题:TensorFlow入门

    本文链接:https://www.haomeiwen.com/subject/nkghtxtx.html