pytorch_加载数据集

pytorch学习第五集

  • 1 术语

    • scalar 标量
    • vector 向量
    • matrix 矩阵
    • 张量就是n维数组
    • 秩,轴,形状
  • 2 tensor 的 构造方式

import torch
import numpy as np
data = np.array([1,2,3])
print(torch.Tensor(data))
# 副本
print(torch.tensor(data))
# 副本
print(torch.as_tensor(data))
# 视图
print(torch.from_numpy(data))
# 视图
  • 3

    • torch.eye(2)
    • torch.zeros(3,4,dtype=int)
    • torch.ones(3,4)
    • torch.rand(3,4)
  • 4 torch 的 全局缺省值

    • torch.get_default_dtype()
    • t1 = torch.tensor(np.array([1,2,3]),dtype=torch.float64)
  • 5 torch.tensor 的四种构造方式各有利弊

    • 副本占用内存
    • 视图和元数据共享相同内存(即他们的指针指向同一块内存区域)
  • 6 torch.tensor 的分量

    • torch.tensor(t.shape).prod()
    • t.numel()
  • 7 张量的压缩和解压缩

data = np.array(
[[1,1,1,1],
[2,2,2,2],
[3,3,3,3]])
t = torch.tensor(data)
print(t.reshape(1,12).squeeze(dim=0))
print(t.reshape(1,12).squeeze(dim=0).shape)
print(t.unsqueeze(dim=2))
print(t.unsqueeze(dim=2).shape)
  • 8 torch.tensor 的一维化
print(t.reshape(-1))
print(t.flatten())
  • 9 torch.tensor 的连接
print(torch.cat((t1,t2),dim=0))
  • 10 torch.tensor 的按指定维flatten
t1 = torch.ones((4,4),dtype = int)
t2 = torch.ones((4,4),dtype = int)*2
t3 = torch.ones((4,4),dtype = int)*3
t = torch.stack((t1,t2,t3))
t = t.reshape(3,1,4,4)
print(t)
t = t.flatten(start_dim=1)
print(t)
  • 11 numpy——broadcast——广播
np.broadcast_to(2,[2,2])
  • 12 torch.tensor 中一些函数所蕴含的广播运算
t = torch.tensor(
    [[0,5,7],
    [6,0,7],
    [0,8,0]],dtype=torch.float32)
print(t.eq(0)) # 0 是否相等
print(t.ge(5)) # 5 大于等于5
print(t.gt(5)) # 5 大于5
print(t.lt(7)) # 7 小于7
print(t.le(7)) # 7 小于等于7
print(t.neg()) # 取相反数
print()
- 13 torch.tensor 张量缩减

t = torch.tensor(np.ndarray)
t.max()
t.sum()
t.argmax() # 取最大值处的索引
t.max(dim=0)
t.argmax(dim=0)
t.mean(dim=1).tolist() # list
t.mean(dim=1).numpy() # convert to a ndarray

- 14 ETL
    - E extract 提取
    - T transform 转换
    - L load 加载
tensor([[0.8410, 0.8758, 0.6165, 0.2126],
        [0.0720, 0.9284, 0.4022, 0.1788],
        [0.1653, 0.8602, 0.7925, 0.3128]])
- 15 torchvision : 是一个队流行的数据集、模型和计算机视觉的图像转换的访问的包
    - torchvision.transforms :一个接口,能够访问图像处理的通用转换
- 16 dataset 数据集
- 17 dataloader 数据加载器封装数据集并提供对底层数据的访问

class OHLC(Dataset):
def init(self,csv_file):
self.data = pd.read_csv(csv_file)

def __getitem__(self,index):
    r = self.data.iloc[index]
    label = torch.tensor(r.is_up_day,dtype = torch.long)
    sample = self.normalize(torch.tensor([r.open,r.high,r.low,r.close]))
    return sample,label

del __len__(self):
    return len(train_set)
- 18 获取数据集,转化,放在数据加载器中

import torch
import torchvision
import torchvision.transforms as transforms
train_set = torchvision.datasets.FashionMNIST(
root = ‘./data/FashionMNIST’,
train=True,
download=True,
transform = transforms.Conpose(
[
transforms.ToTensor()
]))

  File "<ipython-input-2-20eddbc844af>", line 1
    - 18 获取数据集,转化,放在数据加载器中
                         ^
SyntaxError: invalid character in identifier
  • 19 使用dataset 和 dataloader(transform = transforms.Compose([transforms.ToTensor()])) //这是什么意思?)
import torch
import torchvision
import torchvision.transforms as transforms
import numpy as np
import matplotlib.pyplot as plt
train_set = torchvision.datasets.FashionMNIST( # 下载数据集
    root = './data/FashionMNIST', # 数据集存放的位置
    train=True, # True表示下载的是训练集
    download=True, # 如果上述位置中不存在数据集的话就下载
    transform = transforms.Compose( # 将数据集转化为我们需要的张量的类型
    [
        transforms.ToTensor()
    ]))
train_loader = torch.utils.data.DataLoader(train_set,batch_size=10) # 在这里定义了一个数据加载器对象,参数是数据集和一批的数量
torch.set_printoptions(linewidth=120)
print(train_set.train_labels[:100]) # 打印训练集标签的前100个
train_set.train_labels.bincount() # 这里可以看出训练集中标签的各个分类的个数 、、 目前来说一般都是均衡分配的
batch = next(iter(train_loader)) # 这里使用了迭代器,返回train_loader 的 第一个元素,也就是第一批
images,labels = batch # 每一批都是tuple类型,images和labels都是tensor类型,images的shape是【10,1,28,28】
grid = torchvision.utils.make_grid(images,nrow=10) # make_grid的作用是将多幅图片拼成一幅图片
plt.figure(figsize=(15,15)) 
plt.imshow(np.transpose(grid,(1,2,0))) // 有关np.transpose()函数的作用请参考 https://blog.csdn.net/jnbfknasf113/article/details/110240761
print('labels:',labels)

猜你喜欢

转载自blog.csdn.net/ahao6666666/article/details/113762157