Python学习记录 TensorFlow基础概念

TensorFlow基础概念

文章目录

  • TensorFlow基础概念
    • 什么是TensorFlow
    • TensorFlow架构
      • 前端系统
      • 后端系统
    • TensorFlow的安装
    • 保证使用v1函数的方法
    • TensorFlow核心概念
      • 图(Graph)
      • 张量(Tensor)
      • 操作(op)
      • 会话(Session)
      • 变量(Variable)

什么是TensorFlow

TensorFlow是一个基于数据流编程的符号数学系统,被广泛应用于各类机器学习算法的编程实现
前身是谷歌的神经网络算法库DistBelief
Tensorflow的运行过程就是张量在数据流图中流动的过程

TensorFlow架构

Python学习记录 TensorFlow基础概念_第1张图片

TensorFlow以C API为界,分为前段和后端两个子系统

前端系统

提供编程模型,负责构造计算图

后端系统

提供运行时环境,负责执行计算图

TensorFlow的安装

TensorFlow每个版本的变动会导致一些API被舍弃,导致代码不通用
本次版本要求:
numpy 1.18.5
TensorFlow 1.14.0
高版本用低版本的函数需要添加

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

保证使用v1函数的方法

在导包时使用

try:
    import tensorflow.compat.v1 as tf
    tf.disable_v2_behavior()
except:
   import tensorflow as tf

TensorFlow核心概念

图(Graph)

图描述了计算的过程,TensorFlow使用图来表示计算任务
代码案例:

import tensorflow as tf
#第一阶段: 构建图
#定义一个1x2的矩阵,矩阵元素为[3 3]
matrix1 = tf.constant([[3., 3.]])

#定义一个2x1的矩阵,矩阵元素为[22]
matrix2 = tf.constant([[2.],[2.]])

# 创建一个矩阵乘法 matmul op , 把 'matrix1' 和 'matrix2' 作为输入.
product = tf.matmul(matrix1, matrix2)

#第二阶段: 执行图
with tf.Session() as sess:
    print ("matrix1: %s" % sess.run(matrix1))
    print ("matrix2: %s" % sess.run(matrix2))
    print ("result type: %s" % type(sess.run(product)))
    print ("result: %s" % sess.run(product))

张量(Tensor)

TensorFlow使用tensor表示数据。每个Tensor就是一个多维的数组

  • 0阶张量就是普通的变量 如:111
  • 1阶张量是向量 如:1、2、3
  • 2阶张量是矩阵 如:[1,2]、[3,4]
  • 以此类推
    代码案例:
#定义一个1x2的矩阵,矩阵元素为[3 3]
matrix1 = tf.constant([[3., 3.]])

操作(op)

operation的缩写,一个op就是某节点上的一个操作,输入0个或多个Tensor,执行计算,产生输出0个或多个Tensor

会话(Session)

图必须在称之为“会话”的上下文中执行。会话将图的op分发到诸如CPU或GPU之类的设备上执行

变量(Variable)

运行过程中可以被改变,用于维护状态
变量的创建使用张量作为初始值传入构造函数Variable(),初始值是常量或者随机数
所有的变量都需要激活

# 初始化所有的变量,必须用会话run才可以激活 (有定义变量时,这步骤是必须的)
init = tf.global_variables_initializer() 

代码案例

import tensorflow as tf
state = tf.Variable(0, name='counter')  # 定义变量state,并赋值0,名字counter
# print(state.name)
one = tf.constant(1) # 定义常量one,赋值1
new_value = tf.add(state, one) # 变量 + 常量 = 变量
# 将state用new_value代替
updata = tf.assign(state, new_value) # 把new_value加1的值赋值给state

# 变量激活
init = tf.global_variables_initializer() # 初始化所有的变量,必须用会话run才可以激活 (有定义变量时,这步骤是必须的)

with tf.Session() as sess:
  sess.run(init)
  for _ in range(3):
    sess.run(updata)
    print(sess.run(state))

你可能感兴趣的:(Python,tensorflow,python,学习)