sub = pd.read_csv('data/sample_submission.csv')

sub['cell_line'] = preds

sub.to_csv('save_6.csv', index=False)

trainers.report_result()

from sklearn import metrics
import matplotlib.pyplot as plt
import seaborn as sns

colors = ["windows blue", "amber", "greyish", "faded green", "dusty purple"]
sns.palplot(sns.xkcd_palette(colors))

_, _, (y_true, y_pred) = trainers.evaluate(val_loader)
cm = metrics.confusion_matrix(y_true, y_pred, normalize='true')
idx = sorted(np.unique(y_true))
confusion_matrix = pd.DataFrame(cm,
                                index=process.enc.classes_,
                                columns=process.enc.classes_)
plt.figure(figsize=(7, 7))
sns.heatmap(confusion_matrix,
            annot=True,
            fmt=".2f",
            square=True,
            cbar=False,
            cmap=sns.color_palette("Blues"))
plt.show()

plot_cm(val_loader)
Esempio n. 2
0
            print(
                "<%s> Epoch: %03d/%03d, Iteration: %03d/%03d, Loss: %.8f, Acc: %.3f"
                % (get_local_time(), epoch + 1, config['n_epochs'], it + 1,
                   len(train_loader), loss, acc))
            iterations = epoch * len(train_loader) + it + 1
            write_loss(iterations, trainer, train_writer)

    if (epoch + 1) % config['test_iter'] == 0:
        t_bar = tqdm.tqdm(test_loader)
        t_bar.set_description('Epoch: {} - Testing'.format(epoch + 1))
        losses = []
        accuracy_list = []
        for (images, labels) in t_bar:
            images = images.cuda()
            labels = labels.cuda()
            loss, accuracy = trainer.evaluate(images, labels)
            losses.append(loss)
            accuracy_list.append(accuracy)
        mean_loss = np.mean(losses)
        accuracy = np.mean(accuracy_list)
        print('\n<{}> Test result: loss: {}, accuracy: {}'.format(
            get_local_time(), mean_loss, accuracy))
        if opts.fine_tune:
            trainer.save(checkpoint_directory,
                         epoch,
                         acc=accuracy,
                         min_loss=mean_loss,
                         post_fix='-{}'.format(epoch + 1 - epochs))
            print('\n<{}> Saving the ft model, the prediction accuracy: {}'.
                  format(get_local_time(), accuracy))
        if accuracy > max_acc: