欢迎订阅本专栏:《PyTorch深度学习实践》
订阅地址:https://blog.youkuaiyun.com/sinat_33761963/category_9720080.html
- 第二章:认识Tensor的类型、创建、存储、api等,打好Tensor的基础,是进行PyTorch深度学习实践的重中之重的基础。
- 第三章:学习PyTorch如何读入各种外部数据
- 第四章:利用PyTorch从头到尾创建、训练、评估一个模型,理解与熟悉PyTorch实现模型的每个步骤,用到的模块与方法。
- 第五章:学习如何利用PyTorch提供的3种方法去创建各种模型结构。
- 第六章:利用PyTorch实现简单与经典的模型全过程:简单二分类、手写字体识别、词向量的实现、自编码器实现。
- 第七章利用PyTorch实现复杂模型:翻译机(nlp领域)、生成对抗网络(GAN)、强化学习(RL)、风格迁移(cv领域)。
- 第八章:PyTorch的其他高级用法:模型在不同框架之间的迁移、可视化、多个GPU并行计算。
在现实场景中,数据由很多种形式存在,如存在表格中的数据、时间序列数据、图像数据、视频数据、文本数据等。在使用pytorch建立深度学习模型前,无论什么样的数据我们都要转换成tensor的形式, 并做好预处理,为喂入模型做准备。因此本章的主要内容是讲解如何读入各类数据、转换成tensor、并预处理好的过程。
3.1 表格式数据
数据形式:
表格式数据是比较常见的数据形式,一般存放再excel, csv, database中。其每一行是一个样本,每一列是样本的一个特性,每个样本之间是独立的即行与行之间没有顺序关系(和时间序列数据的最大差异)。
数据类型:
每一列的特性在表格类数据类型都可能不同,比如“温度”是数值型,“颜色”是字符串。
而一个pytorch tensor中的数值类型都是需要相同的,因此这就需要转换了。
读入数据:
常用的方法有:csv module, NumPy, Pandas
使用Pandas在时间和内存上都较为高效,但由于本文在将pytorch, 且前文也提到了与NumPy的交互,因此这里先介绍Numpy获取:
import numpy as np
path = "data.csv"
data = np.loadtxt(path, dtype=np.float32, delimiter=",")
检查数据:
可以通过这种方式检查数据大小,和列名
import csv
col_list = next(csv.reader(open(path), delimiter=','))
print(data.shape)
print(col_list)
转换成tensor:
import torch
data = torch.from_numpy(data)
print(data.shape)
print(data.type)
预处理数据:
现在数据以tensor形式存在,但还不可以直接喂给模型,需要做一些预处理。
(1)分割特征集与标签
features = data[