Tensorflow:基本原理、数据类型及编码、转换

    xiaoxiao2022-07-05  155

    基本原理

    在TensorFlow中,所有的操作只有当你执行,或者另一个操作依赖于它的输出时才会运行。

    运行op

    构建图时不需要显示声明变量名,如

    tf.concat(axis=1, values=initial_state, name="initial_state")

    直接使用图中的name就可以运行了。

    initial_state = sess.run(fetches="lstm/initial_state:0", feed_dict={"case_feed:0": case_feature})

     

    tensorflow会话

    TensorFlow会自动生成一个默认的计算图,如果没有特殊指定,运算会自动加入这个计算图中。TensorFlow中的会话也有类似的机制,但是TensorFlow不会自动生成默认的会话,而是需要手动指定。

           tf.Session()创建一个会话,当上下文管理器退出时会话关闭和资源释放自动完成。

           tf.Session().as_default()创建一个默认会话,当上下文管理器退出时会话没有关闭,还可以通过调用会话进行run()和eval()操作。

    import tensorflow as tf a = tf.constant([[3, 2, 7], [2, 9, 8]]) print(a) with tf.Session() as sess: print(sess.run(a)) # print(a.eval()) #或者这样

    输出:

    Tensor("Const:0", shape=(2, 3), dtype=int32) [[3 2 7]  [2 9 8]]

    Note: 直接print只会打印tensor信息,是没有数值的。参考[Tensorflow:输入输出]

    import tensorflow as tf a = tf.constant(1.0) b = tf.constant(2.0) with tf.Session().as_default() as sess:    print(a.eval())    print(b.eval(session=sess)) 1.0 2.0

    -柚子皮-

     

     

    tensorflow数据类型及转换

    tf.string类型

            tf.string 张量可以保存不同长度的字节串,因为字节串被视为原子单位。字符串长度不包括在张量尺寸中。即不管用py2还是py3,tf中的str都是bytes类型,有编码的。

            编码转换参考[TensorFlow支持Unicode,中文NLP终于省心了]

            不过建议还是直接用bytes,不要变成unicode了,在tf内部还是会转成bytes。

    其它数据类型及转换参考:

    [TensorFlow 数据类型转换]

    from: -柚子皮-

    ref:

     

     

    最新回复(0)