「PyTorch深度学习入门」4. 使用张量表示真实世界的数据(中)

来源 | Deep Learning with PyTorch

作者 |  Stevens, et al.

译者 | 杜小瑞

校对 | gongyouliu

编辑 | auroral-L

全文共7849字,预计阅读时间45分钟。

第四章  使用张量表示真实世界的数据(中)

 

1. 使用图像

    1.1  添加颜色通道

    1.2  加载一个图片文件

    1.3  改变布局

    1.4  数据标准化

2.  三维图像:体积数据

    2.1  加载专用格式

3.  表示表格数据

    3.1  使用真实数据集

    3.2  加载葡萄酒数据张量

    3.3  表示分数

    3.4  one-hot 编码

    3.5  何时进行分类

    3.6  找到阈值

4.  使用时间序列

    4.1  添加一个时间维度

    4.2  按时间段构造数据

    4.3  准备训练

5.  表示文本

    5.1  将文本转化为数字

    5.2  one-hot 编码字符

    5.3  one-hot 编码整个单词

    5.4  文本嵌入

    5.5  作为蓝图的文本嵌入

6.  结论

7.  练习

8.  总结

3. 表示表格数据

我们在机器学习工作中遇到的最简单的数据形式是电子表格、CSV文件或数据库。不管是哪种媒介,它都是一个表,每个样本(或记录)包含一行,其中列包含一条关于样本的信息。

首先,我们假设样本在表中出现的顺序没有意义:与时间序列不同,这样的表是一个独立样本的集合,在时间序列中,样本是由一个时间维度关联的。

列可能包含数值,如特定位置的温度;或者标签(labels),比如表示样本属性的字符串,如“blue”。因此,这些与表格数据通常不是同质的:不同的列没有相同的类型。我们可能有一个列显示苹果的重量,另一个列在标签中编码苹果的颜色。

另一方面,PyTorch张量是同种类的。PyTorch中的信息通常被编码为一个数字,通常是浮点数(尽管也支持整数类型和布尔类型)。这种数字编码是经过深思熟虑的,因为神经网络是以实数作为输入,通过连续应用矩阵乘法和非线性函数产生实数作为输出的数学实体。

3.1 使用真实数据集

作为深度学习实践者,我们的第一项工作是将异构的、真实世界的数据编码成一个浮点数张量,供神经网络使用。大量表格数据集可在互联网上免费获得;比如说,https://github.com/caesar0301/awesome-public-datasets。让我们从一些有趣的事情开始:葡萄酒!葡萄酒质量数据集是一个免费提供的表格,其中包含来自葡萄牙北部的维诺维德葡萄酒样品的化学特征,以及感官质量评分。白葡萄酒的数据集可以在这里下载:http://mng.bz/90Ol。为了方便起见,我们还在data/p1ch4/tabular-wine下使用PyTorch Git库创建了一个数据集副本。

该文件包含一个以逗号分隔的数据集合,这些值按12列组织,前面有一个包含列名的标题行。前11列是化学变量值,最后一列是从0(非常差)到10(优秀)的感官质量分数。以下是列名在数据集中的显示顺序:

 

 

在这个数据集上,一个可能的机器学习任务是仅从化学特性预测质量分数。不过不用担心的是,机器学习短期内不会消灭品酒师的职业。我们必须从某处得到训练数据!如图4.3所示,我们希望找到数据中的一个化学列和质量列之间的关系。在这里,我们期望看到质量随着硫的减少而提高。

 

图 4.3 我们希望硫与葡萄酒质量的关系


3.2 加载葡萄酒数据张量

然而,在实现这一点之前,我们需要能够以比在文本编辑器中打开文件更有用的方式检查数据。让我们看看如何使用Python加载数据,然后将其转换为PyTorch张量。Python提供了几个快速加载CSV文件的选项。三种流行的选择是:

 Python附带的csv模块

 Numpy

 Pandas

第三种选择是最节省时间和内存的。但是,我们将避免仅仅因为需要加载文件而在学习轨迹中引入额外的库。由于我们在上一节中已经介绍了NumPy,并且PyTorch具有出色的NumPy互操作性,因此我们将继续讨论。让我们加载文件并将结果NumPy数组转换成PyTorch张量(code/p1ch4/3_tabular_wine.ipynb)。

 

在这里,我们只需指定2维数组的类型(32位浮点)、用于分隔每行中的值的分隔符,以及不应读取包含列名的第一行。让我们检

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据与智能

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值