五分钟喝不完一杯咖啡,但五分钟可以带你入门TensorFlow

本文是《人人都能学人工智能-TensorFlow系列》文章的第一篇,这个系列会对TensorFlow的基础使用,SoftMax,交叉熵,Dropout,CNN,LSTM和NLP等内容进行系列介绍,尽量使用通俗的语言,让更多的人都能了解人工智能,了解TensorFlow。

TensorFlow是Google开源的一款人工智能学习系统。为什么叫这个名字呢?Tensor的意思是张量,代表N维数组;Flow的意思是流,代表基于数据流图的计算。把N维数字从流图的一端流动到另一端的过程,就是人工智能神经网络进行分析和处理的过程。

话说在Android占领了移动端后,Google开源了TensorFlow,希望占领AI端。TF的特点是可以支持多种设备,大到GPU、CPU,小到平板和手机都可以跑起来TF。而且TF的使用很方便,几行代码就能开始跑模型,这让神经网络的入门变得非常简单。

本文是第一篇,都是最基础的内容,老手可以略过。

TensorFlow的安装

在开始写代码之前,咱们先得把TensorFlow安装到电脑上。这里有两种方法,一是一个一个手动命令行安装,二是批量的图形化界面安装。

先看手动安装,我们安装好TensorFlow和upyter Notebook就可以了。

1.1、安装TensorFlow

Windows上:

安装CPU版本:管理员模式打开命令行,输入命令:pip install tensorflow

安装GPU版本:管理员模式打开命令行,输入命令:pip install tensorflow-gpu

Linux上:

命令和上面一样,如果你使用的是Python3点几的版本,那么安装命令为:

安装CPU版本:输入命令:pip3 install tensorflow

安装GPU版本:输入命令:pip3 install tensorflow-gpu

如果提示没有安装pip,mac的同学可以先通过命令安装pip:

1 命令行输入:curlhttps://bootstrap.pypa.io/ez_setup.py-o - | sudo python

2 命令行输入:sudo easy_install pip

1.2、安装Jupyter Notebook

这是一个交互式的笔记本,你可以理解为一个比较漂亮和简洁的编辑器。可以很方便地创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。一般用与做数据清理和转换,数值模拟,统计建模,机器学习等等。

输入命令:pip install jupyter

前面的方法是自己手动一个一个安装,其实已经有人帮我们做了一个大集合,不需要再一个一个手动安装了,下面介绍图形界面的批量安装方式:

1)安装Anaconda。Anaconda是什么?如果你把TensorFlow看做火箭筒,那么Anaconda就是军火库,里面有各种的科学计算,机器学习的Python工具库。在官网下载后,直接安装,然后打开Anaconda,就可以看到下面的页面:

2)点到第二行的Environments,可以看到很多的工具包,搜索TensorFlow,勾选上,然后点击Apply,进行安装就可以了。如果以后还需要其他的工具包,也可以在里面找到,勾选上进行安装。

OK,安装教程到此告一段落。有了jupyter和tensorflow,我们就可以开始基础的运算了。

TensorFlow的基础运算

在搞神经网络之前,先让我们把TensorFlow的基本运算,也就是加减乘除搞清楚。

首先,TensorFlow有几个概念需要进行明确:

1、 图(Graph):用来表示计算任务,也就我们要做的一些操作。

2 、会话(Session):建立会话,此时会生成一张空图;在会话中添加节点和边,形成一张图,一个会话可以有多个图,通过执行这些图得到结果。如果把每个图看做一个车床,那会话就是一个车间,里面有若干个车床,用来把数据生产成结果。

3 、Tensor:用来表示数据,是我们的原料。

4、 变量(Variable):用来记录一些数据和状态,是我们的容器。

5、 feed和fetch:可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据。相当于一些铲子,可以操作数据。

形象的比喻是:把会话看做车间,图看做车床,里面用Tensor做原料,变量做容器,feed和fetch做铲子,把数据加工成我们的结果。

2.1、创建图和运行图

下面我们创建一个图,并在Session中执行它,不用担心看不懂,每句代码都会注释,只有有编程基础,都能OK:

上面就是用TensorFlow进行了一个最简单的矩阵乘法。

2.2、创建一个变量,并用for循环对变量进行赋值操作

可以看到,除了变量创建稍微麻烦一些和必须建立session来运行,其他的操作基本和普通Python一样。

2.3、通过feed设置placeholder的值

有的时候,我们会在声明变量的时候不赋值,计算的时候才进行赋值,这个时候feed就派上用场了

到这里,恭喜你,已经成功入门TensorFlow~ 是不是觉得太简单?好像和深度学习毛线关系都没有嘛。不要急,下一篇文章和大家一起用TensorFlow做一个简单的用神经网络来做手写图片识别的实战。

原文发布于微信公众号 - 人工智能LeadAI(atleadai)

原文发表时间:2017-10-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏菩提树下的杨过

mxnet安装及NDArray初体验

一、mxnet安装 (以下均为mac环境) 有二种方式: 1.1 用conda安装 1 #创建gluon目录 2 mkdir gluon-tutorial...

2346
来自专栏生信技能树

如何选择聚类模块数目

一般来说,类似K-means聚类算法需要我们提取指定聚类得到的cluster数目。 那么问题来了,如何为聚类选择一个适合的cluster数目呢 ? 很遗憾,上面...

69610
来自专栏AIUAI

GPU 显存 - Caffe 内存优化

3506
来自专栏kangvcar

[face_recognition中文文档] 第7节 历史

984
来自专栏一个会写诗的程序员的博客

编程语言关系图谱 谁的影响力更大(图)

当前哪门语言衍生出的族群最大?本文作者依据Haskell上的统计数据,结合两种算法(Force Atlas + Force Atlas 2 + Fructerm...

821
来自专栏腾讯开源的专栏

【开源公告】腾讯第三代高性能计算平台Angel 正式全面开源

Angel 项目简介 Angel是一个基于参数服务器(Parameter Server)理念开发的高性能分布式机器学习框架,在其之上,用户能轻松开发适用于高维度...

3907
来自专栏石瞳禅的互联网实验室

【TensorFlow实战——笔记】第1章:TensorFlow基础

TensorFlow是Google公司开源的分布式机器学习框架。它的前身是DistBelief,在Google大规模内部使用。TensorFlow最早由Goog...

811
来自专栏小L的魔法馆

C++定义一个简单的Computer类

3546
来自专栏机器之心

教程 | TensorFlow 官方解读:如何在多系统和网络拓扑中构建高性能模型

选自Tensorflow 机器之心编译 参与:黄玉胜、黄小天 这个文档和附带的脚本详细介绍了如何构建针对各种系统和网络拓扑的高性能可拓展模型。这个技术在本文档中...

30511
来自专栏Python中文社区

使用MPI for Python 并行化遗传算法

專 欄 ❈PytLab,Python 中文社区专栏作者。主要从事科学计算与高性能计算领域的应用,主要语言为Python,C,C++。熟悉数值算法(最优化方法,...

2136

扫码关注云+社区