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))

你就会得到:


来自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

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


在这里,问过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中文社区”微信公众号
相关文章
|
2月前
|
机器学习/深度学习 算法 TensorFlow
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件,然后保存为本地格式的H5格式文件。再基于Django开发Web网页端操作界面,实现用户上传一张动物图片,识别其名称。
93 1
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
|
5天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
26 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
5天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
21 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
5天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
25 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
21天前
|
人工智能 自然语言处理 搜索推荐
人工智能与教育:个性化学习的未来
【10月更文挑战第31天】在科技飞速发展的今天,人工智能(AI)正深刻改变教育领域,尤其是个性化学习的兴起。本文探讨了AI如何通过智能分析、个性化推荐、智能辅导和虚拟现实技术推动个性化学习,分析了其带来的机遇与挑战,并展望了未来的发展前景。
|
23天前
|
人工智能 搜索推荐 语音技术
人工智能与未来教育:重塑学习方式的双刃剑
在21世纪,人工智能(AI)技术正以前所未有的速度发展,深刻影响着社会的各个方面,其中包括教育领域。本文探讨了AI如何改变传统教育模式,提出其既带来积极影响也伴随着挑战的观点。通过分析具体案例和数据,文章旨在启发读者思考如何在保留人类教师不可替代价值的同时,有效利用AI技术优化教育体验。
|
22天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
65 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
23天前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能与未来教育:重塑学习体验
【10月更文挑战第20天】 在21世纪的今天,人工智能(AI)技术正以前所未有的速度改变着我们的生活、工作和学习方式。本文探讨了AI如何深刻影响未来教育的各个方面,从个性化学习路径的设计到智能辅导系统的开发,再到虚拟现实(VR)和增强现实(AR)技术在学习中的应用。通过分析这些变革,我们不仅能够预见一个更加高效、互动和包容的教育未来,而且还能理解这一过程中所面临的挑战和机遇。文章强调了持续创新的重要性,并呼吁教育工作者、技术开发者和政策制定者共同努力,以确保技术进步惠及每一个学习者。
46 2
|
2月前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
108 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
2月前
|
人工智能 JSON 数据格式
RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验
【9月更文挑战第6天】RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验
RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验