IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 深度学习(5)TensorFlow基础操作一: TensorFlow数据类型 -> 正文阅读

[人工智能]深度学习(5)TensorFlow基础操作一: TensorFlow数据类型

Data Container(数据载体)

(1) list
优点: 非常灵活,在list中间可以添加任何类型的数据,例如: [1, 1.2, ‘Hello’, (1, 2), layers, …],而且可以随意添加删除编辑;
缺点: 遇到大数据时,例如一张图片维度是[224, 224],那么使用list所消耗的内存空间是巨大的,而且读取写入的效率低;
(2) np.array
优点: 专门解决同类型数据运算而设计的数据载体,可以很方便地将大数据(例如一组图片的维度是[64, 224, 224, 3])进行存储和运算;
缺点: Numpy是在深度学习出现之前就已经设计好的科学计算库,所以它不能很好地支持GPU计算或者自动求导功能;
(3) tf.Tensor
与Numpy地位相等,添加了一些深度学习的方法和工具; 更加偏向于神经网络方面的操作,为了更好地入门,其API设计与Numpy的API设计相近;

What’s Tensor

  • scalar: 1.1
    标量; dim = 0;
  • vector: [1.1], [1.1, 2.2, …]
    向量; dim = 1;
  • matrix: [[1.1, 2.2], [3.3, 4.4], [5.5, 6.6]]
    矩阵; dim = 2; [1.1, 2.2]、[3.3, 4.4]、[5.5, 6.6]均是作为一行存在;
  • tensor: r a n k > 2 rank>2 rank>2
    其实所有数据都可以叫做tensor,不只是维度大于2的数据,scalar、vector、matrix都可以叫做tensor,但是常见实战时各叫各的,方便区分,这样解释是为了方便理解tensor。
    Tensor Flow in Graph
    在这里插入图片描述

TF is a computing lib(科学计算库)

  • int(整型数据),float(单精度浮点型数据),double(双精度浮点型数据)
  • bool(布尔类型数据)
  • string(字符串类型数据)

创建不同类型的数据

在这里插入图片描述

tf.constant()为创建一个Tensor;

Tensor Property(Tensor属性)

在这里插入图片描述

(1) tf.device(“cpu”): 指定创建的数据在CPU上计算;
tf.device(“gpu”): 指定创建的数据在GPU上计算;
注: 如果a和b都在CPU或者都在GPU上是可以一起运算的,但是如果a在CPU上而b在GPU上,或者a在GPU而b在CPU上时,是不可以一起运算的,需要进行CPU/GPU转换
(2) aa = a.gpu(): 将a由在CPU计算转换为在GPU计算并赋值给aa;
bb = b.cpu: 将b由在GPU计算转换为在CPU计算并赋值给bb;
(3) b.numpy(): 将b由tensor数据类型转换为numpy数据类型;
(4) b.ndim(): 返回b的维度;
(5) b.shape(): 返回b的结构;
(6) tf.rank(): 返回tensor类型数据的维度;
(7) b.name: 无需理解,为TensorFlow1.0版本的起名问题;

Check Tensor Type(判断数据类型)

在这里插入图片描述

(1) tf.is_tensor(b): 判断b是否为tensor类型的数据;
(2) a.dtype: 返回a的数据类型;
(3) a.dtype = tf.float32: 查看a的数据类型是否为tensor数据类型中的float32;

Convert(数据类型转换)

在这里插入图片描述

(1) a = np.arange(5): 创建a,默认存储的数据类型为int64;
(2) aa = tf.convert_to_tensor(a): 将a转换为tensor类型的数据,转换后数据类型保持不变,依然为int64;
(3) aa = tf.convert_to_tensor(a, dtype = tf.int32): 将a转换为tensor类型的数据,并且改变a的数据类型为int32;
(4) tf.cast(aa, dtype = tf.float32): cast是一个专业的数据类型转换工具,将aa由int32转换为float32;

bool & int(布尔型和整型数据之间的转换)

在计算时我们往往会将布尔类型的数据转换为整型数据,方便计算,因此,布尔型和整型数据之间的相互转换非常常见。
在这里插入图片描述

(1) tf.cast(b, dtype = tf.bool): 将b由整型数据转换为布尔型数据。其中,0转换为False,1转换为True;
(2) tf.cast(b, dtype = tf.bool): 将bb由布尔型数据转换为整型数据。其中,False转换为0,True转换为1;

tf.Variable(可以优化参数的一种数据类型)

例如: y = w ? x + b y=w*x+b y=w?x+b,这里的 w w w b b b都是参数,那么 w w w b b b除了是tensor类型的数据以外,还有一个额外的属性,就是Variable,就是说我们可以认为: w = tf.Variable(w),这样的话,一个tensor类型的数据经过Variable包装后,会自动具有了一些可求导的特性,经过包装后会有nametrainable两个属性,其中name属性无需考虑,是TensorFlow1.0中的概念; trainable属性是可以训练的意思,就是说当 w w w b b b需要进行向后传播或者求导的时候,需要trainable这个属性进行对 w w w b b b的跟踪,会自动记录 w w w b b b的梯度信息。

注: isinstance()并不推荐使用,更推荐使用tf.is_tensor()

To numpy(如何将数据由tensor类型转换为numpy类型)

tensor数据一般是运行在GPU上的,我们可能需要在CPU上完成一些额外的控制,所以我们需要将数据由tensor类型转换为numpy类型。
在这里插入图片描述

(1) a.numpy(): 将a转换为numpy类型的数据;
(2) 如果a是scalar(即标量)数据的话,我们可以直接使用int(a)或者float(a)来对a的数据类型进行转换;

参考文献:
[1] 龙良曲:《深度学习与TensorFlow2入门实战》
[2] https://playground.tensorflow.org

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-08 11:20:38  更:2021-08-08 11:21:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 21:40:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码