深度学习介绍与TensorFlow实战

人工智能,机器学习,深度学习,神经网络的概念与关系

2017国庆快乐,非常开心,难得有充足的时间,可以撸代码。最近人工智能的风口很火爆,基于我掌握的情况,可以先了解,最好复习下高中数学知识(矩阵,多维数据,多元N次方程式)。不然很难看懂学习模型,学习公式。
从关系上讲:
人工智能(Artificial Intelligence)是一个最广泛的概念,人工智能的目的就是让计算机这台机器能够象人一样思考或者通过一些算法来达到,而机器学习(Machine Learning)是人工智能的分支,而深度学习(Deep Learning)是人工智能和机器学习的内在,即使用包含复杂结构或由多重非线性变换构成的多个处理层(神经网络)对数据进行高层抽象的算法。所以三者关系应该式从外到内:AI→ML→DL→神经网络

来源知乎

神经网络是一组大致模仿人类大脑构造设计的算法,用于识别模式。神经网络通过机器感知系统解释传感器数据,能够对原始输入进行标记或聚类等操作。神经网络所能识别的模式是数值形式,因此图像、声音、文本、时间序列等一切现实世界的数据必须转换为数值。如下图:

神经元
简化神经元
数学神经元
著名的猫狗判断

1-深度学习框架

tensorflow 谷歌
CNTK 微软
Theano
caffe Berkeley
scikit-learn Python

2-TensorFlow

AlphaGo就是使用了TensorFlow的杰出作品。我们日常的一些推送新闻购物等,都有AI的影子。谷歌开源最大的原因在于获得世界的认证,同时建立规则,让更多优秀的程序开发工程师享受并丰富这套框架。而优秀的人会带给这套框架更优秀的架构,更优秀的使用方向等。

  • TensorFlow介绍
    TensorFlow是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。
    • 数据流图
      数据流图用“结点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点” 一般用来表示施加的数学操作,但也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”(tensor)。张量从图中流过的直观图像是这个工具取名为“Tensorflow”的原因。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行运算。
图片来源与中文学习网
  • TensorFlow特征
    • 灵活性
      TensorFlow 不是一个严格的“神经网络”库。只要你可以将你的计算表示为一个数据流图,你就可以使用Tensorflow。你来构建图,描写驱动计算的内部循环。我们提供了有用的工具来帮助你组装“子图”(常用于神经网络),当然用户也可以自己在Tensorflow基础上写自己的“上层库”。定义顺手好用的新复合操作和写一个python函数一样容易,而且也不用担心性能损耗。当然万一你发现找不到想要的底层数据操作,你也可以自己写一点c++代码来丰富底层的操作。
    • 移植性
      Tensorflow 在CPU和GPU上运行,可以运行在台式机、服务器、手机移动设备上。
    • 多语言支持
      c++使用界面,也有一个易用的python使用界面来构建和执行你的graphs。你可以直接写python/c++程序,
  • 架构
https://www.tensorflow.org

2.安装

  • 1:从源码安装
    克隆 TensorFlow 仓库
$ git clone --recurse-submodules https://github.com/tensorflow/tensorflow  #--recurse-submodules 参数是必须得, 用于获取 TesorFlow 依赖的 protobuf 库.
  • 2:Docker安装
    首先, 安装 Docker. 一旦 Docker 已经启动运行, 可以通过命令启动一个容器
docker run -it b.gcr.io/tensorflow/tensorflow/tensorflow:1.2.1 bash 

该命令将启动一个已经安装好 TensorFlow 及相关依赖的容器.
其它镜像
默认的 Docker 镜像只包含启动和运行 TensorFlow 所需依赖库的一个最小集. 我们额外提供了 下面的容器, 该容器同样可以通过上述 docker run
命令安装:
b.gcr.io/tensorflow/tensorflow-full: 镜像中的 TensorFlow 是从源代码完整安装的, 包含了编译和运行 TensorFlow 所需的全部工具. 在该镜像上, 可以直接使用源代码进行实验, 而不需要再安装上述的任何依赖.

  • 3:基于pip安装
pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl

# 开启 GPU 支持的版本 (安装该版本的前提是已经安装了 CUDA sdk)
$ pip install https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl

Python 3.X安装命令

pip3 install tensorflow 
  • 4:基于 VirtualEnv 的安装
    由于TensorFlow不支持Windows系统,所以我们使用Mac、Linux来安装,VirtualEnv 创建一个隔离的容器, 来安装 TensorFlow. 这是可选的, 但是这样做能使排查安装问题变得更容易.
# 在 Linux 上:
$ sudo apt-get install python-pip python-dev python-virtualenv

# 在 Mac 上:
$ sudo easy_install pip  # 如果还没有安装 pip
$ sudo pip install --upgrade virtualenv

建立一个全新的 virtualenv 环境. 为了将环境建在 ~/tensorflow 目录下, 执行:

$ virtualenv --system-site-packages ~/tensorflow
$ cd ~/tensorflow

然后, 激活 virtualenv:

$ source bin/activate  # 如果使用 bash
$ source bin/activate.csh  # 如果使用 csh
(tensorflow)$  # 终端提示符应该发生变化

在 virtualenv 内, 安装 TensorFlow:

(tensorflow)$ pip install --upgrade <$url_to_binary.whl>

接下来, 使用类似命令运行 TensorFlow 程序:

(tensorflow)$ cd tensorflow/models/image/mnist
(tensorflow)$ python convolutional.py

# 当使用完 TensorFlow
(tensorflow)$ deactivate  # 停用 virtualenv

$  # 你的命令提示符会恢复原样

3.第一个程序

1.先定义模型,即计算图(Graph)
2.通过会话,执行计算过程
3.Hello World

// 加载Tensorflow模块
import tensorflow as tf
print('tf的版本号:', tf._version_)
// 1.定义常量(计算图) 
syHello = tf.constant("hello, Tensorflow")
// 2.拿到会话体
sySess = tf.Session();
#3.通过会话体执行计算图
print(sySess.run(syHello));

4、机器配置

1.深度学习机器的配置

预算至少3W起,只此一步,如果不借助机构或者公司,一般的学习者还是先积攒积攒。
CPU英特尔i7 4800¥
X99工作站主板京东购买4800¥
显卡3块人民币5699/每个
内存条 16G* 3 人民币1129每条
电源1200W保底美商海盗船
机箱机箱一定要大
机械硬盘2T价格499¥
固态硬盘500G西数M.2接口
散热风扇200以上随便买

GPU性能对比

资料

TensorFlow中文学习社区
框架下载地址
硬件设备配置
深度学习网站
再补充一枚AI

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容