tensorflow学习笔记(1):tensorflow基础与介绍

引言

作为深度学习方面比较全面的几个框架之一,相比于Keras、pytorch、caffe等库,TensorFlow的优势在于它有一个良好的生态,并且具有一个强大的背景,虽然难度也更高,Keras算是最简单的一个搭建模型的方式,因为它省略了很多中间过程,是Deep learning犹如搭积木,但也因此具有一定局限性,而TensorFlow到目前使用人数还是最多,解决效率高,是Google第二代大规模分布式深度学习框架,具有如下四个特点:

  • 灵活通用的深度学习库

  • 端云结合的人工智能引擎

  • 高性能的基础平台软件

  • 跨平台的机器学习系统

tensorflow介绍

TensorFlow是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。使用图来表示计算任务. 图中的节点被称之为 op (operation 的缩写). 一个 op 获得 0 个或多个 Tensor, 执行计算, 产生 0 个或多个 Tensor. 每个 Tensor 是一个类型化的多维数组. 例如, 你可以将一小组图像集表示为一个四维浮点数数组, 这四个维度分别是 [batch, height, width, channels]。例如下图中的cde皆为op,意思是(3+5)+ 3*5 = 23,但在TensorFlow中需要注意的是 计算定义 != 执行计算,也就是说cde节点并不能打印出计算结果。
在这里插入图片描述

tensor张量

张量(tensor)是TensorFlow管理数据的形式,在TensorFlow所有程序中,所有的数据都是通过张量的形式来表示。从功能的角度上来看,张量可以被简单理解为多维数组。其中零阶张量表示标量,也就是一个数;一阶张量表示一个向量,也就是一个一维数组;n阶张量可以理解为一个n维数组。但张量在TensorFlow中的实现并不是直接采用数组的形式,它只是对TensorFlow中运算结果的引用。在张量中并没有真正保存数字,它保存的是如何得到这些数字的计算过程。

张量主要有三个属性:名字(name)、维度(shape)和类型(type)。如:Tensor(“add:0”, shape=(2,), dtype=float32)就是一个二维矩阵,这个就是一个张量,相同的,下表可以知道张量的具体形式:

数学实例 Python 例子
0 纯量 (只有大小) s = 483
1 向量(大小和方向) v = [1.1, 2.2, 3.3]
2 矩阵(数据表) m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
3 3阶张量 (数据立体) t = [[[2], [4], [6]], [[8], [10], [12]], [[14], [16], [18]]]
n n阶 依照前面的例子想象

再可以看一个实例说明:

node1 = tf.constant(3.0, dtype=tf.float32)
node2 = tf.constant(4.0)# also tf.float32 implicitly
print(node1, node2)
"""
Tensor("Const_6:0", shape=(), dtype=float32) Tensor("Const_7:0", shape=(), dtype=float32)
"""

node3 = node1 + node2
print(node3)
"""
Tensor("add:0", shape=(), dtype=float32)
"""

上述正常应该是Const_0:0和Const_1:0,因为我之前定义过常量,所以现在才会往后推。而我们可以看到第二个例子中node3的tensor的表示,它相加的结果并没有显示出来,那么就要引入会话的概念了。

session会话

Session会话是tensorflow里面的重要机制,tensorflow构建的计算图必须通过Session会话才能执行,如果只是在计算图中定义了图的节点但没有使用Session会话的话,就不能运行该节点。比如在tensorflow中定义了两个矩阵a和b,和一个计算a和b相加的c节点,如果想要得到a和b的相加结果ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

submarineas

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

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

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

打赏作者

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

抵扣说明:

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

余额充值