tensorflow基础知识汇总

Posted on 2021-04-19 23:03  jiang_generator  阅读(221)  评论(0)    收藏  举报

TensorFlow由谷歌人工智能团队谷歌大脑(Google Brain)开发和维护的开源深度学习平台,是目前人工智能领域主流的开发平台,在全世界有着广泛的用户群体。

一、在线安装:

  安装tensorflow及依赖包:pip install tf-nightly

  安装纯净包:pip install tensorflow

  安装GPU版本:pip install tf-nightly-gpu

二、tensorflow体系结构:

2.1  TensorFlow属于“定义”与“运行”相分离的运行机制。从操作层面可以抽象成两种:模型构建和模型运行。

  例如:

    import tensorflow as tf
    import os
    os.environ["CUDA_VISIBLE_DEVICES"]="0"
    a=tf.constant(2)
    b=tf.constant(3)
    c=tf.add(a,b)     with tf.Session() as sess:
      sess.run(c)

2.2 tensorflow运行体系

  TF的实现分为“单机实现”和“分布式实现”。包含以下几个模块:

    客户端:用户编程、执行使用
    master:用来与客户端交互,并进行任务调度
    worker process:工作节点,每个worker process可以访问一到多个device
    device:TF的计算核心,执行计算

        

2.3  后端逻辑层次:

  如图所示:共包含应用层(编程语言接口)、核心API、运行系统(Exec System)、计算层、网络层、设备层(cpu\gpu\tpu管理)等。

      

三、基本概念及相关操作

3.1  图(Graph):描述整个程序结构,Tensorflow中所有的计算都构建在图中。(模型构建)

    图对象的创建:graph1 = tf.Grapt()               设置为默认图对象:graph1.as_default()          获取默认图对象:graph2 = tf.get_default_graph()

      

3.2  会话(Session):用来执行图的运算。(模型运行)

    注意事项:一个session只能执行一个图的运算。可以在会话对象创建时,指定运行的图。如果在构造会话时未指定图形参数,则将在会话中使用默认图。

         如果在同一进程中使用多个图(使用tf.graph( )创建),则必须为每个图使用不同的会话,但每个图可以在多个会话中使用。

     会话的创建:sess = tf.Session()            创建会话时指定运行的图:  sess = tf.Session(graph = graph2)      关闭会话:sess.close()           

             创建会话上下文: with  tf.Session() as sess:

    在会话中运行操作:sess.run(fetches, feed_dict=None)       参数fetches是图中的单个操作,或多个操作的列表;

                                                                                                        参数feed_dict 是运行操作需要的参数构成的字典(可以覆盖操作中原有参数)。

      

3.3  张量(Tensor): 多维数组或向量,张量是数据的载体(可以理解为值,变量的值,常量的值都是张量),包含名字、形状、数据类型等属性。

3.3.1 张量的维度(dim):

    0维张量:  维度表示(),例如:6

    1维张量:  维度表示(3,),例如:[2,3,4]

    2维张量:  维度表示(2,3),例如:[[2,3,4],[5,6,7]]

3.3.2 张量的数据类型(dtype):

    tensorflow张量有自己的数据类型,形如DT_FLOAT,DT_DOUBLE,DT_INT32与python数据类型有对应关系,所以通常用tf.float32,tf.float64,tf.int32来表示张量数据类型,甚至可以直接用float32,int32来表示。

3.3.3 特殊张量的生成函数:

   tf.zeros(shape=[2,3],dtype="float32")         tf.ones(shape=[2,3],dtype="float32")     tf.ones_like(tensor1)      tf.random_normal(shape=3,4],mean=1.7,stddev=0.8,dtype="float32")

3.3.4 张量的数据类型转换函数:

    tf.to_float32(x)          tf.string_to_number(str_tensor)     tf.cast(x,dtype)

 

3.4  占位符(placeholder):是变量占位符,当不能确定变量的值时,可以先声明一个占位符,真正执行时再传入变量。

  创建占位符: phd1 = tf.placeholder(dtype,shape=None,name=None)     例如:  phd1 = tf.placeholder(tf.int32,shape=[2,3],name="score")           phd2 = tf.placeholder(tf.float64,shape=[None,3],name="nums")

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3