TensorFlow基础和入门案例

TensorFlow是一个广泛使用的深度学习框架,由谷歌开发,它包含丰富的机器学习和深度学习功能。该框架基于数据流图,支持多种平台的计算,包括CPU、GPU和TPU。张量是TensorFlow中的基本数据结构,用于表示和传递信息。通过创建计算图,用户可以进行复杂的数学运算,如矩阵乘法。TensorBoard作为配套工具,提供可视化功能,帮助理解计算流程。文章通过一个矩阵计算的例子,展示了如何使用TensorFlow和TensorBoard进行计算和可视化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TensorFlow简介

TensorFlow是目前主流深度学习框架之一,其库中几乎包含了所有机器学习和深度学习相关的辅助函数和封装类,官方文档如下图所示。在其框架下做各种神经网络算法的开发可以极大减轻工作量,在入门阶段可以不需要深入理解相关优化算法、分布式的底层细节也可以完成对于深度学习神经网络的搭建、训练、评估、测试和部署步骤。TensorFlow最初是由谷歌脑研究组的研究员和工程师们开发出来的,主要用于进行机器学习和深度神经网络方面的研究,后来逐渐发展成为广泛通用的深度学习主流框架之一。
在这里插入图片描述

TensorFlow主要采用数据流图规划计算流程、进行数值计算,节点表示数学操作,线表示在节点之间相互传递信息的多维数组;记录多维数组信息量的数据为张量.TensorFlow提供了Python、C++和JavaScript等易于快速开发编程语言的接口,并且还配置有TensorBoard可视化工具。TensorFlow具有灵活的架构,支持在多种平台上进行计算,如CPU,GPU,TPU、云服务器和移动设备,具有灵活、快速和适应性广泛的优越性。

数据流图

数据流图是使用节点(Node)和有向线(Edge)来描述的数学计算,又称计算图。在用TensorFlow进行科学计算时,通常先创建一个计算图,然后将数据载入计算图中进行计算。

  1. 节点:计算图中一般用圆圈、椭圆或方框表示,计算图在TensorBoard可视化中可以形象化地显示出来。节点通常用来表示执行的数学操作,数据输入的起点和数据输出的终点也可以表示为节点。
  2. 线: 计算图中一般用箭头表示线,代表节点和节点之间的信息输入、输出和传递关系,其中传递的信息就是可变维度的张量。

张量

张量是计算图中节点之间相互传递数据的表现形式。一维数组、二维数组和N维数组等都可以看做张量,表示操作的输出量。

tf.Tensor(op,value_jndex,dtype)

参数描述
opTensor操作节点
value_index生成Tensor的节点索引
dtypeTensor数据类型

张量的属性

属性描述
Tensor.device计算Tensor的硬件
Tensor.dtypeTensor数据类型
Tensor.graph包含Tensor的计算图
Tensor.nameTensor命名空间
Tensor.opTensor操作节点
Tensor.shapeTensor形状

TensorFlow中张量常见数据类型

数据类型Python API
32位浮点数tf.float32
64位浮点数tf.float64
64位有符号整型tf.int64
32位有符号整型tf.int32
可变长字节数组tf.string
布尔型tf.bool
8位无符号整型tf.unit8

张量在计算图中主要的用途是对中间计算结果的引用和获取数据流图计算结果。在构建深层网络时计算复杂度很大,计算图中包含大量的中间结果,只用张量可以极大地提升代码的可读性。

使用TensorFlow做矩阵计算

用TensorFlow完成矩阵计算,并使用TensorBoard可视化数据流图

步骤一:使用TensorFlow做矩阵计算
新建一个python文件,命名为task4.py,代码如下所示

import tensorflow as tf

A=tf.constant([[1,4,7],[2,5,8],[3,6,9]],name='matrix_A')
B=tf.constant([[2,1,2],[-1,1,4],[3,0,-1]],name='matrix_B')
C=tf.constant([[1,-1,0],[2,2,2],[1,4,5]],name='matrix_C')

node_matmul=tf.matmul(A,B,name='node_matmul')
node_add=tf.add_n([node_matmul,C],name='node_add')

with tf.Session() as sess:
    writer=tf.summary.FileWriter('./log_4',sess.graph)
    Y=sess.run(node_add)
    print(Y)
    writer.close()

代码解析:

  • tf.constart:用于声明一个常量
  • tf.matmul:用于计算矩阵的乘法,还有另一个类似的方法叫做multiply,矩阵乘以矩阵,矩阵乘向量,矩阵乘某个数都可以
  • tf.add_n:用于计算列表元素加法
  • with tf.Session() as sess:创建上下文来执行,当上下文退出的时候自动释放资源
  • tf.summary.FileWriter:用于指定一个文件用来保存图

步骤二:运行程序

在命令行中输入命令——python task4.py ,运行结果如下所示:
在这里插入图片描述
步骤三:使用TensorBoard可视化矩阵计算数据流图
使用TensorBoard显示矩阵计算的数据流图,命令行输入:

 tensorboard --logdir log_4

在浏览器新的便签也输入网址: http://localhost:6006/,即可访问TensorBoard页面。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值