Python学习记录 TensorFlow基础概念

TensorFlow基础概念

什么是TensorFlow

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

TensorFlow架构

在这里插入图片描述

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))
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三千院喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值