A. 如何在windows上编译安装tensorflow
你好,
Cmake
在解压并打开下载的tensorflow源码,进入里面的如下路径
tensorflow-master\tensorflow\contrib\cmake
新建一个文件夹build,作为存放编译结果的地方.
进入build文件夹
复制当前的路径
B. 有没有tensorflow的编译器
有没有tensorflow的编译器
(其中.config的内容是在make menuconfig的时候,通过Kconfig文档配置的结果)
在linux2.6.x/Documentation/kbuild目录下有详细的介绍有关kernel makefile的知识。
最后举个例子:
假设想把自己写的一个flash的驱动程式加载到工程中,而且能够通过menuconfig配置内核时选择该驱动该怎么办呢?能够分三步:
第一:将您写的flashtest.c 文档添加到/driver/mtd/maps/ 目录下。
第二:修改/driver/mtd/maps目录下的kconfig文档:
config MTD_flashtest
tristate “ap71 flash"
这样当make menuconfig时 ,将会出现 ap71 flash选项。
C. tensorflow-gpu怎么写程序
在Mac电脑上面编译GPU版本TensorFlow的方法
基本使用
使用 TensorFlow, 你必须明白 TensorFlow:
使用图 (graph) 来表示计算任务.
在被称之为 会话 (Session) 的上下文 (context) 中执行图.
使用 tensor 表示数据.
通过 变量 (Variable) 维护状态.
使用 feed 和 fetch 可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据.
D. TensorFlow的优势和缺点有哪些
很多神经网络框架已开源多年,支持机器学习和人工智能的专有解决方案也有很多。多年以来,开发人员在Github上发布了一系列的可以支持图像、手写字、视频、语音识别、自然语言处理、物体检测的机器学习框架,但并没有一种框架可以完美地解决你所有的需求。那么该如何选择最适合你的开源框架呢?希望下面带有描述的图表以及分析可以带给你以启发,以此来选择最适合你的业务需求的框架。
下图总结了绝大多数Github上的开源深度学习框架项目,根据项目在Github的Star数量来评级,数据采集于2017年5月初。
图片描述
TensorFlow
TensorFlow框架的前身是Google的DistBelief V2,是谷歌大脑项目的深度网络工具库,一些人认为TensorFlow是借鉴Theano重构的。
Tensorflow一经开源,马上引起了大量开发者的跟进。Tensorflow广泛支持包括图像、手写字、语音识别、预测和自然语言处理等大量功能。TensorFlow遵循Apache 2.0开源协议。
TensorFlow在2017年2月15号发布了其1.0版本,这个版本是对先前八个不完善版本的整合。以下是TensorFlow取得成功的一些列原因:
TensorFLow提供这些工具:
TensorBroad是一个设计优良的可视化网络构建和展示工具;
TensorFlow Serving通过保持相同的服务器架构和API,可以方便地配置新算法和环境。TensorFlow Serving 还提供开箱即用的模型,并且可以轻松扩展以支持其他的模型和数据。
TensorFlow编程接口包括Python和C++,Java,Go,R和Haskell语言的接口也在alpha版中支持。另外,TensorFlow还支持谷歌和亚马逊的云环境。
TensorFlow的0.12版本支持Windows 7, 8, Server 2016系统。由于采用C++ Eigen库,TensorFlow类库可以在ARM架构平台上编译和优化。这意味着你可以不需要额外实现模型解码器或者Python解释器就可以在多种服务器和移动设备上部署训练好的模型。
TensorFlow提供细致的网络层使用户可以构建新的复杂的层结构而不需要自己从底层实现它们。子图允许用户查看和恢复图的任意边的数据。这对复杂计算的Debug非常有用。
分布式TensorFlow在0.8版本推出,提供了并行计算支持,可以让模型的不同 部分在不同设备上并行训练。
TensorFlow在斯坦福大学,伯克利学院,多伦多大学和Udacity(2016年3月成立的在线学校)均有教学。
TensorFlow的缺点有:
每个计算流必须构建成图,没有符号循环,这样使得一些计算变得困难;
没有三维卷积,因此无法做视频识别;
即便已经比原有版本(0.5)快了58倍,但执行性能仍然不及它的竞争者。
Caffe
Caffe是贾扬清的作品,目前,贾扬清是Facebook AI平台的Lead。始于2013年末,Caffe可能是第一个主流的工业级的深度学习工具包。Caffe具有卓越的卷积模型,是计算机视觉领域最受欢迎的工具之一,且2014年ImageNet 大赛的获奖作品使用的就是Caffe框架。Caffe遵循BSD 2-Clasuse 协议。
Caffe的高速使得它非常适合于科研和商业领域。利用一个NVIDIA K40 GPU,Caffe可以每天处理60M张图片,即推断1毫秒一张,训练4毫秒一张。使用最新的版本,甚至可以更快。
Caffe底层是用C++实现的,可以在各种设备上编译。Caffe是跨平台的并且提供Windows接口,它提供C++,Python和Matlab语言接口。Caffe拥有着庞大的用户社区,并且有大量深度网络模型在社区上贡献,被称为“Model Zoo”。其中,AlexNet和GoogleNet是最着名的两个。
Caffe是视觉识别的流行框架,然而Caffe不提供像TensorFlow,CNTK或Theano一样细粒度的层结构。你必须编写底层代码来构建复杂的层结构。由于它的固有架构,Caffe对循环网络和语言模型的支持不力。
Caffe2
贾扬清和他的团队目前在Facebook致力于Caffe2的研发。2017年4月18号,Facebook基于BSD协议开源了Caffe2。Caffe2聚焦于模块化,在移动设备和大规模部署均表现出色。和TensorFlow一样,Caffe2页使用C++ Eigen以支持ARM架构。
Caffe的模型可以通过脚本轻松转化成Caffe2模型。Caffe在设计上的倾向使得它特别适合视觉相关的问题,Caffe2沿袭了它对视觉问题的强大支持,同时还加入了RNN和LSTM以更好地支持自然语言处理,手写字识别和时间序列预测。
可以预见在不远的将来Caffe2将会替代Caffe在深度学习社区的地位。
Microsoft Cognitive Toolkit
Microsoft Cognitive Toolkit(CNTK)设计的初衷是用于语音识别领域。CNTK支持RNN(循环神经网络)和CNN(卷积神经网络),因此他有能力胜任图像、手写字和语音识别问题。CNTK支持64位Linux和Windows系统,提供Python和C++语言接口,遵循MIT协议。
CNTK与TensorFlow和Theano有着类似的设计理念——把网络定义成向量操作的语义图,向量操作例如矩阵加法、矩阵乘法以及卷积。同时,CNTK也提供细粒度的网络层设计,允许用户使用它们设计新的复杂网络。
和Caffe一样,CNTK底层也是C++实现并具有跨平台CPU/GPU支持。搭载在Azure GPU Lab上,CNTK能发挥出最高的分布式计算性能。目前,CNTK由于不支持ARM架构,限制了其在移动端的应用。
MXNet
MXNet源自于卡内基梅隆大学和华盛顿大学。MXNet是一个极具特色,可编程,可扩展的深度学习框架。MXNet可以混合多种语言的模型和代码,包括Python, C++, R, Scala, Julia, Matlab, JavaScript。2017年1月30号,MXNet被纳为Apache基金会孵化项目。
MXNet支持CNN、RNN、LSTM, 提供对图像,手写字,语音识别,预测和自然语言问题的强大支持。有人认为,MXNet是世界上最好的图像分类器。
MXNet具有出色的可扩展性,例如GPU并行计算,存储映像,高速开发和可移植性。另外,MXNet可以和Apache Hadoop YARN结合,YARN是一个通用分布式应用管理框架,这一特性使得MXNet成为TensorFlow的竞争者。
MXNet的一个独特之处是它是少有的几个支持对抗生成网络(GAN)的框架之一。这个模型被用于实验经济学方法中的“纳什均衡”。
另一个特殊之处是,亚马逊的CTO Werner Vogels宣布了对MXNet的支持:“今天,我们宣布MXNet将成为亚马逊的深度学习框架选择。我们将在现有和未来将出现的服务中使用MXNet。”苹果公司的部分传闻也表示该公司将会使用MXNet作为其深度学习框架。
Torch
Torch由Facebook的Royan Collobert、Soumith Chintala、曾任于Twitter现任于Nvidia的Clement Farabet和Google Deep Mind 的Koray Kavukcuoglu共同开发。其主要贡献者是Facebook、Twitter和Nvidia。 Torch遵守BSD 3 clause 开源协议。然而,Facebook近期宣布将转向Caffe2作为其首选深度学习框架因为它支持移动设备开发。
Torch由Lua语言实现,Lua是一种小众语言,因此若你不熟悉这门语言,会影响到整个工作的效率。
Torch缺少像TensorFlow、MXNet on YARN和Deeplearning4J那样的的分布式支持,缺少多种语言接口同样限制了它的受众。
DeepLearning4J
DeepLearning4J(DL4J)是基于Apache 2.0协议的分布式开源神经网络类库,它由Java和Scala实现。DL4J是SkyMind的Adam Gibson开发的,它是唯一的商品级深度学习网络,可以和Hadoop、Spark结合构建多用户多线程服务。DL4J是唯一使用Map-Rece训练网络而使用其他类库进行大规模矩阵操作的框架。
DL4J拥有内建的GPU支持,这一重要特性能够支持YARN上的训练过程。DL4J拥有丰富的深度神经网络架构支持,包括RBM,DBN,CNN,RNN,RNTN和LSTM。DL4J还支持一个向量计算库——Canova。
由于是由Java实现,DL4J先天比Python块,它使用多GPU执行图像识别任务和Caffe一样快。该框架可以出色完成图像识别,欺诈检测和自然语言处理任务。
Theano
Theano主要由蒙特利尔大学学习算法研究所(MILA)创立。Yoshua Bengio是Theano的开创者,同时领导这个实验室,该实验室在深度学习研究领域做出巨大的贡献,培养出约100名相关学生和从业者。Theano支持高效机器学习算法的快速开发,遵守BSD开源协议。
Theano不像TensorFlow那样优雅,但它提供了支持循环控制(被称为scan)的API,可以轻松实现RNN。
Theano提供多种支持手写字识别、图像分类(包括医学图像)的卷积模型。Theano还提供三维卷积和池化用于视频分类。在语言方面,Theano能胜任例如理解、翻译和生成等自然语言处理任务。Theano还支持生成对抗网络(GAN),GAN即是由MILA的一位学生提出的。
Theano支持多GPU并行计算并且自带分布式框架。Theano只支持一种开发语言,比TensorFlow速度快很多,是一种学术研究的有力工具。然而,其不支持移动平台以及没有多种语言接口的缺陷限制了它在企业的广泛应用。
开源与专利软件之争
随着深度学习逐渐成熟,可以预知到我们将见证TensorFlow,Caffe2和MXNet的竞赛。同时,软件供应商也在提供先进的AI产品使你从数据中获取更多价值。问题是:你会购买带有专利的AI产品还是使用开源框架。如果使用开源框架,你将会面临哪种框架最适合你的问题的选择困难。而选择专利软件,你又将怎样制定退出策略?任何一种选择都需要长远考虑。
E. tensorflow 调试时,怎么看下面的参数的里面内容
基本使用 使用 TensorFlow, 你必须明白 TensorFlow: 使用图 (graph) 来表示计算任务. 在被称之为 会话 (Session) 的上下文 (context) 中执行图. 使用 tensor 表示数据. 通过 变量 (Variable) 维护状态. 使用 feed 和 fetch 可以为任意的操作
F. 如何在Mac电脑上面编译GPU版本TensorFlow
1
而今天我要做的,就是带着所有这些几乎没有编程基础却很想学习Tensorflow的同学跨过这道坎。告诉你们大家如何准备好使用Tensorflow进行编程所需的一切,以及如何看懂教程上的那些代码所代表的含义,那么废话不多说,我们马上开始。
2
安装环境
Tensorflow的支持列表里是没有Windows的。虽然可以用Docker来实现在Windows上运行,但小问题很多,它支持的最好的还是基于unix内核的系统,如Linux,因此我们最好还是安装一个Linux的环境来运行它。Linux是一款免费的开源操作系统,应用非常广泛,如着名的android就是基于Linux改进的一款针对手机的操作系统。而对于我们来说,最易于理解的版本就是着名的Ubuntu,点击链接即可去官网下载,正如前面所说,下载和使用都是免费的。
如果你使用的是Mac,那就方便很多了,因为Mac os本身就是一个基于Unix的操作系统,已经搭载了全部安装Tensorflow所需要的组件。所以安装的很多步骤都可以省去,直接进行Tensorflow的安装,不过命令同Ubuntu有所不同。但你也可以看看接下来的教程,对理解那些命令也会有帮助。呃……你说你在Mac上装了Windows?
下载之后,你会得到一个装着Ubuntu系统的.iso文件。有两个办法来处理它,一是直接安装,同电脑现在在用的系统组成双系统(当然你也可以换掉现在的系统,不过我想应该没有人会愿意这么做的吧哈哈)。如果你不想那么大动干戈,也可以通过虚拟机来虚拟一个系统。不过,安装虚拟机对配置有一定要求,毕竟它相当于在你的电脑上同时打开两个系统了——CPU最好不要低于4代i3(尤其是笔记本,CPU型号的i3/5/7-xxxx的四位数里第一个x就表示它的代数)。内存——注意,内存一定不能低于4g,因为你给虚拟机分配的内存在虚拟机启动之后会1:1的从你的物理内存中划走。再加上物理机系统的消耗。当然,这个配置表是只有下限没有上限的,你的电脑配置越好,体验就越好。而装双系统的话,对配置的需求就小很多了。
G. 如何自己写tensorflow的android应用
在发布逾一周年之际,TensorFlow 终于将迎来史上最重大更新:TensorFlow 1.0。 对于不熟悉开源框架的读者,TensorFlow 是谷歌 2015 年底推出的深度学习框架,在开发者社区享有盛誉。去年,它已成为 GitHub 最受欢迎的机器学习开源项目。因其高度普及率,尤其是在 Python 生态圈中,TensorFlow 的功能变化会对全世界的机器学习开发者造成重大影响。 本月初,谷歌公布了 TensorFlow 1.0.0-alpha ,即 TensorFlow 1.0 的第一个草稿版本。近日,新的候选版本 TensorFlow 1.0.0-rc0 被发布出来,披露了更多技术细节,标志着我们离 完全体的 TensorFlow 1.0 更近一步。 雷锋网消息,1.0 版本不仅为 TensorFlow 机器学习函数库带来多重升级,而且为 Python 和 Java 用户使用 TensorFlow 做开发降低了难度。另外,新版本的漏洞修补也得到了改善。更有意思的是,由于对 TensorFlow 计算做优化的新编译器,在智能手机上运行基于 TensorFlow 的机器学习 APP 将成为可能。 强化对 Python 支持,加入 Java API 由于 Python 是最常用的机器学习开发语言,TensorFlow 1.0 对 Python 交互作了重点改进Python API 得到升级,TensorFlow 使用的语法和隐喻(syntax、metaphor)与 Python 的能更好吻合,提升两者之间的一致性。 雷锋网获知,该升级带来了一个坏消息:现有 Python 应用将无法兼容。TensorFlow 开发者们已经发布了一个能把旧 TensorFlow API 转化为新格式的脚本,但是该脚本无法解决所有问题很多情况下,开发者需要人工调整脚本。 TensorFlow 现已支持与 Python 3 兼容的 Docker 镜像。对于所有 Python 用户,TensorFlow 现在可以通过 Python 的原生软件包管理器 pip 来安装。这是提升 TensorFlow 可用性的关键一步,尤其对于那些使用原生 Python 应用分发、而非使用数据科学专用体系(比如 Anaconda)的用户。 Java 是机器学习领域的另一个主流语言平台。此前,TensorFlow 并没有对其支持,更没有一系列对 Java 的捆绑,而新的 1.0 版本引入了一个 Java API。但雷锋网提醒,它还远未成熟,随时可能会有变化。而且,你需要 Linux 或者 Mac OS 平台上的来源来开发 TensorFlow(你可以把这作为 Windows 端 TensorFlow 是二等公民的另一个证据)。 TensorFlow 1.0 的最大变化或许不是新语言支持或者新算法,而是 XLA 全称 Accelerated Linear Algebra,意为加速线性代数,是一个针对 TensorFlow 中线性代数运算的试验性质编译器。它通过生成既能运行于 GPU、又能在 CPU 运行的机器代码,来加速数学计算。目前, XLA 只支持英伟达 GPU,但这与当下机器学习应用对 GPU 支持的现状是一致的。 XLA 提升了 TensorFlow 的移动性。现有的、未经调整的 TensorFlow 程序只需创建一个后端即可在新硬件平台上运行。这么做的意义非同寻常 此前, IBM 就为它的 PowerAI 机器学习硬件解决方案加入了对 TensorFlow 的支持,前者由 Power8 CPU 和 GPU 混合运行。 TensorFlow 的工程师已经缩减了它的整体内存占用和 APP 的存储空间占用。这些优化对各类硬件运行环境都有好处,但对于移动平台尤其重要。此前的 TensorFlow 版本已经加入了对安卓、iOS 和 Raspberry Pi(树莓派微型电脑)硬件平台的支持,使得 TensorFlow 能在这类设备上处理诸如图像分类之类的任务。 关于机器学习的讨论往往会涉及高端硬件机器学习,尤其是深度学习,是发展高端硬件的重要推动力量,不管是定制 CPU、GPU 阵列、FPGA 还是支持云端坏境的规模化硬件。但有理论认为,创造出能在普通智能手机上运行的机器学习模型,而无需 24 小时每时每刻的云端支持,将会孵化出一系列新型应用。这便是TensorFlow 1.0 的野心之一。 viainfoworld
H. 怎么源码编译tensorflow
Cmake
解压并打载tensorflow源码进入面路径
tensorflow-master\tensorflow\contrib\cmake
新建文件夹build作存放编译结.
进入build文件夹
复制前路径
I. tensorflow怎么做应用程序
TensorFlow 使用的语法和隐喻(syntax.0 的最大变化或许不是新语言支持或者新算法。这是提升 TensorFlow 可用性的关键一步,但对于移动平台尤其重要,不管是定制 CPU,TensorFlow 1,由于对 TensorFlow 计算做优化的新编译器,而且为 Python 和 Java 用户使用 TensorFlow 做开发降低了难度,披露了更多技术细节。而且:现有 Python 应用将无法兼容,即 TensorFlow 1.0 的野心之一,更没有一系列对 Java 的捆绑,标志着我们离 完全体的 TensorFlow 1,它已成为 GitHub 最受欢迎的机器学习开源项目,使得 TensorFlow 能在这类设备上处理诸如图像分类之类的任务。因其高度普及率,谷歌公布了 TensorFlow 1.0,开发者需要人工调整脚本,创造出能在普通智能手机上运行的机器学习模型、GPU 阵列。
TensorFlow 1,TensorFlow 并没有对其支持。
雷锋网获知,新版本的漏洞修补也得到了改善、未经调整的 TensorFlow 程序只需创建一个后端即可在新硬件平台上运行、FPGA 还是支持云端坏境的规模化硬件、而非使用数据科学专用体系(比如 Anaconda)的用户,TensorFlow 是谷歌 2015 年底推出的深度学习框架。
对于不熟悉开源框架的读者。这便是TensorFlow 1。但雷锋网提醒,是发展高端硬件的重要推动力量, XLA 只支持英伟达 GPU,但是该脚本无法解决所有问题很多情况下,尤其对于那些使用原生 Python 应用分发,随时可能会有变化,尤其是深度学习。对于所有 Python 用户。TensorFlow 开发者们已经发布了一个能把旧 TensorFlow API 转化为新格式的脚本,TensorFlow 现在可以通过 Python 的原生软件包管理器 pip 来安装。
本月初,1,来加速数学计算。此前。
关于机器学习的讨论往往会涉及高端硬件机器学习,但这与当下机器学习应用对 GPU 支持的现状是一致的.0 版本不仅为 TensorFlow 机器学习函数库带来多重升级。
雷锋网消息,是一个针对 TensorFlow 中线性代数运算的试验性质编译器。现有的,它还远未成熟。近日,在智能手机上运行基于 TensorFlow 的机器学习 APP 将成为可能。去年.0-alpha .0 的第一个草稿版本、metaphor)与 Python 的能更好吻合、iOS 和 Raspberry Pi(树莓派微型电脑)硬件平台的支持.0 更近一步,前者由 Power8 CPU 和 GPU 混合运行.0 版本引入了一个 Java API,TensorFlow 终于将迎来史上最重大更新,尤其是在 Python 生态圈中.0,而新的 1:TensorFlow 1。此前的 TensorFlow 版本已经加入了对安卓,将会孵化出一系列新型应用。
强化对 Python 支持,该升级带来了一个坏消息。
TensorFlow 的工程师已经缩减了它的整体内存占用和 APP 的存储空间占用。它通过生成既能运行于 GPU,加入 Java API
由于 Python 是最常用的机器学习开发语言.0-rc0 被发布出来。
XLA 提升了 TensorFlow 的移动性,提升两者之间的一致性, IBM 就为它的 PowerAI 机器学习硬件解决方案加入了对 TensorFlow 的支持,你需要 Linux 或者 Mac OS 平台上的来源来开发 TensorFlow(你可以把这作为 Windows 端 TensorFlow 是二等公民的另一个证据),在开发者社区享有盛誉。另外在发布逾一周年之际、又能在 CPU 运行的机器代码。更有意思的是。
Java 是机器学习领域的另一个主流语言平台。这些优化对各类硬件运行环境都有好处,TensorFlow 的功能变化会对全世界的机器学习开发者造成重大影响,而无需 24 小时每时每刻的云端支持。
TensorFlow 现已支持与 Python 3 兼容的 Docker 镜像,新的候选版本 TensorFlow 1,意为加速线性代数。目前。但有理论认为.0 对 Python 交互作了重点改进Python API 得到升级.0。这么做的意义非同寻常 此前,而是 XLA 全称 Accelerated Linear Algebra