深度学习之TensorFlow安装与初体验

深度学习之TensorFlow安装与初体验

学习前

搞懂一些关系和概念

首先,搞清楚一个关系:深度学习的前身是人工神经网络,深度学习只是人工智能的一种,深层次的神经网络结构就是深度学习的模型,浅层次的神经网络结构是浅度学习的模型。

浅度学习:层数少于3层,使用全连接的一般被认为是浅度神经网络,也就是浅度学习的模型,全连接的可能性过于繁多,如果层数超过三层,计算量呈现指数级增长,计算机无法计算到结果,所以产生了深度学习概念

深度学习:层数可以有很多层,但是并不是全连接的传递参数,如上图中右边是一个7层的神经网络模型,其中隐藏层就是所谓的“学习”过程,我们所说的深度也是指隐藏层的深度。图中的有一处容易使人误解,右侧深度神经网络看上去是全连接的,但实际学习过程只采用部分的神经元,并非每一个神经元都互相连接的。如果深度+全连接的话,当前计算机还做不到那么庞大的计算量,模型是不切实际的。

最后,关于人工智能的一个经典评测标准:图灵测试,概括下来,在测试者不知道对面为机器还是人的情况下,向对方发问 ,如果机器的回答超过30%被误以为是人类回答的话,那么就说机器是智能的。

什么是人工神经网络,为什么要用他?

首先神经网络使用的是仿生学,人工神经网络的初衷和目的就是使得计算机像人脑一样“思考”,那硬件和软件的开发就应该仿照人类大脑来做,生物学,计算机学大佬们就想到了给机器按上一个神经元网络,但由于人类本身还没把自己的大脑搞个明白,所以人工智能尚处于一个半吊子状态,他只有人类一部分的智商而已。就目前而言,计算机远远赶不上人类思考的能力,而人类彻底研究明白大脑的那一天就是人工智能真正超越人类的一天(可怕哟)。

区别:

  • 人类的神经网络系统:从出生那一天,神经元就已经存在了,只是连接的方式及其简单,稀疏而已,当你睁开眼睛的那一刻,你看到的爸爸,妈妈的脸,视觉系统就会触发大脑的部分神经元开始连接,这个连接简而言之就是,脸->爸妈(当然实际情况传输层次更多更复杂),以后当你再看到爸妈的脸,就会顺着这条已存在的连接传递(中间也是多层的),一下就认出了爸爸妈妈。
  • 机器的神经网络系统:同样是人脸识别来看,机器先读取人脸,然后转换为二进制文件,将数据交给输入层,输入层传输到隐藏层,这时候会选择第一层部分的神经元,进行激活,神经元会根据给定的特征做一些参数调整,每一个神经元又选择下一层的几个神经元把自己处理好的数据传给他们,以此类推,直到输出层,给出一个“答案”,使用优化函数(如梯度下降算法)对比实际值的差距,比如把爸爸认成了妈妈,产生了这种差距后神经网络就要做一个重要的事情——反向传递,这是人类神经元所不需要的工作,将误差信息原路返回,修改刚刚路过的神经元,调整一些参数(权重),然后反反复复上述所有操作,最后得到接近正确答案的模型,算是学习结束,这时候再输入其他新数值一下就能得出结果了。这就是学习的过程!

结合上面两点来看,这就是为什么人只要看见一次就能记住的脸所对应的人,而机器只要发现脸变胖了,变黑了,就需要反向传递修改一些参数,记住胖脸和黑脸也是这个人,人识别人脸只需要部分特征数据即可,机器识别人脸则需要大量的特征数据。

最后需要知道一点是:机器学习的识别能力是来自大概率事件,只能做到某张图百分之多少是谁,这是指像素点落在某个范围的概率,那就确认是他本人,故而一些噪点(干扰项)落在别的范围,由于概率小,这些神经元在识别过程中会被直接忽略——dropout

安装TensorFlow

说道深度学习框架,第一反应就是Google的TensorFlow,就是围棋大神AlphaGo的前身。

ubuntu安装

安装python3

sudo apt-get install python3-pip python3-dev python-virtualenv

构建虚拟环境

virtualenv --system-site-packages -p python3 ~/tensorflow

source ~/tensorflow/bin/activate

source过后bash环境会有所变化,前方多个括号虚拟目录名,表示在虚拟环境下运行

安装TensorFlow 1.5

pip3 install tensorflow==1.5.0

注意:就安装1.5.0版本,默认的最新版(1.6)安装后,import tensorflow会报内存溢出错误,目前没有找到解决方案。

测试:

python3

import tensorflow

如果python3的解释器不报错就是安装成功了。

第一个案例

新建一个py文件:

import tensorflow as tf
import numpy as np

x = np.random.rand(100).astype(np.float32)
y = x*311.3+2.2

w = tf.Variable(tf.random_uniform([1],0.0,4.0))
b = tf.Variable(tf.zeros([1]))

y_pre = w*x+b

loss = tf.reduce_mean(tf.square(y_pre-y))
opt = tf.train.GradientDescentOptimizer(0.1)
train = opt.minimize(loss)

init = tf.initialize_all_variables()

session = tf.Session()

session.run(init)

for step in range(10000):
    session.run(train)
    if step % 100==0:
        print step,session.run(w),session.run(b)

以上python代码是对TensorFlow使用的一个简单例子,实现:求一次函数系数k和偏量b。

如果是人类实现的话,则是采用待定系数法。

机器学习如下:

首先使用numpy制造一些有关系的数字,产生随机的x,然后模拟一个y=kx+b,产生一些y变量,搞出一批(x,y)集合

tf.Variable的作用是给定两个变量并给出初始值,其实就是k与b的初始值,接下来就是让TensorFlow去“猜”k与b是多少,所谓的“猜”就是一个学习过程。

y_pre = w*x+b是给出了函数的基本类型:线性函数,事实上后面学习卷积神经网络之后都不需要给出这样的基本函数类型,而是让机器自己发现。

loss = tf.reduce_mean(tf.square(y_pre-y))
opt = tf.train.GradientDescentOptimizer(0.1)
train = opt.minimize(loss)

上面三段代码非常重要,是学习优化的规则,此处使用的是梯度下降优化算法:

loss = (真实值-输出值)^2,loss越小说明梯度越小,则当前机器学习的数值越接近预期值,即我们所给出的y = x*311.3+2.2

最后是要初始化所有提供给神经网络的输入值(变量),然后获取到session,这个session是指机器学习的一个状态,通过他可以获得当前机器学习已经算出的k,b是多少了。根据k,b值来判断是否需要继续学习。当k,b已经为想要的值时可以停止学习了。session.run放在for循环中,训练循环越多则越接近预期值。

原文地址:https://www.cnblogs.com/devilyouwei/p/8644511.html

时间: 2024-10-13 18:59:48

深度学习之TensorFlow安装与初体验的相关文章

TensorFlow【机器学习】:如何正确的掌握Google深度学习框架TensorFlow(第二代分布式机器学习系统)?

本文标签:   机器学习 TensorFlow Google深度学习框架 分布式机器学习 唐源 VGG REST   服务器 自 2015 年底开源到如今更快.更灵活.更方便的 1.0 版本正式发布,由 Google 推出的第二代分布式机器学习系统 TensorFlow一直在为我们带来惊喜,一方面是技术层面持续的迭代演进,从分布式版本.服务框架 TensorFlow Serving.上层封装 TF.Learn 到 Windows 支持.JIT 编译器 XLA.动态计算图框架 Fold 等,以及

深度学习(TensorFlow)环境搭建:(三)Ubuntu16.04+CUDA8.0+cuDNN7+Anaconda4.4+Python3.6+TensorFlow1.3

紧接着上一篇的文章<深度学习(TensorFlow)环境搭建:(二)Ubuntu16.04+1080Ti显卡驱动>,这篇文章,主要讲解如何安装CUDA+CUDNN,不过前提是我们是已经把NVIDIA显卡驱动安装好了 一.安装CUDA CUDA(Compute Unified Device Architecture),是英伟达公司推出的一种基于新的并行编程模型和指令集架构的通用计算架构,它能利用英伟达GPU的并行计算引擎,比CPU更高效的解决许多复杂计算任务,想使用GPU就必须要使用CUDA.

深度学习框架Keras安装

本文主要参考:https://blog.csdn.net/qingzhuochenfu/article/details/51187603 前提:Keras是Python语言中基于原始深度学习框架Tensorflow或Theano的封装框架.如果准备使用Keras首先必须准备安装Tensorflow或Theano,我安装的是TensorFlow CPU版本. 在cmd窗口下输入:pip install keras  即可,如下图, 安装后可测试一下是否安装成功,在命令行中输入python,再输入如

深度学习之TensorFlow:入门原理与进阶实战

深度学习之TensorFlow:入门原理与进阶实战 链接:https://pan.baidu.com/s/1wUos19e7qhm_fA52FV8gQg 提取码:nz8i 目录 · · · · · · 配套学习资源 前言 第1篇 深度学习与TensorFlow基础 第1章 快速了解人工智能与TensorFlow 2 1.1 什么是深度学习 2 1.2 TensorFlow是做什么的 3 1.3 TensorFlow的特点 4 1.4 其他深度学习框架特点及介绍 5 1.5 如何通过本书学好深度学

ASP.NET MVC学习---(五)MVC初体验

经过之前n多的铺垫 我们已经大概了解了这个姓m名vc的家伙了 那么今天我们就来体验一把 怎么体验呢? 就来做一个小例子吧~ mvc增删改查的例子 数据库还是之前我们的老朋友 关系图: 表中的数据已填好 T_Users 将就着用着吧,哈哈 现在要求对T_Users表进行增删改查 开搞~ 回到之前新建的mvc项目 在Controllers文件夹下新建一个名为Home的空控制器 当浏览器请求Home下面的Index方法的时候返回什么? 当然是主页面啦 这里我们的主页面就是显示T_Users数据列表 代

一铭桌面操作系统4.0 SP1安装使用初体验

一铭桌面操作系统4.0 SP1安装使用初体验 近日来,基于之前的勒索病毒事件,考虑到个人信息安全以及工作需要,一直想找一款国产桌面操作系统来进行替代.多年来使用Windows操作系统已经成为习惯,所以在选择国产桌面操作系统时,笔者注重于从平日的操作使用习惯以及界面的视觉效果等方面进行考量.看到这款操作系统的描述是基于用户的真实需求进行完善,并在用户使用习惯.安装操作.系统界面.安全防御等多个方面进行了优化和升级而来,于是决定下载来试用一下,看看是否真如介绍所言. 在一铭云社区(http://bb

牛逼哥TensorFlow资源分享:白话深度学习与TensorFlow

今天,给大家分享一本关于TensorFlow的书籍-白话深度学习与TensorFlow. 最近在看这个深度学习框架,门外汉,为了快速入门,找的都是中文教材,可能准确度译文不如原文精确,但毕竟容易理解,上手快. 买了四本原版书,但有几本最近更新的书籍由于错过了双十一,感觉价格略贵,京东薅羊毛习惯了,一般三折以上的书我都不考虑买了. 所以想办法找到了电子书,也是通过各种途径吧,淘宝,闲鱼,论坛,大部分都是买的,网上下来的免费的好多都没有书签,而且质量不是很好. 在这里免费分享给大家,试了下,不知道为

分享《深度学习之TensorFlow:入门、原理与进阶实战》PDF+源代码

下载:https://pan.baidu.com/s/1zI-pblJ5dEwjGVe-QQP9hQ 更多资料:http://blog.51cto.com/3215120 <深度学习之TensorFlow:入门.原理与进阶实战>,李金洪 著.中文PDF,939页,带书签目录,文字可以复制粘贴.配套源代码. 如图: 原文地址:http://blog.51cto.com/14050756/2315854

分享《白话深度学习与TensorFlow》+PDF+高杨

下载:https://pan.baidu.com/s/150FjIfsNVlPh-Fq-IghgWA更多资料分享:http://blog.51cto.com/14087171 <白话深度学习与TensorFlow>中文版PDF 经典学习资料,带目录和书签,文字可以复制粘贴. 图示如下: 原文地址:http://blog.51cto.com/14087171/2321679