网站首页 > 博客文章 正文
在介绍TensorFlow之前,我们先看一下 机器学习VS 深度学习在算法上有何区别。
机器学习算法的分类有两个阶段:
训练阶段:在这个阶段,机器学习算法使用由图像及相应标签组成的数据集。
预测阶段:在这个阶段,一般利用训练模型来预测图像标签。
图像分类问题的训练阶段主要有两个步骤:
特征提取:在这个阶段,我们利用领域知识来提取一些由机器学习算法使用的新特征。 HoG和SIFT就是两个示例。
模型训练:在这个阶段,我们利用由图像特征和相应的标签组成的净数据集来训练机器学习模型。
在预测阶段,我们对新图像应用相同的特征提取过程,并将特征传递给机器学习算法以用来预测标签。
传统机器学习和深度学习算法的主要区别在于特征(feature)。 在传统的机器学习算法中,我们需要手工编码特征。 相比之下,在深度学习算法中,特征由算法自动完成。 这个过程不太容易,而且耗时,很需要专业领域的相关知识。 与具有较少或没有特征工程的传统机器学习相比,深度学习目标是更准确做到机器学习算法。
下面我们初步认识一下深度学习八大开源算法框架之一的:
Google创建了TensorFlow (TF)来取代Theano。这两个事实上是非常相似的。 Theano的一些创作者,如Ian Goodfellow,在离开OpenAI之前,在Google上创建了Tensorflow。
目前,TensorFlow不支持所谓的“内联”矩阵操作,但强制复制矩阵以便对其执行操作。但是无论从哪个角度看,复制大矩阵的成本都是很高的。 TF所需是深度学习工具的4倍。 这也是Google正在处理的问题。
像大多数深层学习框架一样,TensorFlow是通过C / C ++引擎使用Python API编写的,使其运行速度快。但它不是Java和Scala的解决方案。
TensorFlow不仅仅是深度学习。 它实际上还有工具可以来支持强化学习和其他algos。
谷歌公认的Tensorflow的目标似乎是招聘,共享他们研究人员的代码,标准化软件工程师如何深入学习的过程,并创建一个额外的图表到谷歌云服务,以此优化TensorFlow。
Google并不支持TensorFlow商业化,并且Google也不太可能支持开源企业软件的业务。
像Theano一样,TensforFlow生成计算图(例如,一系列矩阵运算,例如z = sigmoid(x),其中x和z是矩阵)并会自动分化。自动分化是很重要的,因为在每次尝试新的神经网络安排时,你不想手动编码一个新的反向传播的变体。在Google的生态系统中,Google Brain使用的计算图表非常繁琐,但Google尚未开放这些工具。 TensorFlow是Google内部深度学习的一半解决方案。
从企业的角度来看,一些公司需要回答的问题是他们是否想依赖Google来获取这些工具。
注意:在Tensorflow中不是所有的操作像在Numpy中一样可行。
TensorFlow的优点和缺点
(+)Python + Numpy
(+)计算图抽象,如Theano
(+)比Theano更快的编译时间
(+)TensorBoard
(+)数据和模型并行性
( - )比其他框架慢
( - )比火炬“更”更多魔法
( - )没有很多预训练模型
( - )计算图是纯Python,因此很慢
( - )无商业支持
( - )退出到Python加载每个新的训练批处理
( - )不是很方便
( - )动态类型在大型软件项目中容易出错
那TensorFlow还有哪些特点呢?
我们来看一下李尊的总结:
机动性: TensorFlow并不只是一个规则的neural network库,事实上如果你可以将你的计算表示成data flow graph的形式,就可以使用TensorFlow。用户构建graph,写内层循环代码驱动计算,TensorFlow可以帮助装配子图。定义新的操作只需要写一个Python函数,如果缺少底层的数据操作,需要写一些C++代码定义操作。
可适性强: 可以应用在不同设备上,cpus,gpu,移动设备,云平台等
自动差分: TensorFlow的自动差分能力对很多基于Graph的机器学习算法有益
多种编程语言可选: TensorFlow很容易使用,有python接口和C++接口。其他语言可以使用SWIG工具使用接口。(SWIG—Simplified Wrapper and Interface Generator, 是一个非常优秀的开源工具,支持将 C/C++ 代码与任何主流脚本语言相集成。)
最优化表现: 充分利用硬件资源,TensorFlow可以将graph的不同计算单元分配到不同设备执行,使用TensorFlow处理副本。
- 上一篇: TensorFlow入门:第一个机器学习Demo
- 下一篇: 如何用一套引擎搞定机器学习全流程?
猜你喜欢
- 2024-10-23 完全基于 Java 的开源深度学习平台,亚马逊的大佬带你上手
- 2024-10-23 开源机器学习框架:TensorFlow的架构和设计
- 2024-10-23 tensorflow原理——python层分析(tensorflow底层原理)
- 2024-10-23 机器学习:如何在Kafka应用程序中部署一个分析模型进行实时预测
- 2024-10-23 Google正式发布TensorFlow Lite预览版,针对移动/嵌入设备的轻量级解决方案
- 2024-10-23 谷歌移动端深度学习框架 TensorFlow Lite
- 2024-10-23 TensorFlow 1.0 正式发布(tensorflow最新版)
- 2024-10-23 AI入门之手写数字识别模型java方式Dense全连接神经网络实现
- 2024-10-23 TensorFlow 2.8.0正式上线,修复众多Bug,发布50多个漏洞补丁
- 2024-10-23 如何用一套引擎搞定机器学习全流程?
你 发表评论:
欢迎- 最近发表
-
- 解决Win10打开软件提示“服务器没有及时响应或控制请求”
- 用友UAP解开非结构化大数据处理与分析的密码
- Windows 25H2 修复底层崩溃(windows修复环境)
- 开源技巧:使用Docker实现交互式任务
- Win11 任意版本 直接安装 Android 应用 教程完整版
- Windows Terminal已成为Windows 11操作系统的默认终端
- 那些好莱坞电影中炫酷的特效 原来是这么拍的
- Windows 10 Build 21327.1010发布:测试服务管道更新
- Made in China: The story behind the label
- PowerShell登录远程Linux系统(powershell开启远程桌面)
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- flutterrun (59)
- 系统设计图 (58)
- powershellfor (73)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)