示例#1
0
model = NIN(10).cuda()
summary(model, (3, 32, 32))

optimizer = optim.Adam(model.parameters(), lr=0.0001)
loss_function = nn.CrossEntropyLoss()

trainer = Trainer(optimizer, loss_function, train_loader, test_loader,
                  validation_loader)
train_loss, train_accuracy, train_loss_list, train_accuracy_list, test_loss_list, test_accuracy_list = trainer.train_phase(
    100, model)

torch.save(model, "NIN_SVHN_w_dropout")

model_load = torch.load("NIN_SVHN_w_dropout")
model_load.eval()
test_accuracy = trainer.compute_accuracy(model_load, validation=False)
print("Test accuracy is {}".format(test_accuracy))

plt.plot(list(range(1, 101)), train_accuracy_list, list(range(1, 101)),
         test_accuracy_list)
plt.title("Accuracy results SVHN")
plt.xlabel("Epochs")
plt.ylabel("Accuracy rate")
plt.legend(['train', 'validation'], loc='upper left')
plt.savefig("Accuracies_SVHN_0.7.png")
plt.show()

plt.plot(list(range(1, 101)), train_loss_list, list(range(1, 101)),
         test_loss_list)
plt.title("Error results SVHN")
plt.xlabel("Epochs")