美文网首页我爱编程
tensorflow环境搭建&基本概念

tensorflow环境搭建&基本概念

作者: skullfang | 来源:发表于2018-01-08 16:09 被阅读0次

    前言

    本文只是tensorflow的简单介绍。

    安装

    很简单直接

    pip install tensorflow
    

    就可以了。
    如果喜欢用Pycharm ,可以直接按照下包的流程把它下载下来即可。
    验证安装:hello world程序

    import tensorflow as tf
    hello=tf.constant("hello ,world") 
    sess=tf.Session()
    print(sess.run(hello))
    sess.close()
    

    工作方式

    tensorflow 的名字已经说明了它最重要的两个概念——Tensor和Flow。

    Tensor(张量)

    在tensorflow中所有的数据都是通过张量进行表示的,在这里可以把张量理解为一个数据结构。
    它既可以表示常量也可以表示为变量和多维度矩阵。
    在Tensorflow中 一个数 就是一个0阶张量,也称做标量(scalar)
    那么一个向量(一维数组)就是一个1阶张量。
    那么N维数组就是N阶张量.
    既然它是一个数据结构的话那就有自己的属性。张量有三个属性。名字(name),维度(shape)和类型(type)

    import tensorflow as tf
    a=tf.constant(1,name="a")
    b=tf.constant([1,2],name="b")
    c=tf.constant([[1],[2]],name="c")
    
    print a
    print b
    print c
    

    结果是:
    Tensor("a_1:0", shape=(), dtype=int32)
    Tensor("b_2:0", shape=(2,), dtype=int32)
    Tensor("c:0", shape=(2, 1), dtype=int32)

    shape=() 就说明它是个标量。
    shape=(2,)说明它是个一维数组长度为2
    shape=(2,1)说明它是一个二维数组

    tensor显示指定数据的类型其实就是在数据计算的时候做类型检查。
    Tensorflow 支持14种不同的类型,主要包括了小数(tf.float32,tf.float64)整数(tf.int8、tf.int16、tf.int32、tf.int64、tf.uint8)、布尔类型(tf.bool)、复数(tf.complex64、tf.complex128)

    Flow(流)

    我们把所有的数据理解成一个节点,然而每个数据的计算无非就是这个节点到另外一个节点的流向过程。例如
    执行c=a+b
    我们可以理解为a和b的数据经过add这个操作流向了C。flow也就很形象的去解释了这个概念。


    image.png

    计算图

    结合上面的 张量和流的概念,我们甚至可以把上面的c=a+b理解为一个节点组成的图。

    image.png
    没错,这就是Tensorflow中非常重要的一个概念计算图。上面的是最小的图。经过我们设计变化,图会变得很大。但是无非也就是输入流向计算过程流向输出仅此而已。
    20170902203655640.gif

    计算图的使用

    根据上述概念可以知道我们的tensorflow就是一个一个的tensor。一条一条的flow以及一个个的op 组成的图。所以我们使用tensorflow需要两步。

    设计图

    用实际的例子来看,就是之前的c=a+b
    我们需要首先设计图。

    #定义常量op
    a=tf.constant(2)
    b=tf.constant(3)
    
    #定义一个op操作
    add=tf.add(a,b)
    
    #定义一个占位变量(因为c不知道等于多少)
    c=tf.placeholder(tf.int16)
    

    ok这就是我们画出的那张图的各个节点和操作。

    启动图(会话)

    会话也叫session
    在tensorflow中session可以管理运行时候所有的资源。也就是相当于前面都是初始化、必须在会话里面进行运行。代码很简单。

    #定义一个会话
    sess=tf.Session()
    c=sess.run(add)
    print c
    sess.close()
    

    输出是5.
    如果这样写。最后一个必须显式的关闭这个会话,然而当程序一场推出的时候,关闭会话的那条命令可能不会执行从而导致资源泄漏。我们可以使用python的上下文管理器使用会话。

    with tf.Session() as sess:
        c=sess.run(add)
        print c
    

    代码

    # -*- coding: utf-8 -*-
    # @Time    : 2017/12/4 下午3:35
    # @Author  : SkullFang
    # @Email   : yzhang.private@gmail.com
    # @File    : demo1.py
    # @Software: PyCharm
    import tensorflow as tf
    
    #定义常量op
    a=tf.constant(2)
    b=tf.constant(3)
    
    #定义一个op操作
    add=tf.add(a,b)
    
    #定义一个占位变量(因为c不知道等于多少)
    c=tf.placeholder(tf.int16)
    
    # #定义一个会话
    
    with tf.Session() as sess:
        c=sess.run(add)
        print c
    

    相关文章

      网友评论

        本文标题:tensorflow环境搭建&基本概念

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