zoukankan      html  css  js  c++  java
  • python人工智能——深度学习——TensorFlow基本介绍

    Tensorflow基础

    1、深度学习介绍

    深度学习,如深度神经网络、卷积神经网络和递归神经网络已被应用
    计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域
    并获取了极好的效果。

    2、认识Tensorflow

    在这里插入图片描述

    深度学习框架

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

    Tensorflow特点

    1、真正的可移植性
    引入各种计算设备的支持包括CPU/GPU/TPU,以及能够很好地运行在移动端,
    如安卓设备、ios、树莓派等等

    2、多语言支持
    Tensorflow 有一个合理的c++使用界面,也有一个易用的python使用界面来构建和
    执行你的graphs,你可以直接写python/c++程序。

    3、高度的灵活性与效率
    TensorFlow是一个采用数据流图(data flow graphs),用于数值计算的开源软件库
    能够灵活进行组装图,执行图。随着开发的进展,Tensorflow的效率不算在提高

    4、支持
    TensorFlow 由谷歌提供支持,谷歌投入了大量精力开发 TensorFlow,它希望
    TensorFlow 成为机器学习研究人员和开发人员的通用语言

    3、Tensorflow的安装

    开启GPU支持(不推荐)

    如果系统没有NVIDIA®GPU,请构建并安装CPU版本

    Ubuntu:

    安装CUDA和cuDNN
    

    Mac:

    安装CUDA和cuDNN
    

    安装中如果遇到什么问题,可以参考:
    安装 TensorFlow
    https://files.pythonhosted.org/packages/d4/https://www.tensorflow.org/install#tensorflow
    TensorFlow和PaddlePaddle不兼容问题(serialized_options)
    https://blog.csdn.net/weixin_43336281/article/details/87374007

    4、Tensorflow初体验

    加法运算
    在这里插入图片描述
    Tensorflow加法运算
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    5、Tensorflow进阶

    1、图

    图默认已经注册,一组表示 tf.Operation计算单位的对象和tf.Tensor
    表示操作之间流动的数据单元的对象

    获取调用:

    tf.get_default_graph()
    op、sess或者tensor 的graph属性
    
    图的创建

    tf.Graph()

    使用新创建的图

    g = tf.Graph() 
    with g.as_default(): 
            a = tf.constant(1.0) 
            assert c.graph is g
    

    2、会话

    tf.Session()
    运行TensorFlow操作图的类,使用默认注册的图(可以指定运行图)

    会话资源
    会话可能拥有很多资源,如 tf.Variable,tf.QueueBase
    和tf.ReaderBase,会话结束后需要进行资源释放

    sess = tf.Session() sess.run(…) sess.close()
    使用上下文管理器
    with tf.Session() as sess:
    sess.run(…)

    config=tf.ConfigProto(log_device_placement=True)
    交互式:tf.InteractiveSession()

    会话的run()方法

    run(fetches, feed_dict=None,graph=None)
    运行ops和计算tensor
    嵌套列表,元组,
    namedtuple,dict或OrderedDict(重载的运算符也能运行)

    feed_dict 允许调用者覆盖图中指定张量的值,提供给
    placeholder使用

    返回值异常

    RuntimeError:如果它Session处于无效状态(例如已关闭)。
    TypeError:如果fetches或feed_dict键是不合适的类型。
    ValueError:如果fetches或feed_dict键无效或引用 Tensor不存在。
    

    3、张量

    1、张量的阶和数据类型

    Tensorflow基本的数据格式

    一个类型化的N维度数组(tf.Tensor)

    三部分,名字,形状,数据类型

    张量的阶

    在这里插入图片描述

    张量的数据类型

    在这里插入图片描述

    张量属性

    graph 张量所属的默认图

    op 张量的操作名

    name 张量的字符串描述

    shape 张量形状

    张量的动态形状与静态形状

    TensorFlow中,张量具有静态形状和动态形状

    静态形状:
    创建一个张量或者由操作推导出一个张量时,初始状态的形状

    tf.Tensor.get_shape:获取静态形状
    tf.Tensor.set_shape():更新Tensor对象的静态形状,通常用于在不能直接推
    断的情况下
    

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

    tf.reshape:创建一个具有不同动态形状的新张量
    
    要点

    1、转换静态形状的时候,1-D到1-D,2-D到2-D,不能跨阶数改变形状

    2、 对于已经固定或者设置静态形状的张量/变量,不能再次设置静态形状

    3、tf.reshape()动态创建新张量时,元素个数不能不匹配

    2、张量操作
    张量操作-生成张量

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

    正态分布

    在这里插入图片描述
    概率密度函数为正态分布的期望值μ决定了其位置,其标准差σ
    决定了分布的幅度。当μ = 0,σ = 1时的正态分布是标准正态分布。
    在这里插入图片描述

    张量操作-张量变换

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

    提供给Tensor运算的数学函数

    算术运算符
    基本数学函数
    矩阵运算
    减少维度的运算(求均值)
    序列运算

    4、变量

    1、变量的创建

    2、变量的初始化

    3、变量的作用域
    变量也是一种OP,是一种特殊的张量,能够进行存储持久化,它的
    值就是张量。

    变量的创建

    tf.Variable(initial_value=None,name=None)

    创建一个带值initial_value的新变量
    
    assign(value)
    为变量分配一个新值
    返回新值
    eval(session=None)
    计算并返回此变量的值
    
    name属性表示变量名字
    
    变量的初始化

    tf.global_variables_initializer()
    添加一个初始化所有变量的op

    在会话中开启

    可视化学习Tensorboard

    数据序列化-events文件
    TensorBoard 通过读取 TensorFlow 的事件文件来运行

    tf.summary.FileWriter(’/tmp/tensorflow/summary/test/’, graph=
    default_graph)
    返回filewriter,写入事件文件到指定目录(最好用绝对路径),以提供给tensorboard使用

    开启
    tensorboard --logdir=/tmp/tensorflow/summary/test/

    一般浏览器打开为127.0.0.1:6006

    注:修改程序后,再保存一遍会有新的事件文件,打开默认为最新

    增加变量显示

    目的:观察模型的参数、损失值等变量值的变化。
    1、收集变量

    tf.summary.scalar(name=’’,tensor) 收集对于损失函数和准确率
    等单值变量,name为变量的名字,tensor为值
    tf.summary.histogram(name=‘’,tensor) 收集高维度的变量参数
    tf.summary.image(name=‘’,tensor) 收集输入的图片张量能显示图片
    

    2、合并变量写入事件文件

    merged = tf.summary.merge_all()
    运行合并:summary = sess.run(merged),每次迭代都需运行
    添加:FileWriter.add_summary(summary,i),i表示第几次的值
    

    5、模型保存和加载

    tf.train.Saver(var_list=None,max_to_keep=5)

    var_list:指定将要保存和还原的变量。它可以作为一个
    dict或一个列表传递.
    max_to_keep:指示要保留的最近检查点文件的最大数量。
    创建新文件时,会删除较旧的文件。如果无或0,则保留所有
    检查点文件。默认为5(即保留最新的5个检查点文件。)
    

    6、自定义命令行参数

    自定义命令行参数

    1.在这里插入图片描述
    2、
    tf.app.flags.,在flags有一个FLAGS标志,它在程序中可以调用到我们
    前面具体定义的flag_name

    3、
    通过tf.app.run()启动main(argv)函数

  • 相关阅读:
    checkbox美化
    JS 之简单计算器
    python实现简单用户认证和角色制授权
    搭建高性能web服务
    纯JS实现fadeIn 和fadeOut
    纯CSS实现气泡框
    javascript之对象(二)&& 继承问题
    JavaScript之对象(一)
    Web发展史
    [LeetCode 256] Paint House
  • 原文地址:https://www.cnblogs.com/AlexKing007/p/12339386.html
Copyright © 2011-2022 走看看