Win10配置人工智能学习平台Tensorflow的正确姿势

简介:

目录:

  1. Tensorflow在Windows10的安装

  2. Tensorflow,那么什么是Tensor?

  3. 为什么Tensorflow那么受欢迎?

  4. CNTK分析。

  5. Reference

Tensorflow在Windows10的安装

在Windows玩了很久的Tensorflow,但由于某些不可抗因素,硬是格式化了Windows。格式化完毕后立马装上Anaconda3,结果就在一个大坑里默默流眼泪——Tensorflow不支持最新的Python3.6。pip的效率是真的不算高,于是在下载都能失败好几次的情况下,我硬是被卡了半个多月。这篇教程算是给整个Tensorflow的Win平台填上最新的坑。(近乎所有的教程都是在Python3.6发布之前写的)

首先下载Anaconda3

注意,Tensorflow在Win环境下只支持Python3

同时,Anaconda3的下载不能下最新版,也就是只支持64位Python3.5。

而后就是经典的:

pip install tensorflow #如果你用CPU的话;

pip install tensorflow-gpu#如果你用GPU加速的话

这也是一般的套路告诉你的。不过其实完全可以直接去pypl的资源上直接迅雷啊什么的下下来,比较快、省时间。而后打开cmd,pip install 直接拖入你的文件到cmd,而后麻溜回车。

你以为就这么天真的:

import tensorflow as tf

print('TensorFlow version: {0}'.format(tf.__version__))

hello = tf.constant('Hello, TensorFlow!')

sess = tf.Session()

print(sess.run(hello))

你就会得到:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

来自tensorflow的嘲讽。

在Google中沉浮数日,发现了大佬的解决方案:

pip install --upgrade http://ci.tensorflow.org/view/Nightly/job/nightly-win/85/DEVICE=cpu,OS=windows/artifact/cmake_build/tf_python/dist/tensorflow-1.0.0rc2-cp35-cp35m-win_amd64.whl

安装完毕之后,可以通过。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

在这里,问过Tensorflow的作者之一——Adriano Carmezim

得到的回答是酱紫的:

>Apparently this issue is fixed at HEAD but didn't make it to the release build.

也就是说,这是作者的坑。。。忽略就好。。。

Tensorflow,那么什么是Tensor?

tensor的对应到中文的解释是张量。为什么要讲tensor,主要就是鼎鼎大名的keras默认使用Tensorflow作为后端来进行张量的操作。而且tensor这个概念属于一种底层概念,如果一个做Deep Learning的人没有办法理解tensor,那么其使用Deep Learning的技巧和创新性也十分有限。

张量这个概念比较复杂,tensor可以理解成一种多维数组,张量可以看作是向量、矩阵的自然推广,表示广泛的数据类型。

复杂点并不是在计算机意义上的多维数组表示方法,往往比喻有降低复杂性的作用。

零阶张量是普通的数,是张量的最底层的存在,也是最容易理解的一个部分。

一阶张量是向量,是数的有序的组合的结果。

张量的核心便在于——组合。

同样的,将一阶张量再进行有序组合,得到二阶张量。线性代数告诉我们一个矩阵可以表示为n个列向量的和,相比大家能够猜到二阶张量可以对应到我们已经理解的矩阵。

如此,不断的迭代加深。

由于可以迭代到很高层,在高层以上,我们就不费心思研究Tensor在我们的认知中的对应关系。研究物理的前辈们很早就意识到向量和张量作为实体具有物理上的意义的,它超越了它们的分量所被表述的(经常是任意的)坐标系。

其实张量的理解,理解成一种不断组合不断升级并且没有天花板的高级数据类型就可以了。

比较像人话的,是无分量方法。它把张量首先视为抽象对象,表达了多线性概念的某种确定类型。操作张量的规则作为从线性代数到多重线性代数的推广出现。其方式是更现代的无分量向量方法在基于分量的方法用于给出向量概念的基本引例之后就取代了传统的基于分量的方法。

为什么Tensorflow那么受欢迎?

TensorFlow是相对高阶的机器学习库,用户可以方便地用它设计神经网络结构,而不必为了追求高效率的实现亲自写C++或CUDA18代码。在Tensorflow上可以很麻溜的跑自己的模型而不用担心自己的Neural Network的细节部分。而Tensorflow作为神级框架Keras的默认back-end以及Google帅气的号称秒世界的Edward库,无不体现Tensorflow目前的领军地位。

要说做DL的人最火大什么,无非就是各种细节上的纠结和各种求导,这个Theano做的也不错。不过使用Python时有一个影响效率的问题是,每一个mini-batch要从Python中feed到网络中,这个过程在mini-batch的数据量很小或者运算时间很短时,可能会带来影响比较大的延迟。

但是在这里说一下Theano的一个坏话:

配置真的很烦!编译真的很慢!

编译需要MinGW支持,MinGW据说在国内经常翻车。对于新人来说,一个import theano 就弄出一大堆C/C++代码,不免被震撼到。而后又要做许多的改造才能让theano 俯首称臣,这个自学轨迹不要太崎岖。

TensorFlow在定义新网络结构时,Theano通常需要长时间的编译,因此尝试新模型需要比较大的代价,而TensorFlow完全没有这个问题。

Tensorflow的教程真的是一搜一大把,在youtube上一搜,各种应用和教程五花八门,并且质量还普遍不低——毕竟玩DL的人不是学界大牛就是Keep Learning的典范。

内置的TF.Learn和TF.Slim等上层组件可以帮助快速地设计新网络,并且兼容Scikit-learn estimator接口,可以方便地实现evaluate、grid search、cross validation。并且据某老司机表示:只要可以将计算表示成计算图的形式,就可以使用TensorFlow。这就意味着,Tensorflow打破了Deep Learning这个概念框架的限制,在更多的领域也有自己的应用,可以写内层循环代码控制计算图分支的计算。TensorFlow也可以将计算图中的各个节点分配到不同的设备执行,充分利用硬件资源。

最值得小白们关注的就是——帅!

Tensorflow的TensorBoard,将网络结构和训练过程进行可视化,经常为了等编译,然后去冲一杯咖啡,路上碰上老板还是同学什么的,侃大山侃完,回来——还没做好。然鹅这个时候早已忘记了自己做到哪一步了,就一脸懵逼的看着电脑,或者一脸懊悔的看着自己手贱戳了键盘的某个键。

TensorBoard是TensorFlow的一组Web应用,用来监控TensorFlow运行过程,或可视化Computation Graph。TensorBoard目前支持5种可视化:标量(scalars)、图片(images)、音频(audio)、直方图(histograms)和计算图(Computation Graph)。TensorBoard的Events Dashboard可以用来持续地监控运行时的关键指标,比如loss、学习速率(learning rate)或是验证集上的准确率(accuracy);Image Dashboard则可以展示训练过程中用户设定保存的图片,比如某个训练中间结果用Matplotlib等绘制(plot)出来的图片;Graph Explorer则可以完全展示一个TensorFlow的计算图,并且支持缩放拖曳和查看节点属性。

CNTK分析

CNTK是MSRA开源的深度学习框架。在语音识别领域的使用尤其广泛。CNTK设计是性能导向的,从各种成绩上来看是非常的卓越——对,比Tensorflow厉害!

CNTK这个框架也很尴尬的和Tensorflow一样,对Python的支持又是只支持Python3.5

但是CNTK有个非常非常非常尴尬的一个局面:

真的!真的!很复杂!

并且没有Keras这样的神级辅助助推。

安装方法也是:

pip install https://cntk.ai/PythonWheel/CPU-Only/cntk-2.0.beta12.0-cp35-cp35m-win_amd64.whl

感兴趣的、想研究CNTK的筒子们可以直接爬下来。

性能是真的比Tensorflow高,同时你能用CNTK弄好,也代表了你的实力,毕竟CNTK的的确确的比Tensorflow更复杂一点,但是还是可以接受的。


原文发布时间为:2017-03-01
本文来自云栖社区合作伙伴“ Python中文社区”,了解相关信息可以关注“ Python中文社区”微信公众号
相关文章
|
1月前
|
机器学习/深度学习 人工智能 算法
【AAAI 2024】再创佳绩!阿里云人工智能平台PAI多篇论文入选
阿里云人工智能平台PAI发表的多篇论文在AAAI-2024上正式亮相发表。AAAI是由国际人工智能促进协会主办的年会,是人工智能领域中历史最悠久、涵盖内容最广泛的国际顶级学术会议之一,也是中国计算机学会(CCF)推荐的A类国际学术会议。论文成果是阿里云与浙江大学、华南理工大学联合培养项目等共同研发,深耕以通用人工智能(AGI)为目标的一系列基础科学与工程问题,包括多模态理解模型、小样本类增量学习、深度表格学习和文档版面此次入选意味着阿里云人工智能平台PAI自研的深度学习算法达到了全球业界先进水平,获得了国际学者的认可,展现了阿里云人工智能技术创新在国际上的竞争力。
|
2月前
|
机器学习/深度学习 人工智能 JSON
人工智能平台PAI问题之推断报错如何解决
人工智能平台PAI是指阿里云提供的机器学习平台服务,支持建模、训练和部署机器学习模型;本合集将介绍机器学习PAI的功能和操作流程,以及在使用过程中遇到的问题和解决方案。
37 0
|
2月前
|
人工智能 PyTorch TensorFlow
人工智能应用工程师技能提升系列1、——TensorFlow2
人工智能应用工程师技能提升系列1、——TensorFlow2
55 0
|
3月前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能在公司监视员工电脑的软件中的崭新应用(TensorFlow)
在当今数字化时代,企业日益依赖人工智能技术来提高工作效率和确保数据安全。最近,TensorFlow作为一种强大的机器学习工具,开始在公司监视员工电脑的软件中崭露头角。本文将探讨TensorFlow在这一领域中的创新应用,并通过多个代码示例展示其功能。
229 0
|
2月前
|
机器学习/深度学习 人工智能 Java
人工智能平台PAI问题之提交有问题如何解决
人工智能平台PAI是指阿里云提供的机器学习平台服务,支持建模、训练和部署机器学习模型;本合集将介绍机器学习PAI的功能和操作流程,以及在使用过程中遇到的问题和解决方案。
51 0
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
构建未来:人工智能在持续学习系统中的创新应用
【2月更文挑战第28天】 随着技术的不断进步,人工智能(AI)已成为推动现代技术创新的关键力量。特别是在机器学习领域,AI系统的能力不断增强,能够处理更复杂的任务并做出更加精准的决策。本文将探讨AI在持续学习系统中的应用,重点分析其在数据处理、模式识别和自适应学习机制方面的最新进展,并提出如何利用这些技术来设计更为高效和智能的教育工具,以促进个体和组织的知识积累与技能提升。
15 1
|
2月前
|
机器学习/深度学习 人工智能
人工智能平台PAI问题之维度不匹配如何解决
人工智能平台PAI是指阿里云提供的机器学习平台服务,支持建模、训练和部署机器学习模型;本合集将介绍机器学习PAI的功能和操作流程,以及在使用过程中遇到的问题和解决方案。
44 1
|
2月前
|
机器学习/深度学习 人工智能 分布式计算
人工智能平台PAI问题之loss为负数如何解决
人工智能平台PAI是指阿里云提供的机器学习平台服务,支持建模、训练和部署机器学习模型;本合集将介绍机器学习PAI的功能和操作流程,以及在使用过程中遇到的问题和解决方案。
44 1
|
2月前
|
机器学习/深度学习 存储 人工智能
人工智能平台PAI问题之cuda报错如何解决
人工智能平台PAI是指阿里云提供的机器学习平台服务,支持建模、训练和部署机器学习模型;本合集将介绍机器学习PAI的功能和操作流程,以及在使用过程中遇到的问题和解决方案。
41 1

热门文章

最新文章