美文网首页机器学习
TensorFlow入门(一)计算图、张量、会话

TensorFlow入门(一)计算图、张量、会话

作者: 又双叒叕苟了一天 | 来源:发表于2018-07-17 17:42 被阅读50次

    导入模块:

    import tensorflow as tf
    

    TensorFlow计算模型——计算图

    TensorFlow会有一个默认的图,但是我们也能去定义一个图,每个图的张量和运算都是独立不共享的。定义方式:

    g = tf.Graph()
    with g.as_default():
        #一些张量的操作
    

    会话中,运行该图:

    with tf.Session(graph=g):
        #一些run操作
    

    TensorFlow数据模型——张量

    张量可以理解为多维数组。零阶张量表示为标量,一阶张量为向量,n阶张量为n维数组。

    a = tf.constant([1.0, 2.0],name="a")#声明了一个a的常数张量
    

    不过张量并没有实际保存数字,而是保存的得到这些数字的计算过程

    张量在参与运算时,要注意类型一致,不能犯下面错误:

    a = tf.constant([1, 2], name="a")
    b = tf.constant([1.0, 2.0], name="b")
    result = a + b
    

    当然我们在声明的时候加入类型声明:

    a = tf.constant([1, 2], name="a", dtype=tf.float32)
    

    就不会出错了。

    TensorFlow支持14种不同的数据类型,主要包括整数,浮点数,复数:

    1. tf.int8
    2. tf.int16
    3. tf.int32
    4. tf.int64
    5. tf.uint8
    6. tf.float32
    7. tf.float64
    8. tf.bool
    9. tf.complex64
    10. tf.complex128

    TensorFlow运行模型——会话

    张量定义了运算,然后通过会话来执行运算。

    创建关闭会话:

    sess = tf.Session()
    sess.run(...)
    sess.close()
    

    由于一些意外,没有close会造成资源泄露,所以我们用更安全的方式,上下文管理器来使用会话:

    with tf.Session() as sess:
        sess.run(...)
    

    会话和图一样可以有多个,但是不会默认产生一个,至少要自己声明一个默认的:

    sess = tf.Session()
    with sess.as_default():
        print(result.eval())#run了result的运算
    

    下面代码实现同样功能:

    sess = tf.Session()
    print(sess.run(result))
    print(result.eval(session=sess))
    

    小结

    张量为TensorFlow的数据模型,存储着得到该数据的运算方式。

    在图中,对张量进行一系列运算的组织。

    通过session来执行这些运算。

    相关文章

      网友评论

      • crystalcd:这个月没钱了。下个月给大佬大赏:monkey_face:

      本文标题:TensorFlow入门(一)计算图、张量、会话

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