Как l oop датафрейм в Pytorch? - PullRequest
       12

Как l oop датафрейм в Pytorch?

0 голосов
/ 15 февраля 2020

У меня проблема, когда я хочу, чтобы l oop мой DataFrame был создан ранее, чтобы я мог передать его в свой классификатор, но я не могу ни l oop my DataFrame, ни передать имя файла в классификатор. Что я могу сделать?

dataset=pd.DataFrame({
                      'filename':train,
                      'category':categories
                    })
images=dataset.iloc[:,0]
labels=dataset.iloc[:,-1]

from torch import nn,optim
class Classifier(nn.Module):
    def __init__(self):
        super().__init__()
        self.fc1=nn.Linear(49152,256)
        self.fc2=nn.Linear(256,128)
        self.fc3=nn.Linear(128,64)
        self.fc4=nn.Linear(64,2)
        # add the dropout
        self.dropout=nn.Dropout(p=0.2)
    def forward(self,x):
        #flatten the input
        x=x.view(x.shape[0],-1)
        x=self.dropout(F.relu(self.fc1(x)))
        x=self.dropout(F.relu(self.fc2(x)))
        x=self.dropout(F.relu(self.fc3(x)))
        x=F.log_softmax(self.fc4(x),dim=1)
        return x
model=Classifier()
criterion=nn.NLLLoss()
optimizer=optim.Adam(model.parameters(),lr=0.005)
epochs=20
steps=0
for epoch in range(epochs):
    running_loss=0
    for filename,label in dataset:
        image=cv2.imread(filename)
        image=cv2.resize(image,dsize=(128,128),interpolation=cv2.INTER_CUBIC)
        output=model.forward(image)
        loss=criterion(output,label)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
        running_loss+=loss.item()
    print(running_loss)

1 Ответ

0 голосов
/ 17 февраля 2020

Может быть, вы можете попробовать обернуть свой фрейм данных в загрузчике данных PyTorch. Это поможет вам создать наборы данных поезда / проверки. Этот ответ Аллена даст вам некоторое руководство. Если у вас есть загрузчик данных, вы можете легко перебирать его во время обучения или проверки.

...