• TensorFlow 编程基础


    1、TensorFlow

      安装:https://www.cnblogs.com/pam-sh/p/12239387.html

         https://www.cnblogs.com/pam-sh/p/12241942.html

    • 是一个开放源代码软件库,用于进行高性能数值计算
    • 借助其灵活的架构,用户可以轻松地将计算工作部署到多种平台
    (CPU、GPU、TPU)和设备(桌面设备、服务器集群、移动设备、边
    缘设备等)
    • TensorFlow™ 最初是由 Google Brain 团队(隶属于 Google 的 AI
    部门)中的研究人员和工程师开发的,可为机器学习和深度学习提供
    强力支持

    TensorFlow 的Hello world:

    2、计算图:

    TensorFlow = Tensor + Flow


    Tensor 张量
    数据结构:多维数组

    Flow 流
    计算模型:张量之间通过计算而转换的过程


    TensorFlow是一个通过 计算图的形式表述计算的编程系统
    每一个计算都是计算图上的一个节点
    节点之间的边描述了计算之间的关系

    计算图是一个有向图,由以下内容构成:
      • 一组节点,每个 节点都代表一个 操作,是一种 运算
      • 一组有向边,每条 边代表节点之间的 关系(数据传递和
    控制依赖

    计算图(数据流图)的概念
    TensorFlow有两种边:
      • 常规边(实线):代表数据依赖关系。一个节点的运算输出成
      为另一个节点的输入,两个节点之间有tensor流动( 值传递)
      • 特殊边(虚线):不携带值,表示两个节点之间的 控制相关性。
      比如, happens- - before 关系,源节点必须在目的节点执行前完
      成执行

    3、张量:

    • 在TensorFlow中,所有的数据都通过张量的形式来表示
    • 从功能的角度,张量可以简单理解为多维数组
      零阶张量表示 标量(scalar),也就是 一个数;
      一阶张量为 向量(vector),也就是 一维数组;
      n n 阶张量可以理解为一个n n 维数组;
    • 张量并没有真正保存数字,它保存的是计算过程

      张量的属性:

    名字( name )
    “node:src_output”:node 节点名称,src_output 来自节点的第几个输出
    形状( shape )
    张量的维度信息, shape=() ,表示是标量

     

     

     

     

     

     

    类型( type )
    每一个张量会有一个唯一的类型
    TensorFlow会对参与运算的所有张量进行类型的检查,发现类型不匹配时会报错

     

     

     

     

     

     

     

     

    阶为1的张量等价于向量;
    阶为2的张量等价于矩阵,通过 t[ i,j ] 获取元素;
    阶为3的张量,通过 t[ i,j,k ] 获取元素;

     

    4、操作:

    5、Session:

    会话拥有并管理TensorFlow程序运行时的所有 资源
    当所有计算完成之后需要 关闭会话帮助系统

    指定默认会话:

    TensorFlow不会自动生成默认的会话,需要手动指定
    当默认的会话被指定之后可以通过 tf.Tensor.eval 函数来计算一个张量的取值

     交互式环境下设置默认会话:

    在交互式环境下,Python脚本或者Jupyter编辑器下,通过设置默认会话来获取张量的取值
    更加方便
    n tf.InteractiveSession 使用这个函数会自动将生成的会话注册为默认会话

    6、常量和变量:

    在运行过程中值不会改变的单元,在TensorFlow中无须进行初始化操作
    创建语句:
    constant_ name = tf.constant

    在运行过程中值会改变的单元,在TensorFlow中须进行初始化操作
    创建语句:
    e name_variable = tf.Variable (value, name)
    个别变量初始化:
    p init_op = name_variable.initializer ()
    所有变量初始化:
    p init_op = tf.global_variables_initializer ()

     变量的赋值: 

      • 与传统编程语言不同,TensorFlow中的变量定义后,一般 无需人工赋值,系统会根据算法模型,训练优化过程中 自动调整变量对应的数值

      • 后面在将机器学习模型训练时会更能体会,比如权重Weight变量w,经过多次迭代,会自动调:

    • 特殊情况需要人工更新的,可用变量赋值语句
    变量更新语句:
    update_op = tf.assign(variable_to_be_updated, new_value)

    通过变量赋值依次输出1、2、3、....、10

     

     

     

     

     

     

     

     

     

     

     

     

      通过变量赋值计算1+2+3+.....+10:

       占位符  placeholder:

    • TensorFlow中的 Variable 变量类型,在定义时需要初始化,但有些变量
    定义时并不知道其数值,只有当真正开始运行程序时,才由外部输入,
    比如训练数据,这时候需要用到 占位符
    • tf.placeholder 占位符,是TensorFlow中特有的一种数据结构,类似动
    态变量,函数的参数、或者C语言或者Python语言中格式化输出时的“%”
    占位符

    • TensorFlow占位符Placeholder,先定义一种数据,其参数为数据的
    Type和Shape
    占位符Placeholder的函数接口如下:
    tf.placeholder(dtype, shape=None, name=None)

     

     

          Feed 提交数据和 Fetch 提取数据:

    如果构建了一个包含placeholder操作的计算图,当在session中调用run方法时,placeholder占用的变量必须通过 feed_dict参数传递进去,否则报错:

     

     多个操作可以通过一次Feed完成执行:

           一次返回多个值分别赋给多个变量:

    计算1+2+...+n:

  • 相关阅读:
    了解大数据的特点、来源与数据呈现方式
    结对项目
    第四次作业
    阅读《构建之法》1-5章有感
    iOS 应用如何完全支持 IPv6-ONLY 网络?
    丙申年把真假美猴王囚禁在容器中跑 ASP.NET Core 1.0
    ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)
    推荐一款跨平台的 Azure Storage Explorer
    更改 Skype for Business Online 的 Sip 地址以匹配UPN
    C# 计算字符串在控制台中的显示长度
  • 原文地址:https://www.cnblogs.com/pam-sh/p/12267119.html
Copyright © 2020-2023  润新知