01 Pytorch 基础

发布于:2024-06-16 ⋅ 阅读:(102) ⋅ 点赞:(0)

paddle不需要放数据到gpu!

区别:1.batch_norlization 不同

            2. 

1.数据处理

1.取一个数据,以及计算大小

        (剩下的工作,取batch,pytorch会自动做好了)

2.模型相关 

如何得到结果

3.模型训练/模型验证: 

代码剖析 

1.配置文件yaml (字典)
#参数配置

config = {
    "train_path":'/kaggle/input/deepshare-playground/train_behaviour.csv',
    "test_path":'/kaggle/input/deepshare-playground/test_behaviour.csv',
    "debug_mode" : False,
    "epoch" : 20,
    "batch" : 2048,
    "lr" : 0.001,
    "device" : 0,
}

使用: config[ '名称' ]

train_df = pd.read_csv(config['train_path'])
if config['debug_mode']:
    train_df = train_df[:1000]
test_df = pd.read_csv(config['test_path'])
 2.处理数据:定义DataSet

关键:len + getitem(获取单独的一个)

#Dataset构造
class BaseDataset(Dataset):
    def __init__(self,df):
        self.df = df
        self.feature_name = ['user_id','item_id']
        #数据编码
        self.enc_data()

    def enc_data(self):
        #使用enc_dict对数据进行编码
        self.enc_df = copy.deepcopy(self.df)
        for col in self.feature_name:
            self.enc_df[col] = torch.Tensor(np.array(self.df[col])).long()
            
    def __getitem__(self, index):
        data = dict()
        for col in self.feature_name:
            data[col] = torch.Tensor([self.enc_df[col].iloc[index]]).long().squeeze(-1)
        if 'label' in self.enc_df.columns:
            data['label'] = torch.Tensor([self.enc_df['label'].iloc[index]]).squeeze(-1)
        return data

    def __len__(self):
        return len(self.df)
3.模型定义
4.训练与验证

完成Train Pipeline/Valid Pipeline

 4.1 拷贝数据->gpu

4.2前向传输

4.3

4.4 指标计算


网站公告

今日签到

点亮在社区的每一天
去签到