Pytorch入门(一) (李宏毅老师作业一2021年春)

本文介绍了如何使用PyTorch进行数据读取和模型训练。通过COVID19Dataset类从CSV文件加载数据,利用Dataset和DataLoader进行批次处理。训练模型时,先设置为训练模式,然后通过优化器更新参数。评估阶段计算平均损失,并在验证集上进行。代码中使用了一个简单的全连接神经网络,并实现了L2正则化的损失函数。
摘要由CSDN通过智能技术生成

本篇代码、数据集来源于李宏毅老师的HW1

数据集地址

参考代码地址

本文通过李老师的第一作业以及提供的参考代码来进行Pytorch入门。本文为入门文,不会涉及具体的网络设计。

当我们想使用数据训练一个模型的时候,其实主要分为两个步骤:读取数据、训练模型。那么我们就按照这个步骤进行pytorch使用入门。

读取模型

1、使用dataset和dataloader来进行数据读取

这是我在参考代码中看到的使用方法,应该也是比较推荐的使用方法。(以下读取已经经过简化,去掉了一些特殊的数据处理)

from torch.utils.data import Dataset, DataLoader
import numpy as np
class COVID19Dataset(Dataset):
    ''' Dataset for loading and preprocessing the COVID19 dataset '''
    def __init__(self,
                 path):
        #根据路径读取所需数据(使用pandas)
        df = pd.read_csv(path)
        #需要将数据转化为pytorch所需的格式
        data = torch.tensor(df.values, dtype=torch.float)
        #第一列为ID,无用数据,去除
        data = data[:,1:]
        #这里可以取所有列,也可以经过一些筛选,只使用有用的列
        feats = list(range(93))
        self.target = data[:, -1]
        self.data = data[:, feats]    


    def __getitem__(self, index):
        # 必须要实现的魔术方法,用于训练模型时返回数据
        return self.data[index], self.target[index]


    def __len__(self):
        # 返回数据长度,后面有使用到这个方法
        return len(self.data)

#再使用dataloader来实现打乱数据,批次读取等效果
batch_size = 100
train_ds = DataLoader(ds, batch_size=batch_size, shuffle=True)
dev_ds = DataLoader(ds, batch_size=batch_size, shuffle=True)

2、更直接地方法

参考文章
也可以不使用,直接自己实现打乱,按批次读取的效果

import pandas as pd
import torch
from torch import nn
path 
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rglkt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值