Tensorflow解说
liuian 2024-11-28 00:45 41 浏览
TensorFlow简介
本节将从五个方面对 TensorFlow 进行一个简单的介绍。包括 TensorFlow 是什么、为什么选择TensorFlow、TensorFlow 的发展、TensorFlow 能干什么以及 TensorFlow 的核心理念。
1. 什么是 TenosrFlow
TensorFlow 是一个开源软件库,用于各种感知和语言理解任务的机器学习。—— Wiki 百科
这种过于官方化的定义可能比较难于理解,我们在这里给出一个比较容易理解的解释:TensorFlow 是一个开源的机器学习的框架,我们可以使用 TensorFlow 来快速地构建神经网络,同时快捷地进行网络的训练、评估与保存。
也正是因为 TensorFlow 是一个开源的软件库,因此只要我们安装了 TensorFlow,我们就可以使用import 的方式来引入
import tensorflow as tf2. 为什么选择 TensorFlow 以及优缺点
谈到为什么选择 TensorFlow,有很多同学就会问“为什么不使用 PyTorch?”、“为什么不自己实现网络而必须使用框架呢?”等等一系列问题。
首先我们回答“为什么不自己去实现网络结构而必须使用框架”的问题:
实际上如果有能力实现神经网络结构,我们完全可以自己动手实现我们所需要的神经网络,但是这样会带来一个问题:工作量太大,我们会把我们大部分的精力花费在底层的构建而不是主要的模型的构建上。
在当下的潮流之中,使用框架是大势所趋,使用框架能够帮助我们节省很多的底层的、繁琐的、容易出错的工作。比如在 Web 开发之中会使用 Django 和 Spring Boot 等框架,在桌面开发中会使用 MFC、QT 等框架,而在机器学习领域我们可以选择使用 TensoFlow 框架。
另外通过使用框架,我们可以把我们的精力更多的放在上层的模型的构建之上,一方面可以帮助我们专注于高层次的工作,另一方面又可以帮助我们避免底级的一些错误。
现在我们可以回答第二个问题,为什么不使用其他的机器学习框架?
说到这里我们不得不说一下 TensorFlow 的优点,相比于其他的机器学习框架,Tensorflow 框架是最适用于工业部署的一个机器学习框架,换句话说,TensorFlow 非常适用于在生产环境中进行应用。下面我们来细数一下 TensorFlow 的优点。
- 整个项目开源;
- 文档非常全面而且包含中文教程,学习成本比较低;
- 其内部含有很多高阶神经网络API,我们可以用一个语句来生产一个网络;
- 使用其内部的TensorFlow Service可以实现快速上线部署;
- 得益于高阶API,使用TensorFlow进行神经网络开发非常迅速;
- 内部内置TesnorBoard工具,可以很好的进行可视化工作;
- 对移动设备的支持非常友好;
- TensorFlow内部内置分布式训练工具,开源很方便地进行分布式训练。
讨论了这么多优点,TensorFlow 就没有缺点吗?当然有,TensorFlow 也有一些显而易见的缺点:
- TensorFlow程序的调试较为困难,我们不能深入其内部进行调试;
- TensorFlow的许多高阶API导致我们修改我们自己的模型比较困难(相对而言);
- TensorFlow1.x与TensorFlow2.x的差别比较大,以前的代码迁移比较困难。
总结来说,如果你想进行神经网络的快速构建、训练与部署,那么 TensorFlow 是你非常好的选择,但是如果你想从事一些科研的方面的工作,那么 TensorFlow 可能并没有 Pytorch 那么容易驾驭。
3. TensoFlow的发展
很多人都知道 TensorFlow 是从 1.x 版本发展到 2.x 版本的,而且目前网络上很多 TensorFlow 的教程都还停留在 TensorFlow1.x 阶段。在这里,我便带领大家回顾一下 TensorFlow 的发展历程:
- 从 2010 年开始,谷歌大脑团队便在其内部使用 DistBelief 框架进行机器学习的相关工作,后来经过不断地简化与重构逐渐形成了 TesnorFlow,这便是 TensorFlow 的前身,但是此时的 TensorFlow还没有开源;
- 2015 年,年轻的 TensorFlow 正式开源,此时的 TensorFlow 依然处在 0.x 的非正式版本;
- 一直到 2016 年 12 月期间,TensorFlow 逐渐支持了分布式、移动设备 与Windows 系统;
- 2017 年,TensorFlow 正式发布了 1.0.0 版本,由此 TensorFlow 正式版发布;
- 直到 2019 年期间,TensorFlow 逐步加入了 TPU、张量处理单元等工具;
- 2019 年 10 月,TensorFlow2.0 正式发布,这也标志着 TensorFlow 进入了 2.0 时代。
在当前,TensorFlow 的最新稳定版本为 2.2 版本。
由于 TensorFlow1.x 与 TensorFlow2.x 的差别较大,因此在我们的学习与使用当中,我们应当首先学习TensorFlow2.x 版本。
相比于TensorFlow1.x,TensorFlow2.x 最大的优点就是加入了 Keras,而TensorFLow 也是默认采用 Eager 模式来构建我们的模型,这对于一些初学者来说是巨大的福音,而这在TensorFlow1.x时代是没有办法实现的。
依托于谷歌强大的影响与号召力,TenorFlow 的用户群体非常巨大,而且使用 TensorFlow 得到的训练结果非常优秀,对于机器学习的初学者来说,这确实是一件不可多得的珍宝。
4. TensorFlow能干什么
其实这个问题在前面的概念中已经涉及了,TensorFlow主要负责机器学习的每一个步骤,包括:
- 模型的构建;
- 模型的训练;
- 模型的保存与加载;
- 模型的评估;
- 使用加速器提升性能;
- 在生产环境中部署网络;
- 对模型的数据进行可视化(TensorBoard);
- 其他功能。
通过这样的梳理我们可以发现,TensorFlow 可以满足我们在机器学习中的从模型构建到模型的部署的绝大部分的工作需求
5. TensorFlow的核心理念
前面介绍了这么多,我们现在可以深入 TensorFlow 内部来简单了解一下 TensorFlow 的核心理念。
简单来说, TensorFlow 的核心理念包括计算图与张量(Tensor)
5.1 计算图
在 TensorFlow 中,我们首先构建模型,TensorFLow会根据我们的模型来构建一个计算图,然后TensorFLow 会在该计算图中进行相应的运算、迭代与求梯度等操作,从而得到我们最终想要的结果。
下面是一个 TensorFlow 模型的计算图,目前诸位同学可以将其理解为模型图或者数据流动图
该图为在 TensorBoard 之中得到的计算图,其中的节点表示运算或者网络层,而线条表示数据流动。
5.2 张量
张量(Tensor)就是 TensorFlow 的名字的由来之一,TensorFLow 顾名思义就是张量流动的意思,由此可见张量为 TensorFlow 的最核心的概念之一。
张量在TensorFLow之中以数组的形式存储,张量的主要组成要素包括:
- 名称(name);
- 形状(shape);
- 类型(dtype)。
简单的理解,我们可以将张量看作多维数组,因为是多维数组,因此可以包含三维或者三维以上的维度,对于初学者来说可能不是特别友好。
在 TensorFLow 之中我们可以很轻松的构建一个张量,比如以下代码:
x = tf.ones((64, 28, 28, 3))由此我们构建了一个思维张量,他的第一维是 64 个维度,第二维与第三维都是 28 个维度,第四维是3 个维度。
对于二维张量,我们可以理解为一个平面;对于三位数据,我们可以理解为一个空间;而对于四维数据我们可以理解为一个在三维空间的外面又增加了一个维度;五维张量则是又增加一个维度......
在TensorFlow之中我们一般将第一维数据作为批大小来处理(Batch_Size),也就是一批数据中含有多少个样本子数据。更一般的,在不确定批大小的情况下,我们直接将第一维设置为 None,比如:
x = tf.ones((None, 28 ,28, 3))总结
TensorFlow 是一个相对比较完整的机器学习框架,无论是对于初学者还是开发人员来说都是非常不错的选择。如果想要入门机器学习或者在机器学习方面有所深造,那么 TensorFLow 是非常不错的选择。
相关推荐
- 压缩文件查看器(压缩文件查看器密码是多少)
-
1,打开手机上面的文件管理器,找到要压缩的WPS文件。2,长按一下WPS文件,然后选择要压缩的文件。3,点击右下角的【更多】,选择【压缩】。4,对压缩文件进行保存,压缩完成。扩展资料:wps产品特点1...
- 键盘哪个是截图键(键盘中的截图键是哪一个)
-
1、按Prtsc键截图这样获取的是整个电脑屏幕的内容,按Prtsc键后,可以直接打开画图工具,接粘贴使用。也可以粘贴在QQ聊天框或者Word文档中,之后再选择保存即可。2、按Ctrl+Prtsc键截图...
- flash插件电脑版下载(flash插件下载安装)
-
可以不安装,不安装对电脑也不会有什么影响。友情提示,最好安装,这个也不会占用你多少内存,它是用来播放网页中的flash文件的。如果你不安装,网页中的flash动画就不能正常播放。浏览器也会提示你安装!...
- foxmail邮箱怎么设置(foxmail邮箱设置成功后点完成没反应)
-
操作步骤/方法1.打开新建界面:2.打开foxmail,在上方导航栏处找到“邮箱(B)”点开此功能,会看到一个下拉菜单,在下拉菜单中找到“新建邮箱账户(N)”。3.建立账户信息:4.点击“新建邮箱账...
- 电脑自动关机解决办法(电脑自动关机,原来是这里出了问题)
-
电脑自动关机的原因一、系统文件损坏一个完整的系统受到袭击之后,电脑就不能进行初始化,从而引起自动关机,这也是一个常见的原因。可以选择重装系统的方法来解决问题。电脑自动关机的原因二、CPU太热这是电脑自...
- m2固态硬盘安装系统教程(m2固态如何装系统)
-
加装m.2固态硬盘后,重装系统的操作步骤如下:1、下载U盘启动盘制作工具,下载一个GHOST版最新的WIN7,准备一个足够大的U盘(16G足够了),用U盘启动盘制作工具将其制作成启动U盘;2、插入新电...
- 运行chkdsk工具(运行chkdsk工具怎么解决)
-
1、win+R键打开运行,输入cmd。2、输入并回车执行chkdsk/?命令,可以了解chkdsk命令的使用方法。3、比如一些常用的命令,输入并按回车执行chkdskm:/f命令,可以检...
- 办公软件2007官方下载免费完整版
-
office字体都变成了英文是因为设置了英文模式。具体的解决步骤如下:我们需要准备的材料分别是:电脑、Word文档。1、首先我们打开Word文档,点击打开左上角的文件中的“选项”。2、然后我们在弹出来...
- 手机u盘有必要买吗(手机u盘需要什么软件)
-
网上卖的手机U盘大都是各地的实体数码店进行发货和销售的。他们采用的U盘质量和工厂生产的质量是一致的。并没有什么区别对待。而且由于网上销售费用比较低,所以他在售卖比实体数码店售卖的价格更低,所以这种手机...
- 电脑系统怎么下载到u盘中(电脑系统win7纯净版下载官方免费版最新版)
-
下载电脑系统,可以到电脑系统资源下载网站,找到下载页面的下载点,右击下载点,选择迅雷下载,可以把系统文件下载到硬盘里,然后插上U盘,将下载好的系统文件复制到U盘。另一种方法是,将迅雷软件的默认下载路径...
- 小米主题安装器(红米主题商店app下载安装)
-
很抱歉,一加九手机无法直接安装小米主题。因为一加九和小米手机使用的是不同的操作系统和主题引擎,它们之间不兼容。一加九使用的是基于Android的OxygenOS操作系统,而小米手机使用的是基于Andr...
- hp电脑恢复出厂系统(hp电脑恢复出厂系统操作)
-
在开始菜单的【设置】中找到【重置此电脑】的选项即可开始重置恢复到出厂设置;如果您需要整个硬盘格式化,可以选择其中的【删除所有文件】的选项,等待系统设置完成之后会重新进入新系统设置。以下是详细介绍:...
- ghost做c盘镜像的步骤(ghost制作镜像步骤)
-
共9个步骤:1、一般GHOST工具是在PE启动后使用,这个就是PE中GHOST所在路径,找到这个软件并运行。2、界面是英文版本的,因为软件的易操作易学习性,所以这个软件基本没有中文版版本,然后在弹出的...
- win10家庭版怎么激活系统(win10家庭版激活步骤)
-
win10家庭中文版怎么激活1.在win10系统桌面上,点击左下角的开始按钮选择设置选项进入。2.进入设置列表菜单,点击更新和安全选项进入。3.点击激活选项继续下一步操作。4.在弹出输入产品密钥的对话...
- 一周热门
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
