zoukankan      html  css  js  c++  java
  • 1.Tensorflow的基本概念:

    1.Tensorflow的基本概念:

    • 1.使用图(graphs)来表示计算任务
    • 2.在被称之为会话(Session)的上下文(context)中执行图

    • 3.使用tensor表示数据

    • 4.通过变量(Variable)维护状态

    • 5.使用feed和fetch可以为任意的操作赋值或者从其中获取数据

    Tensorflow是一个编程系统,使用图(graphs)来表示任务,图(graphs)中的节点称之为op(operation),一个获得0个或多个Tensor,执行计算,产生0个或多个Tensor.Tensor看做是一个n维的数组或列表。图必须在会话(Session)里被启动。

                                               图的基本框架

     常量的使用

     1 import tensorflow as tf
     2 
     3 a1 = tf.constant([[2, 3]])  # 定义一个常量
     4 a2 = tf.constant([[3], [3]])
     5 result = tf.matmul(a1, a2)  # 将两个常量相乘
     6 print(result)  # result是一个tonsor,所有的graphs都必须在会话(session)中执行
     7 # Tensor("MatMul:0", shape=(1, 1), dtype=int32)
     8 sess = tf.Session()  # 创建会话
     9 result = sess.run(result)
    10 print(result)  # 返回计算的结果
    11 sess.close()  # 关闭会话
    12 # [[15]]
    13 """
    14 可以用python的with来自行关闭会话:
    15 with tf.Session() as sess:
    16     result = sess.run(result)
    17     print(result)
    18 """

     变量的使用

     1 import tensorflow as tf
     2 
     3 # 定义一个变量
     4 a1 = tf.Variable(0)
     5 # 定义一个常量
     6 a2 = tf.constant(2)
     7 #  创建相减的op
     8 sub = tf.subtract(a1, a2)
     9 #  创建相加的op
    10 add = tf.add(a1, a2)
    11 """
    12 with tf.Session() as sess:
    13     sess.run(sub)
    14 这时候直接运行会报错,因为Variable(变量)没有初始化
    15 """
    16 init = tf.global_variables_initializer()  # 全局变量初始化
    17 
    18 with tf.Session() as sess:
    19     sess.run(init)
    20     result = sess.run(sub)
    21     print(result)  # 0 - 2 = -2
    22     result = sess.run(add)
    23     print(result)  # 0 + 2 = 2

    Variable和Tensor之间的区别:

    • Variable是可更改的,而Tensor是不可更改的。
    • Variable用于存储网络中的权重矩阵等变量,而Tensor更多的是中间结果等。
    • Variable是会显示分配内存空间的,需要初始化操作(assign一个tensor),由Session管理,可以进行存储、读取、更改等操作。相反地,诸如Const, Zeros等操作创造的Tensor,是记录在Graph中,所以没有单独的内存空间;而其他未知的由其他Tensor操作得来的Tensor则是只会在程序运行中间出现。
    • Tensor可以使用的地方,几乎都可以使用Variable。

     tensorflow的赋值操作

     1 import tensorflow as tf
     2 
     3 # 定义一个变量
     4 a1 = tf.Variable(0)
     5 # 定义一个常量
     6 a2 = tf.constant(2)
     7 #  创建相减的op
     8 sub = tf.subtract(a1, a2)
     9 #  创建相加的op
    10 add = tf.add(a1, a2)
    11 
    12 init = tf.global_variables_initializer()  # 全局变量初始化
    13 
    14 update = tf.assign(a1, add)  # tensorflow里面的赋值要调用tf.assign方法
    15 
    16 with tf.Session() as sess:
    17     sess.run(init)
    18     result = sess.run(sub)
    19     print(result)  # 0 - 2 = -2
    20     result = sess.run(add)
    21     print(result)  # 0 + 2 = 2
    22     for i in range(5):
    23         result = sess.run(update)
    24         print(result)  # 2 4 6 8 10
  • 相关阅读:
    gateway 实现接口日志保存
    Spring Boot应用的Controller返回的集合类数据是XML格式的可能原因
    json 转list
    观察者模式
    Quartz定时任务整理
    java通过word模板生成word文档
    基于mysql的单据号生成(前缀+日期+自增id+后缀)
    Rabbitmq详解
    java.sql.SQLException: connection holder is null 问题处理
    为什么要用消息队列或消息队列的优缺点
  • 原文地址:https://www.cnblogs.com/ivy-blogs/p/10571098.html
Copyright © 2011-2022 走看看