zoukankan      html  css  js  c++  java
  • 深度学习-Tensorflow基本介绍01

    一,认识TensorFlow

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    二,安装Tensorflow

    在这里插入图片描述
    安装的1.13版本,目前已更新2.0+版本

    pip install tensorflow==1.13.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
    
    

    在这里插入图片描述

    三,TensorFlow图的结构

    import os
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
    import tensorflow as tf
    
    # 实现一个加法运算
    a = tf.constant(5.0)
    b = tf.constant(6.0)
    print(a,b)
    with tf.Session() as sess: # 上下文管理器
        pass
    

    在这里插入图片描述
    在这里插入图片描述

    import os
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
    import tensorflow as tf
    
    # 实现一个加法运算
    a = tf.constant(5.0)
    b = tf.constant(6.0)
    sum1 = tf.add(a,b)
    print(sum1)
    with tf.Session() as sess: # 上下文管理器
        print(sess.run(sum1))
    
    

    在这里插入图片描述

    1,数据流图

    在这里插入图片描述
    数据:tensor:张量
    operation:(OP):专门运算的操作节点,所有操作都是一个op
    图:graph:你的整个程序的结构
    在这里插入图片描述

    在这里插入图片描述
    边是由流动的Tensor组成;
    每个节点是Operation操作,即一些数学的操作、激励函数的操作等,作为Operation的输入和输出都是Tensor(张量);
    边和节点共同构成了Graph,即数据流图;
    对于数据流图的运行,需要创建Session这样一个会话来运行,Session可以在不同的设备上运行,例如GPU、CPU等。
    在这里插入图片描述
    在这里插入图片描述

    2,图

    在这里插入图片描述

    import os
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
    import tensorflow as tf
    
    # 实现一个加法运算
    a = tf.constant(5.0)
    b = tf.constant(6.0)
    sum1 = tf.add(a,b)
    graph = tf.get_default_graph() # 默认的这张图,相当于是给程序分配一段内存地址
    print(graph)
    with tf.Session() as sess: # 上下文管理器
        print(sess.run(sum1))
        print(a.graph)
        print(sum1.graph)
        print(sess.graph)
    

    在这里插入图片描述
    在这里插入图片描述

    import os
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
    import tensorflow as tf
    
    # 创建一张图(包含了一组op和tensor)
    g = tf.Graph()
    with g.as_default():
        c = tf.constant(10.0)
        print(c.graph)
    
    # 实现一个加法运算
    a = tf.constant(5.0)
    b = tf.constant(6.0)
    sum1 = tf.add(a,b)
    graph = tf.get_default_graph() # 默认的这张图,相当于是给程序分配一段内存地址
    print(graph)
    with tf.Session() as sess: # 上下文管理器
        print(sess.run(sum1))
        print(sum1.graph)
    
    
    
    

    在这里插入图片描述
    创建一张图(包含了一组op和tensor)
    op: 只要使用了TensorFlow的API定义的函数,都是op
    张量(tensor):指的就是数据
    在这里插入图片描述

    3,会话

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在编译环境中,输入要执行的Tensorflow代码,当创建会话执行相应的功能时,首先客户端会创建一个图,接着,使用会话的run操作,这是会将需要执行的操作传入服务端,服务端使用C++语言完成相应的操作, 得出结果后,将结果传回客户端,然后根据代码命令最后输出返回的结果。

    在这里插入图片描述
    在这里插入图片描述

    import os
    import tensorflow as tf
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
    
    
    # 实现一个加法运算
    a = tf.constant(5.0)
    b = tf.constant(6.0)
    sum1 = tf.add(a,b)
    graph = tf.get_default_graph() # 默认的这张图,相当于是给程序分配一段内存地址
    print(graph)
    with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess: # 上下文管理器
        print(sess.run(sum1))
        print(sum1.graph)
    
    
    
    

    在这里插入图片描述
    在这里插入图片描述

    import os
    import tensorflow as tf
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
    
    
    # 实现一个加法运算
    a = tf.constant(5.0)
    b = tf.constant(6.0)
    sum1 = tf.add(a,b)
    graph = tf.get_default_graph() # 默认的这张图,相当于是给程序分配一段内存地址
    print(graph)
    with tf.Session() as sess: # 上下文管理器
        print(sess.run(sum1))
        print("-"*50)
        print(sum1.graph)
        print("-" * 50)
        print(sum1.eval()) # 只要有绘画的上下文环境,就可以使用方便的eval()
    
    
    
    

    在这里插入图片描述

    4,会话里的run()方法

    在这里插入图片描述

    import os
    import tensorflow as tf
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
    
    
    # 实现一个加法运算
    a = tf.constant(5.0)
    b = tf.constant(6.0)
    sum1 = tf.add(a,b)
    graph = tf.get_default_graph() # 默认的这张图,相当于是给程序分配一段内存地址
    
    with tf.Session() as sess: # 上下文管理器
        print(sess.run([a,b,sum1]))
        print("-"*50)
    

    在这里插入图片描述
    重载机制

    在这里插入图片描述

    import os
    import tensorflow as tf
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
    
    
    # 实现一个加法运算
    a = tf.constant(5.0)
    b = tf.constant(6.0)
    sum1 = tf.add(a,b)
    
    # 不是op不能直接运行
    aa = 1.0
    bb = 2.0
    sum2 = aa + bb
    
    # 重载机制(只要一部分是op类型,那么默认会给运算符重载成op类型)
    sum3 = a + aa
    
    graph = tf.get_default_graph() # 默认的这张图,相当于是给程序分配一段内存地址
    
    with tf.Session() as sess: # 上下文管理器
        print(sess.run(sum3))
        print("-"*50)
    

    在这里插入图片描述
    在这里插入图片描述

    import os
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
    import tensorflow as tf
    
    # 训练模型,实时提供数据去进行训练
    # placeholder 是一个占位符,feed_dict是一个字典
    plt = tf.placeholder(tf.float32,[2,3]) # 2行3列
    
    with tf.Session() as sess: # 上下文管理器
        print(sess.run(plt,feed_dict={plt:[[1,2,3],[4,5,6]]}))
    

    在这里插入图片描述

    import os
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
    import tensorflow as tf
    
    # 训练模型,实时提供数据去进行训练
    # placeholder 是一个占位符,feed_dict是一个字典
    plt = tf.placeholder(tf.float32,[None,3]) # 行不固定,3列
    print(plt)
    
    with tf.Session() as sess: # 上下文管理器
        print(sess.run(plt,feed_dict={plt:[[1,2,3],[4,5,6],[7,8,9]]}))
    

    在这里插入图片描述

    5,张量的定义及数据

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    数据的类型代表进度不一样
    在这里插入图片描述
    在这里插入图片描述

    import os
    import tensorflow as tf
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
    
    # # 实现一个加法运算
    a = tf.constant(5.0)
    b = tf.constant(6.0)
    sum1 = tf.add(a,b)
    
    
    graph = tf.get_default_graph() # 默认的这张图,相当于是给程序分配一段内存地址
    
    with tf.Session() as sess: # 上下文管理器
        print(sum1.graph)
        print("-"*50)
        print(sum1.name)
        print("-"*50)
        print(sum1.op)
        print("-"*50)
        print(sum1.shape)
    

    在TensorFlow中:打印出来的形状表示如下:
    0维:() 1维:(5)
    2维:(5,6) 3维(2,3,4)
    在这里插入图片描述
    在这里插入图片描述

    import os
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
    import tensorflow as tf
    
    
    # placeholder 是一个占位符,feed_dict是一个字典
    plt = tf.placeholder(tf.float32,[None,3]) # 形状不固定
    print(plt)
    
    # 形状的改变(静态形状,动态形状)
    plt.set_shape([2,3])
    print(plt)
    
    
    with tf.Session() as sess: # 上下文管理器
        pass
    

    在这里插入图片描述
    在这里插入图片描述

    import tensorflow as tf
    
    # placeholder 是一个占位符,feed_dict是一个字典
    plt = tf.placeholder(tf.float32,[None,3]) # 形状不固定
    print(plt)
    
    # 形状的改变(静态形状,动态形状)
    plt.set_shape([4,3])
    print(plt)
    # plt.set_shape([4,3]) # 对于静态形状来说,一旦张量形状固定了,不能再次设置静态形状
    plt_reshape = tf.reshape(plt,[2,6]) # 动态形状可以去创建一个新的张量,注意:元素数量必须匹配
    print(plt_reshape)
    
    
    with tf.Session() as sess: # 上下文管理器
        pass
    

    在这里插入图片描述

    import os
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
    import tensorflow as tf
    
    # placeholder 是一个占位符,feed_dict是一个字典
    plt = tf.placeholder(tf.float32,[None,3]) # 形状不固定
    print(plt)
    
    # 形状的改变(静态形状,动态形状)
    plt.set_shape([4,3])
    print(plt)
    # plt.set_shape([4,3]) # 对于静态形状来说,一旦张量形状固定了,不能再次设置静态形状,不能跨维度修改
    plt_reshape = tf.reshape(plt,[2,6]) # 动态形状可以去创建一个新的张量,注意:元素数量必须匹配
    print(plt_reshape)
    plt_reshape2 = tf.reshape(plt,[2,3,2]) # 动态形状可以去创建一个新的张量,注意:元素数量必须匹配,可以跨维度修改
    print(plt_reshape2)
    
    
    with tf.Session() as sess: # 上下文管理器
        pass
    

    在这里插入图片描述
    在这里插入图片描述

    6,运算API介绍

    在这里插入图片描述

    import os
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
    import tensorflow as tf
    
    zero = tf.zeros([3,4],tf.float32)
    ones = tf.ones([3,4],tf.float32)
    
    with tf.Session() as sess: # 上下文管理器
        print(zero.eval())
        print("-"*50)
        print(ones.eval())
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    import os
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
    import tensorflow as tf
    
    a = [[1,2,3],[4,5,6]]
    b = [[7,8,9],[10,11,12]]
    c = tf.concat([a,b],axis=0) # 按行合并
    d = tf.concat([a,b],axis=1) # 按列合并
    
    with tf.Session() as sess: # 上下文管理器
        print(sess.run(c))
        print("-"*50)
        print(sess.run(d))
    

    在这里插入图片描述
    在这里插入图片描述

    四,可视化学习

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    1,变量能够持久化保存,普通张量op不能
    2,当定义一个变量op的时候,一定要在会话当中去运行初始化
    3,name参数:在tensorboard使用的时候显示名字,可以让相同的op名字进行区分

    import os
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
    import tensorflow as tf
    
    # 变量op
    a = tf.constant([1,2,3,4,5]) # 张量
    
    var = tf.Variable(tf.random_normal([2,3],mean=0.0,stddev=1.0)) # 创建一个随机变量
    print(a,var)
    # 必须做一步显示的初始化
    init_op = tf.global_variables_initializer()
    with tf.Session() as sess: # 上下文管理器
        # 必须运行初始化op
        sess.run(init_op)
        print(sess.run([a,var]))
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    import os
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
    import tensorflow as tf
    
    # 变量op
    a = tf.constant([1,2,3,4,5]) # 张量
    
    var = tf.Variable(tf.random_normal([2,3],mean=0.0,stddev=1.0)) # 创建一个随机变量
    print(a,var)
    # 必须做一步显示的初始化
    init_op = tf.global_variables_initializer()
    with tf.Session() as sess: # 上下文管理器
        # 必须运行初始化op
        sess.run(init_op)
        # 把程序的图结构写入事件文件,graph:把指定的图写入事件文件当中
        filewriter = tf.summary.FileWriter("./test",graph=sess.graph)
        print(sess.run([a,var]))
    
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    Delphi WinAPI SetLocaleInfo / GetLocaleInfo
    语言环境代码LCID对照表
    Delphi WinAPI SetThreadLocale
    光刻技术发展
    关于TVM的点滴记录
    TVM 各个模块总体架构
    TVM 图优化Graph Optimization
    Atomic Layer Deposition原子层沉积技术
    智加VS图森VS嬴彻
    汽车网络处理设计
  • 原文地址:https://www.cnblogs.com/gemoumou/p/14186283.html
Copyright © 2011-2022 走看看