
神经网络项目一般分为以下3个模块数据处理模型搭建参数设置数据处理部分class CovidDataset(Dataset): def __init__(self, file_path, mode): # 打开指定路径的文件以只读模式读取 with open(file_path, r) as f: # 使用csv.reader读取文件内容并转换为列表 ori_data list(csv.reader(f)) # 将读取的数据转换为numpy数组去掉第一行表头和第一列再转换为float类型 csv_data np.array(ori_data)[1:, 1:].astype(float) # 根据不同的模式train、val、test对数据进行划分 if mode train: # 训练集选取索引不是5的倍数的数据 indices [i for i in range(len(csv_data)) if i % 5 ! 0] elif mode val: # 验证集选取索引是5的倍数的数据 indices [i for i in range(len(csv_data)) if i % 5 0] elif mode test: # 测试集选取所有数据 indices [i for i in range(len(csv_data))] # 根据选取的索引获取特征数据X这里取前93列作为特征 X torch.tensor(csv_data[indices, :93]) if mode ! test: # 如果不是测试集获取标签数据Y这里假设最后一列是标签 self.Y torch.tensor(csv_data[indices, -1]) # 对特征数据X进行标准化处理使其均值为0标准差为1 self.X (X - X.mean(dim0, keepdimTrue)) / X.std(dim0, keepdimTrue) self.mode mode def __getitem__(self, item): if self.mode test: # 如果是测试集只返回特征数据X return self.X[item].float() else: # 如果不是测试集返回特征数据X和标签数据Y return self.X[item].float(), self.Y[item].float() def __len__(self): # 返回数据集的长度即特征数据X的数量 return len(self.X)