tensflow

Tensorflow进阶(一)

2018-11-17  本文已影响123人  Daily_Note

Tensorflow进阶

记录,成为更好的自己

1.图

2.会话

3.张量

4.变量

5.模型保存和加载

6.自定义命令行参数

1. 图

不管写什么程序,都要先把图建好,写Python程序也是一样的,把业务逻辑理好,再写程序。

2. 会话

config=tf.ConfigProto(log_device_placement=True)这张图中的所有资源。

3.张量

  1. 张量的阶和数据类型

    张量类似于Numpy,tensorflow依赖了numpy,对numpy进行了封装,类型为tensor。其实就是数组,只不过把名字改了。

    • 一个类型化的N维度数组。
    • Tensor类型由3部分组成,名字(op的名字,如add),形状,数据类型。
      张量的维度成为阶
    数学实例 Python 例子
    0 纯量 (只有大小) s=483
    1 向量 (大小和方向) v=[1,2,3]
    2 矩阵 (数据表) m=[[1,2,3],[4,5,6]]
    3 3阶张量 (数据立体) t=[[],[],[]]
    n n阶 (自己想) .....

    张量的数据类型,跟平常的数据类型查不多

    数据类型 python类型 描述
    DT_FLOAT tf.float32 32位浮点数
    DT_DOUBLE tf.float64 64位浮点数
    DT_INT64
    ... ... ...

    张量的属性

    • graph 张量所属的默认图
    • op 张量的操作名
    • name 张量的字符串描述
    • shape 张量的形状

    形状的改变

    • 静态形状

      创建一个张量或者有操作推导出一个张量是,初始的形状

      • tf.get_shape:获取静态形状
      • tf.set_shape:更行Tensor对象的静态形状
      plt = tf.placeholder(tf.float32, [None, 3])
      plt.set_shape([2,3])
      print(plt)
      

      对于静态形状来说,一旦张量形状固定了,不能再次设置静态形状, 不能夸维度修改

    • 动态形状

      一种描述原始张量在执行过程中的一种形状

      plt = tf.placeholder(tf.float32, [None, 3])
      plt_reshape = tf.reshape(plt, [3,3])
      print(plt_reshape)
      

      动态形状可以去创建一个新的张量,改变时候一定要注意元素数量要匹配,可以跨维度

    • 区别

      有没有生成一个新的张量数据

  2. 张量操作

上一篇 下一篇

猜你喜欢

热点阅读