提交 c839af51 编写于 作者: W wizardforcel

2021-01-02 17:54:40

上级 fff248a0
# 前言
深度学习架构由代表高级抽象的多级非线性操作组成。 这使您可以从数据中学习有用的要素表示。 *使用 Python 的动手深度学习架构*为您简要介绍了用于深度和浅层架构的基本学习算法。 本书包含构建高效人工智能系统的实际实现和思想,将帮助您学习神经网络在构建深度架构中如何发挥重要作用。
深度学习架构由代表高级抽象的多级非线性操作组成。 这使您可以从数据中学习有用的要素表示。 《使用 Python 的动手深度学习架构》为您简要介绍了用于深度和浅层架构的基本学习算法。 本书包含构建高效人工智能系统的实际实现和思想,将帮助您学习神经网络在构建深度架构中如何发挥重要作用。
您将通过易于理解的代码和图表,了解各种深度学习架构,例如 AlexNet,VGG Net,GoogleNet 等。 除此之外,这本书还将指导您构建和训练各种深度架构,例如 Boltzmann 机制,自编码器,**卷积神经网络****CNN**),**递归 神经网络****RNN**),**自然语言处理****NLP**),**生成对抗网络****GAN**)和其他内容,以及实际的实现方式。 本书介绍了用于深层和浅层体系结构的基本学习算法。
......@@ -12,21 +12,21 @@
# 本书涵盖的内容
“第 1 章”,*深度学习入门*涵盖了机器和人工智能中的智能进化,以及最终的深度学习。 然后,我们将研究深度学习的一些应用程序,并建立用于通过深度学习模型进行编码的环境。 完成本章后,您将学习以下内容。
“第 1 章”,“深度学习入门”涵盖了机器和人工智能中的智能进化,以及最终的深度学习。 然后,我们将研究深度学习的一些应用程序,并建立用于通过深度学习模型进行编码的环境。 完成本章后,您将学习以下内容。
“第 2 章”,*深度前馈网络*涵盖了深度前馈网络及其架构的发展历史。 我们还将演示如何提供和预处理数据以训练深度学习网络。
“第 2 章”,“深度前馈网络”涵盖了深度前馈网络及其架构的发展历史。 我们还将演示如何提供和预处理数据以训练深度学习网络。
“第 3 章”,*受限玻尔兹曼机器和自编码器*解释了幕后的算法,称为受限玻尔兹曼机器(RBM)及其演化路径。 然后,我们将更深入地研究其背后的逻辑,并在 TensorFlow 中实现 RBM。 我们还将应用它们来构建电影推荐器。 然后,我们将学习自编码器,并简要介绍它们的发展路径。 我们还将说明各种自编码器,按其体系结构或形式化形式进行分类。
“第 3 章”,“受限玻尔兹曼机器和自编码器”解释了幕后的算法,称为受限玻尔兹曼机器(RBM)及其演化路径。 然后,我们将更深入地研究其背后的逻辑,并在 TensorFlow 中实现 RBM。 我们还将应用它们来构建电影推荐器。 然后,我们将学习自编码器,并简要介绍它们的发展路径。 我们还将说明各种自编码器,按其体系结构或形式化形式进行分类。
“第 4 章”, *CNN 架构*涵盖了一类重要的图像深度学习网络,称为**卷积神经网络****CNN**)。 我们还将讨论 CNN 在深度前馈网络上的好处。 然后,我们将详细了解一些著名的图像分类 CNN,然后在 CIFAR-10 数据集上构建第一个 CNN 图像分类器。 然后,我们将继续使用 CNN 和 TensorFlow 检测模型 zoo 进行对象检测。
“第 4 章”,“CNN 架构”涵盖了一类重要的图像深度学习网络,称为**卷积神经网络****CNN**)。 我们还将讨论 CNN 在深度前馈网络上的好处。 然后,我们将详细了解一些著名的图像分类 CNN,然后在 CIFAR-10 数据集上构建第一个 CNN 图像分类器。 然后,我们将继续使用 CNN 和 TensorFlow 检测模型 zoo 进行对象检测。
“第 5 章”,*移动神经网络和 CNN* 讨论了用于在实时应用中进行 CNN 工作的移动神经网络的需求。 我们还将讨论 Google 推出的两种基准 MobileNet 架构-MobileNet 和 MobileNetV2。 稍后,我们将讨论 MobileNet 与对象检测网络(例如 SSD)的成功组合,以在移动设备上实现对象检测。
“第 5 章”,“移动神经网络和 CNN”讨论了用于在实时应用中进行 CNN 工作的移动神经网络的需求。 我们还将讨论 Google 推出的两种基准 MobileNet 架构-MobileNet 和 MobileNetV2。 稍后,我们将讨论 MobileNet 与对象检测网络(例如 SSD)的成功组合,以在移动设备上实现对象检测。
“第 6 章”,*递归神经网络*解释了最重要的深度学习模型之一,递归神经网络(RNN),其体系结构以及 RNN 的进化路径。 稍后,我们将讨论按递归层分类的各种架构,包括香草 RNN,LSTM,GRU 和双向 RNN,并应用香草架构来编写我们自己的*战争与和平*毫无意义)。 我们还将介绍双向架构,该架构允许模型保留序列的过去和将来上下文中的信息。
“第 6 章”,“循环神经网络”解释了最重要的深度学习模型之一,递归神经网络(RNN),其体系结构以及 RNN 的进化路径。 稍后,我们将讨论按递归层分类的各种架构,包括香草 RNN,LSTM,GRU 和双向 RNN,并应用香草架构来编写我们自己的《战争与和平》(毫无意义)。 我们还将介绍双向架构,该架构允许模型保留序列的过去和将来上下文中的信息。
“第 7 章”,*生成对抗网络*解释了最有趣的深度学习模型之一,生成对抗网络(GANs)及其演化路径。 我们还将以图像生成为例来说明各种 GAN 架构。 我们还将探索四种 GAN 架构,包括香草 GAN,深度卷积 GAN,条件 GAN 和信息最大化 GAN。
“第 7 章”,“生成对抗网络”解释了最有趣的深度学习模型之一,生成对抗网络(GANs)及其演化路径。 我们还将以图像生成为例来说明各种 GAN 架构。 我们还将探索四种 GAN 架构,包括香草 GAN,深度卷积 GAN,条件 GAN 和信息最大化 GAN。
“第 8 章”,*深度学习的新趋势*讨论了一些我们已经发现今年有影响力并且在未来会更加突出的深度学习思想。 我们还将学习贝叶斯深度学习结合了贝叶斯学习和深度学习的优点。
“第 8 章”,“深度学习的新趋势”讨论了一些我们已经发现今年有影响力并且在未来会更加突出的深度学习思想。 我们还将学习贝叶斯深度学习结合了贝叶斯学习和深度学习的优点。
# 充分利用这本书
......
......@@ -4,7 +4,7 @@
-山姆·奥特曼
欢迎使用 Python *的*动手深度学习架构!* 如果您完全不熟悉深度学习,则可以从这本书开始您的旅程。 对于有想法的读者,我们几乎涵盖了深度学习的各个方面。 因此,您肯定会从本书中学到更多有关深度学习的知识。*
欢迎使用《Python 深度学习架构实践指南》!如果您完全不熟悉深度学习,则可以从这本书开始您的旅程。 对于有想法的读者,我们几乎涵盖了深度学习的各个方面。 因此,您肯定会从本书中学到更多有关深度学习的知识。*
这本书是按累积方式布置的。 也就是说,它从基础开始,一遍又一遍地构建,直至达到高级。 在本章中,我们将讨论人类如何开始在机器中创建智能,以及人工智能如何逐渐演变为机器学习以及最终的深度学习。 然后,我们看到了深度学习的一些不错的应用程序。 回到基本原理,我们将学习人工神经元的工作原理,并最终为通过深度学习模型编码的方式建立环境。 完成本章后,您将了解以下内容。
......@@ -28,7 +28,7 @@
# 监督学习
在监督学习中,数据集既包含输入数据点又包含预期输出,通常称为标签。 该算法的工作是学习从输入到预期输出的映射函数。 该函数可以是线性函数,例如 *y = mx + c* 或非线性函数,例如 *y = ax3 + bx2 + cx + d* ,其中`y`为 输入目标输出,`x`。 所有监督学习任务都可以归类为回归和分类。
在监督学习中,数据集既包含输入数据点又包含预期输出,通常称为标签。 该算法的工作是学习从输入到预期输出的映射函数。 该函数可以是线性函数,例如`y = mx + c`或非线性函数,例如`y = ax3 + bx2 + cx + d`,其中`y`为 输入目标输出,`x`。 所有监督学习任务都可以归类为回归和分类。
# 回归
......@@ -56,7 +56,7 @@
# 自动驾驶汽车
这可能是深度学习中最酷,最有前途的应用。 自动驾驶汽车上装有许多摄像头。 输出的视频流被馈入深度学习网络,该网络可以识别并分割汽车周围存在的不同对象。 NVIDIA 推出了一种用于无人驾驶汽车的*端到端学习*,这是一个卷积神经网络,可以从摄像机中获取输入图像,并以转向角或加速度的形式预测应采取的动作。 为了训练网络,当人行驶时,将存储转向角,油门和摄像机视图,并记录该人针对周围发生的变化所采取的动作。 然后通过反向传播(在“第 2 章”,*深度前馈网络*中详细讨论了反向传播)来更新网络参数,这些误差来自人为输入和网络的预测。
这可能是深度学习中最酷,最有前途的应用。 自动驾驶汽车上装有许多摄像头。 输出的视频流被馈入深度学习网络,该网络可以识别并分割汽车周围存在的不同对象。 NVIDIA 推出了一种用于无人驾驶汽车的*端到端学习*,这是一个卷积神经网络,可以从摄像机中获取输入图像,并以转向角或加速度的形式预测应采取的动作。 为了训练网络,当人行驶时,将存储转向角,油门和摄像机视图,并记录该人针对周围发生的变化所采取的动作。 然后通过反向传播(在“第 2 章”,“深度前馈网络”中详细讨论了反向传播)来更新网络参数,这些误差来自人为输入和网络的预测。
如果您想了解有关 NVIDIA 的*无人驾驶汽车学习*的更多信息,[可以参考以下 NVIDIA 的论文](https://arxiv.org/abs/1604.07316)
......@@ -66,7 +66,7 @@
GAN 有趣的应用之一是图像到图像的翻译。 它基于条件 GAN(我们将在第 7 章中详细讨论 GAN)。 给定一对具有某种关系的图像(例如 I1 和 I2),条件 GAN 将学习如何将 I1 转换为 I2。 创建了一个名为 **pix2pix** 的专用软件来演示此概念的应用。 它可用于为黑白图像填充颜色,从卫星图像创建地图,仅通过草图生成对象图像,而不能!
以下是 Phillip Isola 发表的`i`*图像到图像翻译*的实际论文的链接,以及来自 pix2pix 的示例图像,[描述了图像到图像翻译的各种应用](https://arxiv.org/abs/1611.07004)
以下是 Phillip Isola 发表的《图像到图像翻译》的实际论文的链接,以及来自 pix2pix 的示例图像,[描述了图像到图像翻译的各种应用](https://arxiv.org/abs/1611.07004)
![](img/1ff8273d-4497-4109-98d9-c4987801332c.png)
......@@ -78,7 +78,7 @@ GAN 有趣的应用之一是图像到图像的翻译。 它基于条件 GAN(
# 编解码结构
神经机器翻译模型是**递归神经网络****RNN**),以编码器/解码器的方式排列。 编码器网络通过 RNN 接收可变长度的输入序列,并将这些序列编码为固定大小的向量。 解码器从此编码向量开始,并开始逐字生成翻译,直到它预测句子的*结尾。 整个架构通过输入语句和正确的输出翻译进行了端到端的培训。 这些系统的主要优点(除了具有处理可变输入大小的功能之外)是,它们学习句子的上下文并据此进行预测,而不是进行逐词翻译。 在以下屏幕截图中,可以最好地看到神经机器翻译在 Google 翻译上的作用:*
神经机器翻译模型是**递归神经网络****RNN**),以编码器/解码器的方式排列。 编码器网络通过 RNN 接收可变长度的输入序列,并将这些序列编码为固定大小的向量。 解码器从此编码向量开始,并开始逐字生成翻译,直到它预测句子的结尾。 整个架构通过输入语句和正确的输出翻译进行了端到端的培训。 这些系统的主要优点(除了具有处理可变输入大小的功能之外)是,它们学习句子的上下文并据此进行预测,而不是进行逐词翻译。 在以下屏幕截图中,可以最好地看到神经机器翻译在 Google 翻译上的作用:
![](img/13f8d5f2-cc43-4d5f-94e2-19d200c8ace5.png)
......@@ -118,7 +118,7 @@ ANN 由两个组件构建:节点和权重。 节点扮演神经元的角色,
![](img/1f5224a5-58e7-4b78-a07c-2db3e3dab03e.png) ![](img/9bdc844e-2c5f-4fcf-a8b2-0ae365befe92.png)
那么,我们需要对方程式进行哪些更改以适合这些多个输入? 简单地总结一下! 这会将基本公式 *a = w.x + b* 更改为以下公式:
那么,我们需要对方程式进行哪些更改以适合这些多个输入? 简单地总结一下! 这会将基本公式`a = w.x + b`更改为以下公式:
![](img/b5209007-54ef-4798-acc5-b71bd9942351.png)
......@@ -146,7 +146,7 @@ ANN 由两个组件构建:节点和权重。 节点扮演神经元的角色,
# 线性激活
该激活与输入成比例。 它仅用于按一定常数`c`缩放输出。 以下是线性激活的输出 *f(x)*与输入`x`的关系图:
该激活与输入成比例。 它仅用于按一定常数`c`缩放输出。 以下是线性激活的输出`f(x)`与输入`x`的关系图:
![](img/80acf8f6-3f18-4281-aa6a-12ea8273b0e4.png)
......
......@@ -13,7 +13,7 @@
# 通往 DFN 的进化之路
沃伦·麦卡洛克(Warren McCulloch)和沃尔特·皮茨(Walter Pitts)最早在 1943 年创建了人工神经网络模型。他们基于**阈值逻辑**建立了该模型。 通过对输入求和来计算阈值,根据阈值,输出为二进制,零或一。 1958 年,Rosenblatt 创建了另一个神经元模型,称为**感知器**。 Perceptron 是人工神经元的最简单模型,可以将输入分为两类(我们在“第 1 章”,*深度学习入门*中讨论了该神经元)。 亨利·凯利(Henry J.Kelley)大约在 1960 年代初提出了使用链规则通过反向传播错误来训练神经网络的概念。 然而,反向传播作为一种算法是非结构化的,并且感知器模型无法解决那个著名的 XOR 问题。 1986 年,Geoff Hinton,David Rumelhart 和 Ronald Williams 证明了具有隐藏层的神经网络可以通过反向传播学习非线性函数。 此外,还强调了神经网络能够通过通用逼近定理学习任何函数。 但是,神经网络无法扩展以解决较大的问题,到 90 年代,其他机器学习算法(例如**支持向量机****SVM**))占据了空间。 在 2006 年左右,Hinton 再次提出了在彼此之间添加层并为新层训练参数的想法。 使用该策略对更深层的网络进行了训练,这些网络被称为**深度前馈网络**。 从这里开始,神经网络有了一个新名称-深度学习!
沃伦·麦卡洛克(Warren McCulloch)和沃尔特·皮茨(Walter Pitts)最早在 1943 年创建了人工神经网络模型。他们基于**阈值逻辑**建立了该模型。 通过对输入求和来计算阈值,根据阈值,输出为二进制,零或一。 1958 年,Rosenblatt 创建了另一个神经元模型,称为**感知器**。 Perceptron 是人工神经元的最简单模型,可以将输入分为两类(我们在“第 1 章”,“深度学习入门”中讨论了该神经元)。 亨利·凯利(Henry J.Kelley)大约在 1960 年代初提出了使用链规则通过反向传播错误来训练神经网络的概念。 然而,反向传播作为一种算法是非结构化的,并且感知器模型无法解决那个著名的 XOR 问题。 1986 年,Geoff Hinton,David Rumelhart 和 Ronald Williams 证明了具有隐藏层的神经网络可以通过反向传播学习非线性函数。 此外,还强调了神经网络能够通过通用逼近定理学习任何函数。 但是,神经网络无法扩展以解决较大的问题,到 90 年代,其他机器学习算法(例如**支持向量机****SVM**))占据了空间。 在 2006 年左右,Hinton 再次提出了在彼此之间添加层并为新层训练参数的想法。 使用该策略对更深层的网络进行了训练,这些网络被称为**深度前馈网络**。 从这里开始,神经网络有了一个新名称-深度学习!
接下来,我们将讨论 DFN 的体系结构设计。 我们将了解如何构建,训练分层结构,以及*深**前馈*这两个术语的重要性。
......
......@@ -15,7 +15,7 @@
# 深度前馈网络存在问题
在“第 2 章”,*深度前馈网络*中,我们学习了使用深度前馈网络识别(分类)时尚商品的图像。 每个图像的大小为 28 x 28,我们将一个神经元连接到每个像素。 这样,我们在第一层本身就有 28 x 28 = 784 个神经元。 但是在现实世界中,图像几乎没有这么小。 让我们考虑一个大小为 500 x 500 的中型图像。因此,现在,在第一层中,我们将需要 250,000 个神经元。 对于这样大小的图像,第一层中有大量的神经元。 因此,网络对于该任务而言在计算上变得过于昂贵。 那么,我们如何解决这个问题呢? 同样,生物学的灵感来了! 在下一节中,我们将详细介绍 CNN 的发展。
在“第 2 章”,“深度前馈网络”中,我们学习了使用深度前馈网络识别(分类)时尚商品的图像。 每个图像的大小为 28 x 28,我们将一个神经元连接到每个像素。 这样,我们在第一层本身就有 28 x 28 = 784 个神经元。 但是在现实世界中,图像几乎没有这么小。 让我们考虑一个大小为 500 x 500 的中型图像。因此,现在,在第一层中,我们将需要 250,000 个神经元。 对于这样大小的图像,第一层中有大量的神经元。 因此,网络对于该任务而言在计算上变得过于昂贵。 那么,我们如何解决这个问题呢? 同样,生物学的灵感来了! 在下一节中,我们将详细介绍 CNN 的发展。
# 到 CNN 的演进之路
......@@ -277,7 +277,7 @@ dataObj.visualise_data([100, 4000, 2, 8000])
![](img/069ef92a-0fec-4796-b1f3-178201d59131.png)
接下来,我们将标签转换为单一编码形式。 我们已经在“第 2 章”,*深度前馈网络*中讨论了一种热编码。 如果您不记得它,可以返回参考“第 2 章”,*深度前馈网络*下的一键编码。 CIFAR-10 的类数为 10,并且类属性`classNum`的默认值为`10`。 以下函数将标签转换为一键编码:
接下来,我们将标签转换为单一编码形式。 我们已经在“第 2 章”,“深度前馈网络”中讨论了一种热编码。 如果您不记得它,可以返回参考“第 2 章”,“深度前馈网络”下的一键编码。 CIFAR-10 的类数为 10,并且类属性`classNum`的默认值为`10`。 以下函数将标签转换为一键编码:
```py
def one_hot_encoder(self):
......
......@@ -313,7 +313,7 @@ MobileNetV2 不仅仅是分类。 该体系结构的作者提出了将对象检
# 固态硬盘 MobileNetV2
MobileNetV2 的制造商还使移动设备的实时对象检测成为可能。 他们介绍了 SSD 对象检测器和 MobileNetV2(称为 **SSDLite)的组合。** 请记住,在“第 4 章”, *CNN 架构*中,我们将`ssd_mobilenetv2`用于对象检测。 与 SSDLite 相同。 选择 SSD 的原因很简单。 SSD 的构建独立于基础网络,因此卷积被深度可分离卷积替代。 SSDLite 的第一层连接到 MobileNetV2 的第 15 层的扩展。 用深度可分离卷积替换标准卷积可以显着减少网络进行对象检测所需的参数数量。
MobileNetV2 的制造商还使移动设备的实时对象检测成为可能。 他们介绍了 SSD 对象检测器和 MobileNetV2(称为 **SSDLite)的组合。** 请记住,在“第 4 章”,“CNN 架构”中,我们将`ssd_mobilenetv2`用于对象检测。 与 SSDLite 相同。 选择 SSD 的原因很简单。 SSD 的构建独立于基础网络,因此卷积被深度可分离卷积替代。 SSDLite 的第一层连接到 MobileNetV2 的第 15 层的扩展。 用深度可分离卷积替换标准卷积可以显着减少网络进行对象检测所需的参数数量。
下表显示了原始 SSD 网络和 SSDLite 所需的参数数量和乘法运算的比较:
......
......@@ -35,7 +35,7 @@ GAN 可能是深度神经网络最有趣的类型之一。 自从 Goodfellow 等
# 生成模型
机器学习中有两种主要类型的模型,即**生成模型****判别模型**。 顾名思义,区分模型试图在两个(或多个)类之间区分数据。 例如,我们在“第 4 章” *,CNN 架构*中讨论过的 CNN 模型,学会告诉我们一个图像是猫还是狗,给定其中一个图像, 以及 “第 6 章”,*递归神经网络*中的 RNN 模型经过训练,可以输出给定段落的正面或负面情绪。 判别模型着重于根据数据的特征预测数据类别。 相反,生成模型不尝试将要素映射到类,而是在给定特定类的情况下生成要素。 例如,训练**高斯混合模型****GMM**)以生成适合训练集分布的新数据。 生成模型对给定单个类的特征分布进行建模。 也就是说,可以使用生成模型对数据进行分类,例如 Naive Bayes 和 Boltzmann 机器,我们在“第 3 章”,*受限 Boltzmann 机器和自编码器*中进行了讨论。 但是,他们的首要任务是弄清楚某些功能的可能性,而不是识别标签。 然后将学习到的特征分布用于分类。 如果仍然感到困惑,这是区分生成模型和区分模型的简单方法:
机器学习中有两种主要类型的模型,即**生成模型****判别模型**。 顾名思义,区分模型试图在两个(或多个)类之间区分数据。 例如,我们在“第 4 章” *,CNN 架构*中讨论过的 CNN 模型,学会告诉我们一个图像是猫还是狗,给定其中一个图像, 以及 “第 6 章”,“循环神经网络”中的 RNN 模型经过训练,可以输出给定段落的正面或负面情绪。 判别模型着重于根据数据的特征预测数据类别。 相反,生成模型不尝试将要素映射到类,而是在给定特定类的情况下生成要素。 例如,训练**高斯混合模型****GMM**)以生成适合训练集分布的新数据。 生成模型对给定单个类的特征分布进行建模。 也就是说,可以使用生成模型对数据进行分类,例如 Naive Bayes 和 Boltzmann 机器,我们在“第 3 章”,*受限 Boltzmann 机器和自编码器*中进行了讨论。 但是,他们的首要任务是弄清楚某些功能的可能性,而不是识别标签。 然后将学习到的特征分布用于分类。 如果仍然感到困惑,这是区分生成模型和区分模型的简单方法:
* 区分模型对寻找边界或规则以分离数据感兴趣
* 生成模型侧重于对数据分布进行建模
......
......@@ -148,7 +148,7 @@ pip install edward
>>> tf.global_variables_initializer().run()
```
9. 现在,我们可以以小批量的方式开始训练贝叶斯网络模型,在此我们可以重用我们在“第 7 章”,*生成对抗网络*中定义的批量生成函数:
9. 现在,我们可以以小批量的方式开始训练贝叶斯网络模型,在此我们可以重用我们在“第 7 章”,“生成对抗网络”中定义的批量生成函数:
```py
>>> def gen_batches_label(x_data, y_data, batch_size, shuffle=True):
......
......@@ -4,6 +4,6 @@
本节包括以下章节:
* “第 1 章”,*深度学习入门*
* “第 2 章”,*深度前馈网络*
* “第 1 章”,“深度学习入门”
* “第 2 章”,“深度前馈网络”
* “第 3 章”,*受限制的 Boltzmann 机器和自编码器*
\ No newline at end of file
......@@ -4,5 +4,5 @@
本节将介绍以下章节:
* “第 4 章”, *CNN 架构*
* “第 5 章”,*移动神经网络和 CNN*
\ No newline at end of file
* “第 4 章”,“CNN 架构”
* “第 5 章”,“移动神经网络和 CNN”
\ No newline at end of file
......@@ -4,4 +4,4 @@
本节将涵盖以下章节:
* “第 6 章”,*递归神经网络*
\ No newline at end of file
* “第 6 章”,“循环神经网络”
\ No newline at end of file
......@@ -4,4 +4,4 @@
本节将介绍以下章节:
* “第 7 章”,*生成对抗网络*
\ No newline at end of file
* “第 7 章”,“生成对抗网络”
\ No newline at end of file
......@@ -4,4 +4,4 @@
本节将介绍以下章节:
* “第 8 章”,*深度学习的新趋势*
\ No newline at end of file
* “第 8 章”,“深度学习的新趋势”
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册