P8 加载数据集

81 阅读1分钟
import numpy as np  
import torch  
from torch.utils.data import Dataset  
from torch.utils.data import DataLoader  
  
class DiabetesDataset(Dataset):  
def __init__(self,filepath):  
    xy = np.loadtxt(filepath, delimiter=',', dtype=np.float32)  
    self.x_data = torch.from_numpy(xy[:, :-1])  
    self.y_data = torch.from_numpy(xy[:, [-1]])  
  
def __getitem__(self, index):  
    return self.x_data[index], self.y_data[index]  
    def __len__(self):  
    return self.len  
  
dataset = DiabetesDataset('diabets.csv.gz')  
train_loader = DataLoader(dataset=dataset,  
batch_size=32,  
shuffle=True,  
num_workers=2)  
  
class Model(torch.nn.Modle):  
def __init__(self):  
super(Model, self).__init__()  
self.linear1 = torch.nn.Linear(8, 6)  
self.linear2 = torch.nn.Linear(6, 4)  
self.linear3 = torch.nn.Linear(4, 1)  
self.sigmoid = torch.nn.Sigmoid()  
  
def forward(self, x):  
    x = self.sigmoid(self.linear1(x))  
    x = self.sigmoid(self.linear2(x))  
    x = self.sigmoid(self.linear3(x))  
    return x  
  
model = Model()  
criterion = torch.nn.BCELoss(size_average=True)  
optimizer = torch.optim.SGD(model.paemeters(), lr=0.1)  
  
  
for rpoch in range(100):  
    for i, data in enumerate(train_loader, 0):  
  
    inputs, labels = data  
  
    y_pred = model(inputs)  
    loss = criterion(y_pred, labels)  
    print(epoch, i, loss.item)  
  
    optimizer.zero_grad()  
    loss.backward()  
  
    optimizer.step()

作业: Build Dataloader for www.kaggle.com/c/titanic/d… Build a classifier using the DataLoader