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 = dfself.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 datadef __len__(self):return len(self.df)
3.模型定义
4.训练与验证
完成Train Pipeline/Valid Pipeline
4.1 拷贝数据->gpu
4.2前向传输
4.3
4.4 指标计算