腾讯T4级架构师用21个项目带你吃透379页深度学习TensorFlow实践pdf

news2024/11/16 3:15:19

前言

有人调侃我们说:

  • 程序员不如送外卖。送外卖是搬运食物,自己是搬运代码,都不产出新的东西……
  • 透支体力,又消耗健康,可替代性极强,30岁之后就要面临被优化的危险……
  • 想跳槽,但是更高的平台难进,同级别的平台又是重复……
  • 想利用业余时间学习提升,但是自己能力有限,很难形成知识体系…

这些其实都是初级程序员面临的困境,当你提高自身能力,登上更高的层级之后,无论薪资还是发展都会有很大的提升。

那么问题来了,怎么才能度过初级程序员的瓶颈,进阶成为高薪工程师呢?

我们正处在一个日新月异、飞速变革的时代,层出不穷的新技术每天都在冲击和改变我们的生活。人工智能无疑是其中最受关注、也是影响最深远的技术领域。它为计算机插上了翅膀,演变出许多从前根本无法想象的新技术、新应用。

AlphaGo Zero一台没有任何先验知识的人工智能机器,可以在几天内通过自我博弈成长为世界第一的围棋大师,超越人类几千年积累的经验;风格迁移应用能够自动将用户的照片转变为著名的绘画艺术风格;机器可以在零点几秒内完成翻译,把一种语言译成另一种语言。此外,有关人脸识别、自动驾驶等新技术的应用也都纷纷开始落地。在过去的几年内,人工智能技术不仅在学术上取得了巨大的突破,也开始走向寻常百姓家,真正为人们的生活提供便利。

本文主要为读者介绍这次人工智能浪潮最重要的组成部分一深度学习技术,使用的编程框架是Google公司的TensorFlow。 借助于Google公司巨大的影响力,TensorFlow一-经发布就引起了广泛的关注。

本文的主要特点如下:

●以实践、应用导向。深度学习需要深厚的数理基础,对于初学者来说有一定难度 。本书希望从实践出发,用具体的例子来引导读者学习深度学习技术和TensorFlow编程技巧。我们主要从实用性和趣味性两个方面考量,选择了21个实践项目,其中既有MNIST图像识别入门项目,也有目标检测、人脸识别、时间序列预测实用性项目,还有一些诸如 DeepDream趣味性项目。读者可以在实践中找到乐趣,逐渐进步,让学习深度学习和TensorFlow的过程不再那么痛苦。

●清晰而有深度的介绍。在编写过程中,尽量用简单的语言描述算法的原理,做到清晰而有条理。此外,深度学习是一门]还在快速发展的新技术,限于篇幅,很多内容不能完全展开,在大部分章节的末尾列出了“拓展阅读”材料,有兴趣的读者可以参考进一步学习。

●基于TensorFlow 1.4及以上版本。TensorFlow的发展非常迅速,本书代码全部基于TensorFlow 1.4及以上版本(包括1.4.0、1.4.1和1.5.0),并介绍了TensorFlow的一些新特性,如Time Series模块( 1.3 版本添加)新的MultiRNNCell函数( 1.2版本更改)等。本书的代码会在如下GitHub地址上提供,并会随新的TensorFlow版本的发布而同步更新
:htps:/github.com/hzy46/Deep- Learning-21-Examples。

如何阅读本文?

在阅读本文前,读者应当了解Linux系统的基本操作,并会使用Python进行简单的编程,还需具备基础的机器学习知识。本文的章节安排是依据读者对深度学习的了解循序渐进设立的,建议初学者从前至后阅读。由于深度学习和TensorFlow不易于理解,我建议读者分几遍阅读本文:

●第一遍先简单浏览一下,看一看书中都有哪些实践项目。当对基本的概向念有初步的理解时,就可以尝试配置一下开发环境。

●第二遍,从前至后阅读各章中算法的原理,并运行相应的实践项目。在这个过程中,希望读者能在自己动手的过程中找到学习的乐趣。读者可以对照源代码和书中的内容,深入学习各个模型的细节,此外还可以根据自己的需求对代码进行修改。本文会涉及大量TensorFlow中的函数,由于篇幅限制,不可能将每一个函数都介绍一遍,只介绍了比较重要的函数,读者可以参考TensorFlow的官方文档,查看其他函数的功能说明。

●第三遍,根据需要对照源程序看相关章节。此外,读者还可以参阅章节最后的拓展阅读进一步学习。最后,如果你是一名深度学习和TensorFlow的精通者,也可以根据需要直接跳读到相关章节,查阅你需要的内容。

因为本文内容包含的知识点实在是太多了,所以小编只把部分章节的知识点拿出来粗略的介绍了一下,每个小节里面都有更加细化的内容,大家仔细品读理解其中的真谛!!

目录

主要内容

本文以实践为导向,深入介绍了深度学习技术和TensorFlow框架编程内容。

通过本文,读者可以训练自己的图像识别模型、进行目标检测和人脸识别、完成一个风格迁移应用,还可以使用神经网络生成图像和文本,进行时间序列预测、搭建机器翻译引擎,训练机器玩游戏。

全文共包含21个项目,分为深度卷积网络、RNN网络、深度强化学习三部分,21章的内容。

读者可以在自已动手实践的过程中找到学习的乐趣,了解算法和编程框架的细节,让学习深度学习算法和TensorFlow的过程变得轻松和高效。

本文代码基于TensorFlow 1.4及以上版本,并介绍了TensorFlow中的一些新特性。

本文适合有一定机器学习基础的学生、研究者或从业者阅读,尤其是希望深入研究TensorFlow和深度学习算法的数据工程师,也适合对人工智能、深度学习感兴趣的在校学生,以及希望进入大数据应用的研究者。

第1章MNIST机器学习入门

当我们学习编程语言时,第一课通常会学习一个简单的“Hello World"程序,而MNIST手写字符识别可以算得上是机器学习界的“Hello World”。

MNIST是由Yann LeCun等人建立的一个手写字符数据集。它简单易用,是一个很好的入]范例。本章会以MNIST数据库为例,用TensorFlow读取数据集中的数据,并建立一个简单的图像识别模型,同时介绍TensorFlow 的几个核心概念。

第2章CIFAR-10与lmageNet图像识别

本章的主要任务还是图像识别,使用的数据集是CIFAR-10-- 这是 一个更接近普适物体的彩色图像数据集。主要通过CIFAR-10学习两方面的内容:一是TensorFlow中的数据读取原理,三是深度学习中数据增强的原理。最后还会介绍更加通用且复杂的ImageNet数据集和相应的图像识别模型。

第3章打造自己的图像识别模型

本章关注的重 点是如何使用TensorFlow 在自己的图像数据上训练深度学习模型,主要涉及的方法是对已经预训练好的ImageNet 模型进行微调( Fine-tune )。本章将会从四个方面讲解:数据准备、训练模型、在测试集上验证准确率、导出模型并对单张图片分类。

第4章Deep Dream模型

Deep Dream是Google公司在2015年公布的一项有趣的技术。在训练好的卷积神经网络中,只需要设定几个参数,就可以通过这项技术生成一张图像。生成出的图像不仅令人印象深刻,而且还能帮助我们理解卷积神经网络背后的运行机制。本章介绍Deep Dream的基本原理,并使用TensorFlow实现Deep Dream生成模型。

第5章深度学习中的目标检测

在前面的章节中,关注的大多数是图像识别问题:输入一张图像, 输出该图像对应的类别。本章将讨论目标检测问题。目标检测的输入同样是一张图像,但输出不单单是图像的类别,而是该图像中所含的所有目标物体以及它们的位置。通常使用矩形框来标识物体的位置,如图5-1所示。深度学习已经被广泛应用在目标检测问题.上,在性能上也远远超过了传统方法。本章会先介绍深度学习中的几个经典的目标检测方法,再以Google公司开源的TensorFlow Object Detection API为例,介绍如何在TensorFlow中进行目标检测。

第6章人脸检测和人脸识别

人脸检测( Face Detection )和人脸识别技术是深度学习的重要应用之一。

本章首先会介绍MTCNN算法的原理,它是基于卷积神经网络的一种高精度的实时人脸检测和对齐技术。接着,还会介绍如何利用深度卷积网络提取人脸特征,以及如何利用提取的特征进行人脸识别。最后会介绍如何在TensorFlow中实践上述算法。

第7章图像风格迁移

所谓图像风格迁移,是指利用算法学习著名画作的风格,然后再把这种风格应用到另外- -张图片上的技术。著名的图像处理应用Prisma 是利用风格迁移技术,将普通用户的照片自动变换为具有艺术家的风格的图片。本章会介绍这项技术背后的原理,此外,还会使用TensorFlow实现一个快速风格迁移的应用。

第8章GAN和DCGAN入门

GAN的全称为Generative Adversarial Networks,意为对抗生成网络。原始的GAN是一种无监督学习方法,它巧妙地利用“ 对抗”的思想来学习生成式模型,一旦训练完成后可以生成全新的数据样本。DCGAN将GAN的概念扩展到卷积神经网络中,可以生成质量较高的图片样本。GAN和DCGAN在各个领域都有广泛的应用,本章会先向读者介绍它们的原理,再介绍如何在TensorFlow中使用DCGAN生成图像,关于GAN和DCGAN的更多项目会在接下来的章节中进行介绍。

第9章pix2pix模型与自动上色技术

前一章介绍了GAN的基本原理以及如何使用GAN来生成样本,还有用于生成图像样本的一种特殊的GAN结构一- -DCGAN。本章 会介绍cGAN,与原始GAN使用随机噪声生成样本不同,cGAN可以根据指定标签生成样本。接着会介绍pix2pix模型,它可以看作是cGAN的一种特殊形式。最后会做一个实验:在TensorFlow中使用pix2pix 模型对灰度图像自动上色。

第10章分辨率:如何让图像变得更清晰

所谓超分辨率,就是指用某种方法提高图像的分辨率,从而让图像变得更加清晰。本章会使用上一章的pix2pix项目代码实现简单的4倍超分辨率重建,此外还会深入讲解pix2pix的代码实现。

第11章CycleGAN与非配对图像转换

前面已经介绍过了cGAN和对应的pix2pix模型,它们能够解决一类“图像翻译”问题。但是pix2pix模型要求训练样本必须是“严格成对”的,这种样本往往比较难以获得。本章会介绍CycleGAN, CycleGAN不必使用成对样本也可以进行“图像翻译”。还会介绍TensorFlow中CycleGAN的实现。

第12章RNN基本结构与Char RNN文本生成

从本章起,将开始学习循环神经网络( RNN)以及相关的项目。这一-章首先会向大家介绍RNN经典的结构,以及它的几个变体。接着将在TensorFlow中使用经典的RNN结构实现一个有趣的项目: Char RNN。CharRNN可以对文本的字符级概率进行建模,从而生成各种类型的文本。

第13章序列分类问题详解

在上一章中,主要介绍了RNN的几种结构,并且介绍了如何利用CharRNN进行文本生成。Char RNN对应着N VSN的RNN结构。在本章中,将专注于另一种RNN结构: N VS 1。这种结构的输入为序列,输出为类别,因此可以解决序列分类问题。常见的序列分类问题有文本分类、时间序列分类、音频分类等等。本章会使用TensorFlow制作- -个最简单的两类序列分类器。

第14章词的向量表示: word2vec与词嵌入

本章将暂时放下RNN的学习,聊- - 聊如何在TensorFlow中实现词嵌入。

所谓词嵌入,通俗来讲,是指将-一个词语(word)转换为一个向量(vector)表示,所以词嵌入有时又被叫作word2vec”。本章会先简单介绍为什么要把词转换为向量,接着会介绍两种词嵌入的方法CBOW和Skip-Gram,最后会以Skip-Gram为例,详细介绍怎么在TensorFlow中实现它。

第15章在TensorFlow中进行时间序列预测

常常会碰到各种各样时间序列预测问题,如商场人流量的预测、商品价格的预测、股价的预测,等等。TensorFlow 1.3版本新引入了一个TensorFlowTime Series 库(以下简称为TFTS),它可以帮助在TensorFlow中快速搭建高性能的时间序列预测系统,并提供包括AR、LSTM在内的多个模型。本章会通过实例的形式,详细地介绍TFTS库的使用方法。

第16章神经网络机器翻译技术

机器翻译是指用机器将一种语言自动翻译成另外一种语言的技术。传统的机器翻译一般采取基于规则或基于词组统计规律的方法。2013年以来,随着深度学习技术的发展,神经网络机器翻译( Neural Machine Translationn)技术开始兴起。与传统方法不同的是,神经网络机器翻译首先将源语言的句子向量化,转化成计算机可以“理解”的形式,再生成另一种语言的译文。

这种方法和人类的做法类似,可以产生更贴合原意也更加符合语法规范的翻译。目前,各大商业公司都开始使用神经网络机器翻译代替原来的机器翻译系统。

本章会首先介绍神经网络机器翻译技术的原理,再介绍如何使用TensorFlow NMT训练一个中英翻译引擎。

第17章看图说话:将图像转换为文字

所谓Image Caption,是指从图片中自动生成一段描述性文字 ,有点类似于小时候做过的“看图说话”。对于人来说,完成Image Caption是简单而自然的一件事,但对于机器来说,这项任务却充满了挑战性。原因在于,要完成Image Caption,机器不仅要能检测出图像中的物体,而且要理解物体之间的相互关系,最后还要用合理的语言表达出来,这里面每一个步 骤都颇具难度。

本章将首先介绍Image Caption 的几篇经典的论文,接着会介绍Google公司官方的TensorFlow实现。

第18章强化学习入门之Q

从本章开始,将开始学习强化学习( Reinforcement Learning )以及相关的实践案例。强化学习是机器学习的一个重要分支,它主要研究如何在环境中做出合适的动作以最大化某些奖励。这一章将会用一个简单的例子介绍强化学习的基本概念,以及一个基础算法一-Q Learning。

第19章强化学习入门之SARSA算法

SARSA(
State-Action-Reward-State-Action )算法同样是一种基本的强化学习的算法。它同Q Learning一样,都是在智能体行动过程中迭代式地学习Q函数,但是SARSA算法采取了和Q Learning不同的迭代更新策略。本章将通过修改上一章的程序来实现SARSA算法。

第20章深度强化学习: Deep Q Learning

在前面的章节中,学习了强化学习的两个基础算法: Q Learning 和SARSA。

本章将介绍Q Learning的升级版: Deep Q Network,简称DQN。DQN算法采用深度神经网络来表示2函数,通常也被称为Deep Q Learming,即“深度Q Learning算法”。在这一章中,会先介绍DQN算法的原理,再来介绍DQN算法的TensorFlow实现。

第21章策略梯度(Policy Gradient) 算法

不管是Q Learning算法、SARSA算法,还是Deep Q Learning,它们本质上都是学习一个价值函数Q(state, action)。 在环境中决策时,需要首先确定当前的状态,然后根据Q(state, action)选择一 个价值比较高的动作执行 。

本章要讲的策略梯度( Policy Gradient )方法和以上做法不同,它不再去学习价值函数Q,而是直接通过模型(如神经网络)输出需要采取的动作。在本章中,会先介绍策略梯度算法的原理,然后介绍如何使用TensorFlow 实现它。

总结

本文以TensorFlow为工具,从基础的MNIST手写体识别开始,介绍基础的卷积神经网络、循环神经网络,包括正处于前沿的对抗生成网络、深度强化学习等课题。

本文中所有内容由21个可以动手实验的项目组织起来,并在其中穿插TensorFlow的教学内容,让读者可以在实践中轻松地入门深度学习,掌握TensorFlow的使用方法,并积累丰富的深度学习实战经验!!!

通过本文,可以学到:

  • 在动手实践中快速进入深度学习领域。
  • 通过实验快速掌握TensorFlow的操作方法。
  • 掌握卷积神经网络、循环神经网络、对抗生成网络和深度强化学习等知识。
  • 积累丰富的深度学习实战项目,如图像分类、目标检测、人脸识别、图像生成、文本生成、序列分类、时间序列预测等。
  • 学习TensorFlow的一些新特性,如Time Series 模块、RNNCell等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/32442.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用XShell、XFTP连接虚拟机或者服务器教程

文章目录前期准备安装建立连接XFTP部分前期准备 官方网站下载 需要购买,但是我记得我好像是通过邮件发送过来的,应该是那个30天试用版,要是不会操作的话可以评论私我发你网盘。 安装 打开安装包(xshell / xftp ,两个软件的安装步…

SpringBoot SpringBoot 开发实用篇 6 监控 6.2 SpringBoot Admin

SpringBoot 【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇6 监控6.2 SpringBoot Admin6.2.1 可视化监控平台6.2.2 SpringBoot A…

论文阅读-Joint Audio-Visual Deepfake Detection(音视频Deepfake检测)

一、论文信息 论文名称:Joint Audio-Visual Deepfake Detection 会议:ICCV2021 作者团队: 二、动机与创新 动机 Visual deepfake上有许多检测方法和数据集,而对audio deepfake以及visual-audio两种模式之间的deepfake方法较少…

mybatis配置文件

名字&#xff1a; mybatis-config.xml 作用&#xff1a; 配置自己的数据库地址、名字、密码以及mysql驱动 ... <!--配置--> <configuration><!--属性--><properties></properties> <!--全局参数设置--><settings></settings> …

力扣 73. 矩阵置零 C语言实现

题目描述&#xff1a; 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 题目链接 解题思路&#xff1a; 由于题目中提示了哈希表&#xff0c;所以本人想到的方法是建立一个哈希表分别用key和value…

用HTML+CSS仿网易云音乐网站(6个页面)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

绘制路径

QPainterPath&#xff08;绘制器&#xff09; QPainterPath类提供一个容器&#xff0c;可以用来创建图形并且重复使用。绘制器路径是由许多图形构建基块&#xff08;如矩形、椭圆形、直线和曲线&#xff09;组成的对象。构建基块可以连接在封闭的子路径中&#xff0c;例如作为矩…

ALU——调用加法乘法模块

只调用加法模块的仿真图&#xff1a; &#xff08;注&#xff1a;alu_control 为十六进制 001高位加载 src2的低16位加载到高16位上 002算数右移 src1算数右移 &#xff08;高位补1&#xff09; 004逻辑右移 src1逻辑右移 &#xff08;逻辑右移直接补0&#xff09; 008逻辑左移…

MagicPods(在Windows电脑上可以实现airpods2弹窗,查看单个耳机电量、充电仓电量)

1.MagicPods的安装方式 Windows电脑下打开Microsoft Store,进入后搜索Magicpods。然后就可以点击下载。&#xff08;软件的费用是12元&#xff0c;可以先免费试用&#xff09; 有可能会出现&#xff1a;下载任何微软商店应用程序都显示错误代码: 0x80240438 解决方法&#xf…

基于HTML+CSS+JS制作商城(web前端网页制作课作业)---手机主题 7页

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 在线商城购物 | 水果商城 | 商城系统建设 | 多平台移动商城 | H5微商城购物商城项目 | HTML期末大学生网页设计作业 HTML&#xff1a;结构 CSS&#…

ER图到关系模型的转换和练习SQL语言

目录 一、实验要求 二、作业1解答 1&#xff0e;ER图 2&#xff0e;关系模型&#xff1a; 三、作业2解答 1. 建表并插入数据 2. 使用查询语句查询相关信息 查询计算机系男生的信息&#xff1a; 查询鹿晗的年龄 查询姓名第二个字为“丽”的同学的信息 按照性别列出男…

跨境人,是继续坚守还是求新变新?(Starday)

与以往相比&#xff0c;跨境电商行业圈有许多让卖家难以想象的负面新闻&#xff0c;从亚马逊封号潮、海运价格暴涨、服务商跑路、跨境电商公司倒闭等新闻常有耳闻&#xff0c;今年黑五等销售季的单量也让人不忍直视&#xff0c;许多跨境人战战兢兢&#xff0c;心中非常焦虑。如…

ANSYS mechanical如何在Workbench环境中使用高性能计算

ANSYS mechanical属于隐式结构有限元分析求解器&#xff0c;一般完成一个有限元分析过程需要前处理、求解和后处理三个步骤。前处理一般在图形工作站上完成&#xff0c;有限元求解可在工作站、集群及SMP 服务器上进行。 对于中小型问题&#xff08;例如1000 万节点以内的ANSYS…

基于Webrtc的视频通话录制功能-Android实现

基于Webrtc的视频通话录制功能-Android实现 webrtc本身并不支持视频通话的录制。 webrtc的sdk只是暴露了视频数据给开发者&#xff0c;而音频数据并没有向外暴露。 因此如果要进行视频通话的录制&#xff0c;需要修改webrtc的sdk&#xff0c;将音频数据暴露出来。 webrtc的下载…

【OpenCV-Python】教程:3-9 轮廓(4)更多函数

OpenCV Python 轮廓 【目标】 凸性缺陷查找点与多边形的关系不同形状的匹配 【代码】 左图中红色点为凸性检测的缺陷点&#xff0c;即凹点 右图为了验证点与多边形关系而做的图&#xff0c;也是官网要求做的练习。 import cv2 import numpy as np img cv2.imread(star.png…

契约锁电子签助力拍卖业务网上签约,保全证据、不可抵赖,成交快

近年&#xff0c;二手车、房产、股权、数字藏品以及法律诉讼资产的拍卖&#xff0c;逐步从线下向线上转型。电子签章技术的应用&#xff0c;解决了委托拍卖合同、竞买合同以及成交确认书等文件线上签署难题&#xff0c;帮助拍卖机构建立全程数字化的“网上拍卖”渠道&#xff0…

Java本地搭建宝塔部署实战springboot智慧物业管理源码

大家好啊&#xff0c;我是测评君&#xff0c;欢迎来到web测评。 本期给大家带来一套基于若依开发的springboot智慧物业管理系统的源码&#xff0c;系统是前后端分离的架构&#xff0c;前端使用Vue2&#xff0c;后端使用SpringBoot2。 技术架构 技术框架&#xff1a;SpringBoot…

5G工业互联网的“下半场”该拼什么?

据工信部11月21日最新发布的《2022年1-10月份通信业经济运行情况》显示&#xff0c;截止10月末&#xff0c;国内5G基站总数已达到225万个&#xff0c;占全球5G基站数比例超70%。截止今年8月末&#xff0c;国内已提前完成全年建成200万个5G基站的目标。中国在5G网络建设、终端普…

Echarts-实现3D柱状图显示,并单个柱子变色

如下&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>模拟3D柱状图渐变色柱子</title><scripttype"text/javascript"src"https://cdn.jsdelivr.net/npm/echarts5/dist/echarts.min.…

java每一练(3)

java每日一练(3) 单选部分 &#xff1a; 1.以下代码运行输出的是 public class Person{private String name "Person";int age0; }class Child extends Person{public String grade;public static void main(String[] args){Person p new Child();System.out.pri…