美文网首页
Pytorch神经网络-批训练

Pytorch神经网络-批训练

作者: BlueSkyBlue | 来源:发表于2018-10-15 11:17 被阅读36次

    神经网络中的训练形式不是将所有的数据一起打包一起进行训练。有时数据非常大。可以训练数据中的一小批,不断的进行。这样神经网络的效率会大大的提高。

    进行批训练首先要导入这两个包

    import torch
    import torch.utils.data as Data
    

    Data是进行小批训练的一个途径。

    首先创建一个数据库。data_tensor是进行训练的数据,target_tensor是用来计算误差的参数。

    torch_dataset = Data.TensorDataset(data_tensor=x,target_tensor=y)
    

    Dataloader是用来包装数据的工具。在使用此工具之前需要将自己的numpy.array变为Tensor类型的数据。

    loader = Data.DataLoader(
        dataset=torch_dataset,
        batch_size=BATCH_SIZE,
        shuffle=True,
        num_workers=2,
    )
    
    • shuffle:判断在训练的时候要不要随机的打乱数据再进行抽样。
    • num_workers:决定每次提取数据的时候是使用num_workers的进程还是线程进行提取。

    训练数据

    for epoch in range(3):
        # 将loader中的数据拆分为5次进行训练
        for step, (batch_x, batch_y) in enumerate(loader):
            print('Epoch: ', epoch, '| Step: ', step, '| batch x: ',
                  batch_x.numpy(), '| batch y: ', batch_y.numpy())
    

    训练三次,每次训练将数据拆分为5次进行训练。每次导出的数据都是打乱了顺序之后再导出的。

    完整代码

    import torch
    import torch.utils.data as Data
    torch.manual_seed(1)
    
    #定义一小批有多少个
    BATCH_SIZE = 5
    
    x = torch.linspace(1,10,10)
    y = torch.linspace(10,1,10)
    
    #创建一个数据库。data_tensor是进行训练的数据,target_tensor是用来计算误差的参数。
    #shuffle判断在训练的时候要不要随机的打乱数据再进行抽样
    #num_workers:决定每次提取数据的时候是使用num_workers的进程还是线程进行提取。
    torch_dataset = Data.TensorDataset(data_tensor=x,target_tensor=y)
    loader = Data.DataLoader(
        dataset=torch_dataset,
        batch_size=BATCH_SIZE,
        shuffle=True,
        num_workers=2,
    )
    
    def show_batch():
        # 整体训练三次
        for epoch in range(3):
            # 将loader中的数据拆分为5次进行训练
            for step, (batch_x, batch_y) in enumerate(loader):
                print('Epoch: ', epoch, '| Step: ', step, '| batch x: ',
                      batch_x.numpy(), '| batch y: ', batch_y.numpy())
    
    if __name__ == '__main__':
        show_batch()
    

    相关文章

      网友评论

          本文标题:Pytorch神经网络-批训练

          本文链接:https://www.haomeiwen.com/subject/rcaxzftx.html