pytorch:EDSR 生成训练数据的方法

本文详细介绍了如何使用Pytorch为EDSR(Enhanced Deep Residual Networks)生成训练数据,包括数据预处理、数据增强、转换为Tensor、数据加载器的使用等步骤。在数据生成过程中,涉及了图像的翻转、旋转、尺寸调整等操作,并通过HDF5文件存储。文章还分享了作者在实现过程中遇到的问题,如MATLAB函数缺失导致的错误及解决办法。
摘要由CSDN通过智能技术生成

Pytorch:EDSR 生成训练数据的方法

引言

Winter is coming

正文

pytorch提供的DataLoader 是用来包装你的数据的工具. 所以你要将自己的 (numpy array 或其他)

数据形式装换成 Tensor, 然后再放进这个包装器中. 使用 DataLoader 有什么好处呢?

就是他们帮你有效地迭代数据, 举例:

import torch
import torch.utils.data as Data #utils是torch中的一个模块,Data是进行小批训练的途径或模块

x = torch.linspace(1, 10, 10) # x data (torch tensor): 初始的数据

y = torch.linspace(10, 1, 10) # y data (torch tensor): 目标的数据

  • 先转换成 torch 能识别的 Dataset
torch_dataset = Data.TensorDataset(data_tensor=x, target_tensor=y)

torch_dataset 为用 torch 定义的一个数据库,然后将要训练的数据放到数据库中。
x为用来训练的数据,y为用于算误差的数据

  • dataset 放入 DataLoader
BATCH_SIZE = 5 # 批训练大小为五,即每次抽取五个数据进行训练
loader = Data.DataLoader(
    dataset=torch_dataset,      # torch TensorDataset format
    batch_size=BATCH_SIZE,      # mini batch size
    shuffle=True,               # 要不要打乱数据 (打乱比较好)
    num_workers=2,              # 多线程来读数据,更有效率
)

我们使用 DataLoader() 来使我们的训练过程变成一批一批,shuffleBool 型变量,为真时随机打乱数据后进行抽样

for epoch in range(3):   # 训练整套数据 3 次
    for step, (batch_x, batch_y) in enumerate(loader):      
        # 每一步loader释放一小批数据用来学习,因为一组总共有10个data,batch_size又为5,所以训练一次数据有2个step
        # 假设这里就是你训练的地方...
        # 打出来一些数据
        print('Epoch: ', epoch, '| Step: ', step, '| batch x: ', batch_x.numpy(), '| batch y: ', batch_y.numpy())

结果如下:

Epoch:  0 | Step:  0 | batch x:  [ 6.  7.  2.  3.  1.] | batch y:  [  5.   4.   9.   8.  10.]
Epoch:  0 | Step:  1 | batch x:  [  9.  10.   4.   8.   5.] | batch y:  [ 2.  1.  7.  3.  6.]
Epoch:  1 | Step:  0 | batch x:  [  3.   4.   2.   9.  10.] | batch y:  [ 8.  7.  9.  2.  1.]
Epoch:  1 | Step:  1 | batch x:  [ 1.  7.  8.  5.  6.] | ba
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值