提交 9da431a4 编写于 作者: W wizardforcel

2021-01-25 00:18:06

上级 fe5c9700
......@@ -532,12 +532,12 @@ for i in range(100):
用于此活动的数据集来自 UC Irvine 机器学习存储库,[该存储库可使用以下 URL 从**数据文件夹**超链接中下载](https://archive.ics.uci.edu/ml/datasets/Somerville+Happiness+Survey)。 [也可以在本书的 GitHub 存储库中找到它](https://packt.live/38gzpr5)。
1. 导入所需的库,包括用于读取 CSV 文件的Pandas。
1. 导入所需的库,包括用于读取 CSV 文件的 Pandas。
2. 读取包含数据集的 CSV 文件。
注意
建议使用Pandas的`read_csv`函数加载 CSV 文件。 要了解有关此函数的更多信息,请访问[这里](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html)。
建议使用 Pandas 的`read_csv`函数加载 CSV 文件。 要了解有关此函数的更多信息,请访问[这里](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html)。
3. 将输入特征与目标分开。 请注意,目标位于 CSV 文件的第一列中。 接下来,将值转换为张量,确保将值转换为浮点数。
......
......@@ -128,7 +128,7 @@ Rosenblatt 还介绍了权重的概念(`w1`,`w2`,...,`wn`),这些数
![Figure 2.7: Sigmoid activation function ](img/B15778_02_07.jpg)
图 2.7:Sigmoid激活函数
图 2.7:Sigmoid 激活函数
下图显示了 Sigmoid 激活函数的图形表示:
......@@ -437,7 +437,7 @@ EDA 流程很有用,因为它有助于开发人员发现对于定义操作过
import pandas as pd
```
3. 使用Pandas读取 CSV 文件,其中包含我们从 UC Irvine 机器学习存储库站点下载的数据集。
3. 使用 Pandas 读取 CSV 文件,其中包含我们从 UC Irvine 机器学习存储库站点下载的数据集。
接下来,删除名为`date`的列,因为我们不想在以下练习中考虑它:
......@@ -631,7 +631,7 @@ EDA 流程很有用,因为它有助于开发人员发现对于定义操作过
Y_shuffle = Y.sample(frac=1, random_state=0)
```
使用Pandas`sample`函数,可以对特征和目标矩阵中的元素进行混洗。 通过将`frac`设置为 1,我们确保所有实例都经过打乱并在函数的输出中返回。 使用`random_state`参数,我们确保两个数据集均被混洗。
使用 Pandas`sample`函数,可以对特征和目标矩阵中的元素进行混洗。 通过将`frac`设置为 1,我们确保所有实例都经过打乱并在函数的输出中返回。 使用`random_state`参数,我们确保两个数据集均被混洗。
4. 使用索引将经过打乱的数据集分为特征和目标数据这三组:
......@@ -747,7 +747,7 @@ EDA 流程很有用,因为它有助于开发人员发现对于定义操作过
[也可以在本书的 GitHub 存储库中找到它](https://packt.live/38kZzZR)
1. 导入所需的库。
2. 使用Pandas,加载`.csv`文件。
2. 使用 Pandas,加载`.csv`文件。
3. 验证数据集中是否存在任何定性数据。
4. 检查缺失值。
......
......@@ -110,7 +110,7 @@
但是,在开始训练模型之前,必须处理一些关键方面。 您已经从上一章中了解了其中的大多数内容,这些内容将应用于当前数据集,并在目标特征中添加了类不平衡的修订:
* **看看数据**:使用Pandas读取数据集后,打印数据集的标题。 这有助于确保已加载正确的数据集。 此外,它还提供了准备后转换数据集的证据。
* **看看数据**:使用 Pandas 读取数据集后,打印数据集的标题。 这有助于确保已加载正确的数据集。 此外,它还提供了准备后转换数据集的证据。
注意
......
......@@ -81,7 +81,7 @@ The panda eats shoots and leaves
The panda eats, shoots, and leaves
```
在这里,加上逗号会将描述Pandas的饮食习惯的句子转换为描述Pandas武装抢劫餐馆的句子! 尽管如此,为了保持一致性,能够从句子中删除标点符号仍然很重要。 我们可以使用`re`库在 Python 中执行此操作,以使用正则表达式匹配任何标点符号,并使用`sub()`方法将任何匹配的标点符号替换为空字符:
在这里,加上逗号会将描述 Pandas 的饮食习惯的句子转换为描述 Pandas 武装抢劫餐馆的句子! 尽管如此,为了保持一致性,能够从句子中删除标点符号仍然很重要。 我们可以使用`re`库在 Python 中执行此操作,以使用正则表达式匹配任何标点符号,并使用`sub()`方法将任何匹配的标点符号替换为空字符:
```py
input_text = "This ,sentence.'' contains-£ no:: punctuation?"
......
......@@ -173,7 +173,7 @@ CNN 背后的基本概念是卷积。 **卷积**本质上是一个滑动窗口
train_data
```
但是,在这里,我们正在处理`TorchText`数据集对象,而不是像我们以前所看到的那样,将数据集加载到Pandas中。 这意味着前面代码的输出如下:
但是,在这里,我们正在处理`TorchText`数据集对象,而不是像我们以前所看到的那样,将数据集加载到 Pandas 中。 这意味着前面代码的输出如下:
![Figure 6.10 – Output of the TorchText object ](img/B12365_06_10.png)
......
......@@ -513,11 +513,11 @@ tensor([[1]], dtype=torch.uint8)
#### 注意
**Sigmoid 激活**:激活函数在神经网络的各层之间创建非线性。 这是必不可少的,因为在没有非线性的情况下,各层只是将输入值与权重相乘。 在那种情况下,神经网络的单层可以完成 100 层的确切函数; 这只是增加或减少权重值的问题。 Sigmoid激活可能是最传统的激活函数。 它将输入压缩到`[0,1]`的范围。
**Sigmoid 激活**:激活函数在神经网络的各层之间创建非线性。 这是必不可少的,因为在没有非线性的情况下,各层只是将输入值与权重相乘。 在那种情况下,神经网络的单层可以完成 100 层的确切函数; 这只是增加或减少权重值的问题。 Sigmoid 激活可能是最传统的激活函数。 它将输入压缩到`[0,1]`的范围。
![The functional module](img/B09475_02_10.jpg)
图 2.10:Sigmoid激活
图 2.10:Sigmoid 激活
尽管 sigmoid 对输入非线性作用,但它不会产生以零为中心的输出。 逐渐梯度消失和计算上昂贵的取幂是 Sigmoid 曲线的其他缺点,由于这些原因,几乎所有深度学习从业人员如今都没有在任何用例中使用 Sigmoid 曲线。 找到合适的非线性是一个主要的研究领域,人们已经提出了更好的解决方案,例如 ReLU,Leaky ReLU 和 ELU。 在以后的章节中,我们将看到其中的大多数。
......
......@@ -18,7 +18,7 @@
迄今为止,最早的也是最流行的对抗性攻击之一被称为*快速梯度符号攻击(FGSM)*,由[《解释和利用对抗性示例》](https://arxiv.org/abs/1412.6572)(Goodfellow 等)描述。 攻击非常强大,而且直观。 它旨在利用神经网络学习*梯度*的方式来攻击神经网络。 这个想法很简单,不是通过基于反向传播的梯度来调整权重来使损失最小化,攻击会基于相同的反向传播的梯度来调整输入数据,以使损失最大化。 换句话说,攻击使用损失相对于输入数据的梯度,然后调整输入数据以使损失最大化。
在进入代码之前,让我们看一下著名的 [FGSM](https://arxiv.org/abs/1412.6572) Pandas示例,并提取一些符号。
在进入代码之前,让我们看一下著名的 [FGSM](https://arxiv.org/abs/1412.6572) Pandas 示例,并提取一些符号。
![fgsm_panda_image](img/d74012096c3134b776b5e9f70e8178f3.png)
......
......@@ -98,7 +98,7 @@
# Sigmoid 函数
Sigmoid是一种平滑且连续可微的函数。 这导致非线性输出。 Sigmoid 函数在这里表示:
Sigmoid 是一种平滑且连续可微的函数。 这导致非线性输出。 Sigmoid 函数在这里表示:
![](img/9241aa68-606b-4192-b3cc-ccb29f4ef110.png)
......@@ -112,7 +112,7 @@ Sigmoid是一种平滑且连续可微的函数。 这导致非线性输出。 Si
![](img/d8011c52-5574-4521-a42d-e18893417c8d.png)
Sigmoid得到广泛使用,但其缺点是该函数趋于 +3 和 -3 平坦。 因此,无论何时函数落在该区域中,梯度都趋于接近零,并且我们的神经网络学习停止。
Sigmoid 得到广泛使用,但其缺点是该函数趋于 +3 和 -3 平坦。 因此,无论何时函数落在该区域中,梯度都趋于接近零,并且我们的神经网络学习停止。
由于 Sigmoid 函数输出的值从 0 到 1,即全为正,因此它在原点周围是非对称的,并且所有输出信号都是正的,即具有相同的符号。 为了解决这个问题,已将 Sigmoid 函数缩放为 tanh 函数,我们将在下面进行研究。 而且,由于梯度导致的值很小,因此很容易遇到梯度消失的问题(我们将在本章稍后讨论)。
......
......@@ -64,7 +64,7 @@ Ross Girshick 的 [Fast R-CNN](https://arxiv.org/pdf/1504.08083.pdf)
Fast R-CNN 解决了与 SPP 网络相关的关键问题; 由于空间池化层未进行微调,因此,Fast R-CNN 提供了端到端的学习网络。 Fast R-CNN 使用类似于最大池梯度计算的简单反向传播,但池区域重叠。
此外,与 R-CNN 不同,Fast R-CNN 结合了边界框回归和神经网络训练,而 R-CNN 则使用边界框回归单独进行此区域优化,这有助于更好地定位。 因此,在Fast R-CNN 中,分类和定位不需要单独的网络。 结果,相对于之前开发的任何其他对象检测模型,总的训练时间显着减少,并且由于端到端学习,与 SPP 网络相比,其准确率更高。
此外,与 R-CNN 不同,Fast R-CNN 结合了边界框回归和神经网络训练,而 R-CNN 则使用边界框回归单独进行此区域优化,这有助于更好地定位。 因此,在 Fast R-CNN 中,分类和定位不需要单独的网络。 结果,相对于之前开发的任何其他对象检测模型,总的训练时间显着减少,并且由于端到端学习,与 SPP 网络相比,其准确率更高。
# Faster R-CNN
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册