import torch from DataLoader import get_image_loader from Net import ImageNN def train_model(): image_loader = get_image_loader("my/supercool/image/dir") # todo split to train and test (maybe evaluation sets) nn = ImageNN() # todo pass size ason. optimizer = torch.optim.SGD(nn.parameters(), lr=0.1) # todo adjust parameters and lr loss_function = torch.nn.CrossEntropyLoss() n_epochs = 15 # todo epcchs here # Training losses = [] for epoch in range(n_epochs): for input_tensor, target_tensor in image_loader: output = nn(input_tensor) # get model output (forward pass) loss = loss_function(output, target_tensor) # compute loss given model output and true target loss.backward() # compute gradients (backward pass) optimizer.step() # perform gradient descent update step optimizer.zero_grad() # reset gradients losses.append(loss.item()) # todo evaluate trained model # todo save trained model to blob file def apply_model(): pass