excel/csv文件数据转成pytorch张量导入模型代码-爱代码爱编程
视频:B站deep_thought-52、Excel/Csv文件数据转成PyTorch张量导入模型代码逐行讲解
代码:
import torch
from torch.utils.data import Dataset
from torch.utils.data import DataLoader
import numpy as np
import pandas
class ExcelDataset(Dataset):
def __init__(self, filepath="dataloader_try.xlsx", sheet_name=0): #filepath为路径 这里为相对路径 sheet_name默认为0,读取第一个表单
print(f"reading{filepath}, sheet={sheet_name}") #打印日志
df = pandas.read_excel(
filepath, header=0, index_col=0, #header为标题行,第0行为标题行,不纳入数据 dex_col为列数,=0为第0列,不纳入数据
names=['feat1', 'feat2', 'label'],
sheet_name=sheet_name,
dtype={"feat1": np.float32, "feat2": np.float32, "label": np.int32}#读取后转成的类型
)
print(f"the shape of dataframe is {df.shape}") #打印日志
feat = df.iloc[:, :2].values#除去第一列的前两列
label = df.iloc[:, 2].values
self.x = torch.from_numpy(feat)
self.y = torch.from_numpy(label)
def __len__(self): #数据集大小
return len(self.y)
def __getitem__(self, index):
return self.x[index], self.y[index]
if __name__ == '__main__': #调试
print("test for exceldataset")
excel_dataset = ExcelDataset(sheet_name="Sheet1")
excel_dataloader = DataLoader(excel_dataset, batch_size=8, shuffle=True)
for idx, (batch_x, batch_y)in enumerate(excel_dataloader):
print(f"batch_id:{idx}, {batch_x.shape}, {batch_y.shape}")
print(batch_x, batch_y)
此为.xlsx文件导入代码