1、两个方法
用于探索Python或pytorch中的工具包
- dir():能让我们知道工具箱中有什么东西
- help():告诉我们工具的使用方法
2、pycharm 和 jupyter的区别
3.两个库函数--Dataset和Dataloader
3.1.1 Dataset概念
-
torch.utils.data.dataset这样的抽象类可以用来创建数据集。学过面向对象的应该清楚,抽象类不能实例化,因此我们需要构造这个抽象类的子类来创建数据集,并且我们还可以定义自己的继承和重写方法。
-
这其中最重要的就是**len和getitem这两个函数,前者给出数据集的大小**,后者是用于查找数据和标签。
3.1.2Dataset的创建和使用
- 首先我们需要引入dataset这个抽象类,当然我们还需要引入Numpy:
import torch.utils.data.dataset as Dataset
import numpy as np
- 我们创建Dataset的一个子类:
(1)初始化,定义数据内容和标签:
#初始化,定义数据内容和标签
def __init__(self, Data, Label):
self.Data = Data
self.Label = Label
(2)返回数据集大小:
#返回数据集大小
def __len__(self):
return len(self.Data)
(3)得到数据内容和标签:
#得到数据内容和标签
def __getitem__(self, index):
data = torch.Tensor(self.Data[index])
label = torch.Tensor(self.Label[index])
return data, label
3.2.1 Dataloader概念
-
torch.utils.data.DataLoader是一个迭代器,方便我们去多线程地读取数据,并且可以实现batch以及shuffle的读取等。
3.2.2 DataLoader的创建和使用
- 引入DataLoader:
import torch.utils.data.dataloader as DataLoader
- 创建DataLoader,batch_size设置为2,shuffle=False不打乱数据顺序,num_workers= 4使用4个子进程:
#创建DataLoader迭代器
dataloader = DataLoader.DataLoader(dataset,batch_size= 2, shuffle = False, num_workers= 4)
- 使用enumerate访问可遍历的数组对象:
for step, (data, label) in enumerate(dataloader):
print('step is :', step)
# data, label = item
print('data is {}, label is {}'.format(data, label))
for i, item in enumerate(dataloader):
print('i:', i)
data, label = item
print('data:', data)
print('label:', label)