Exemple #1
0
        # plot_save_loss(losses, losses_validate, '/home/hh/data/loss_csnn_2_layers_run{}.png'.format(run))
        # plot_save_acc(accuracies, accuracies_validate, '/home/hh/data/acc_csnn_2_layers_run{}.png'.format(run))
        # plot_save_acc_nzs_mmcs(alphas, accuracies_validate, nzs, mmcs,
        #                        '/home/hh/data/acc_nzs_mmcs_csnn_2_layers_run{}.png'.format(run))
        # plot_save_loss(losses, losses_validate, '/home/hh/data/loss_csnn_2_layers_run{}_trim.png'.format(run))
        # plot_save_acc(accuracies, accuracies_validate, '/home/hh/data/acc_csnn_2_layers_run{}_trim.png'.format(run))
        # plot_save_acc_nzs_mmcs(alphas, accuracies_validate, nzs, mmcs,
        #                        '/home/hh/data/acc_nzs_mmcs_csnn_2_layers_run{}_trim.png'.format(run))
        # plot_save_loss(losses, losses_validate, '/home/hh/data/loss_csnn_2_layers_run{}_r2{:.1f}.png'.format(run, r2))
        # plot_save_acc(accuracies, accuracies_validate, '/home/hh/data/acc_csnn_2_layers_run{}_r2{:.1f}.png'.format(run, r2))
        # plot_save_acc_nzs_mmcs(alphas, accuracies_validate, nzs, mmcs,
        #                        '/home/hh/data/acc_nzs_mmcs_csnn_2_layers_run{}_r2{:.1f}.png'.format(run, r2))
        plot_save_loss(losses, losses_validate, '/home/hh/data/loss_csnn_2_layers_run{}_r2{:.1f}_maxAlpha{:.1f}.png'.format(run, r2, maxAlpha))
        plot_save_acc(accuracies, accuracies_validate, '/home/hh/data/acc_csnn_2_layers_run{}_r2{:.1f}_maxAlpha{:.1f}.png'.format(run, r2, maxAlpha))
        plot_save_acc_nzs_mmcs(alphas, accuracies_validate, nzs, mmcs,
                               '/home/hh/data/acc_nzs_mmcs_csnn_2_layers_run{}_r2{:.1f}_maxAlpha{:.1f}.png'.format(run, r2, maxAlpha))

        bestValidationAccs.append(max(accuracies_validate))
        AUCs.append(aucs)
        ACCs.append(accs)

    print('mean and std of best validation acc in {} runs: {:.4f}, {:.4f}'
          .format(runs, np.mean(np.array(bestValidationAccs)), np.std(np.array(bestValidationAccs))))
    # plt.show()
    AUCs = np.array(AUCs)
    ACCs = np.array(ACCs)
    print('average and std of AUC in {} runs'.format(runs))
    # print('mean ', np.mean(AUCs, axis=0))
    # print('std ', np.std(AUCs, axis=0))
    # dir = '/home/hh/data/mean_std_accs_aucs_csnn_2_layers_trim.npz'
    # dir = '/home/hh/data/mean_std_accs_aucs_csnn_2_layers_r2{:.1f}.npz'.format(r2)
            print('loss: cross_entropy {:.4f}, penalty {:.4f}'.format(
                loss_ce, loss_penalty))

        # eliminate dead nodes
        # if (   (epoch<200 and (epoch + 1) % (epochs / 100) == 0)
        #    or (epoch>=200 and (epoch + 1) % (epochs/10) == 0)):
        #    #_, dmu = active(torch.tensor(x_train).float(), model, alpha, r2)
        #    PATH = outputDir+'/csnn_2_csnn_layers_run{}_epoch{}_r2{:.1f}_maxAlpha{:.1f}_affine_false.pth'.format(run, epoch+1, r2, maxAlpha)
        #    torch.save({'net':model, 'alpha':alpha, 'r2':r2}, PATH)
        #    # model.keepNodes(dmu > 0)

    plot_save_loss(losses, losses_validate,
                   outputDir + '/loss_run{}.png'.format(run))
    plot_save_acc(accuracies, accuracies_validate,
                  outputDir + '/acc_run{}.png'.format(run))
    plot_save_acc_nzs_mmcs(alphas, accuracies_validate, nzs, aucs,
                           outputDir + '/acc_nzs_mmcs_run{}.png'.format(run))

    bestValidationAccs.append(max(accuracies_validate))
    AUCs.append(aucs)
    ACCs.append(accuracies_validate)
    if ALPHAs is None: ALPHAs = alphas
AUCs = np.array(AUCs)
ACCs = np.array(ACCs)
print('mean and std of best validation acc in {} runs: {:.4f}, {:.4f}'.format(
    runs, np.mean(np.array(bestValidationAccs)),
    np.std(np.array(bestValidationAccs))))
dir = outputDir + '/mean_std_accs_aucs_net4.npz'
np.savez(dir,
         a=np.mean(AUCs, axis=0),
         b=np.std(AUCs, axis=0),
         c=np.mean(ACCs, axis=0),
Exemple #3
0
                    # model.keepNodes(dmu > 0)

            # print('epoch ', epoch)
            dir0 = '/home/hh/data/'
            dir = '/home/hh/data/loss_csnn_4_layers_batchNorm_noPretrain_maxAlpha{:.2f}_run{}'.format(maxAlpha, run)
            np.savez(dir + ".npz", a=np.array(losses), b=np.array(losses_validate), c=np.array(mmcs))
            dir = '/home/hh/data/acc_csnn_4_layers_batchNorm_noPretrain_maxAlpha{:.2f}_run{}'.format(maxAlpha, run)
            np.savez(dir + ".npz", a=np.array(accuracies), b=np.array(accuracies_validate))
            dir = '/home/hh/data/csnn_nz_mmcs_4_layers_batchNorm_noPretrain_maxAlpha{:.2f}_run{}.npz'.format(maxAlpha, run)
            np.savez(dir, a=np.array(nzs), b=np.array(mmcs))

            plot_save_loss(losses, losses_validate,
                           '/home/hh/data/loss_csnn_4_layers_batchNorm_noPretrain_maxAlpha{:.2f}_run{}.png'.format(maxAlpha, run))
            plot_save_acc(accuracies, accuracies_validate,
                           '/home/hh/data/acc_csnn_4_layers_batchNorm_noPretrain_maxAlpha{:.2f}_run{}.png'.format(maxAlpha, run))
            plot_save_acc_nzs_mmcs(alphas, accuracies_validate, nzs, mmcs,
                           '/home/hh/data/acc_nzs_mmcs_csnn_4_layers_batchNorm_noPretrain_maxAlpha{:.2f}_run{}.png'.format(maxAlpha, run))

            bestValidationAccs.append(max(accuracies_validate))

        print('mean and std of best validation acc in {} runs: {:.4f}, {:.4f}'
              .format(runs, np.mean(np.array(bestValidationAccs)), np.std(np.array(bestValidationAccs))))
        # plt.show()
    else:
        AUCs = []
        ACCs = []
        epochs = []
        # for i in range(10, 191, 10):
        for i in range(10, 101, 10):
            epochs.append(i)
        # for i in range(200, 1001, 100):
        #     epochs.append(i)
Exemple #4
0
                        torch.tensor(x_train).float(), model, alpha, r2)
                    PATH = outputDir + '/csnn_2_csnn_layers_run{}_epoch{}_r2{:.1f}_maxAlpha{:.1f}_affine_false.pth'.format(
                        run, epoch + 1, r2, maxAlpha)
                    torch.save({'net': model, 'alpha': alpha, 'r2': r2}, PATH)
                    # model.keepNodes(dmu > 0)

            plot_save_loss(
                losses, losses_validate, outputDir +
                '/loss_csnn_2_csnn_layers_run{}_r2{:.1f}_maxAlpha{:.1f}_affine_false.png'
                .format(run, r2, maxAlpha))
            plot_save_acc(
                accuracies, accuracies_validate, outputDir +
                '/acc_csnn_2_csnn_layers_run{}_r2{:.1f}_maxAlpha{:.1f}_affine_false.png'
                .format(run, r2, maxAlpha))
            plot_save_acc_nzs_mmcs(
                alphas, accuracies_validate, nzs, mmcs, outputDir +
                '/acc_nzs_mmcs_csnn_2_csnn_layers_run{}_r2{:.1f}_maxAlpha{:.1f}_affine_false.png'
                .format(run, r2, maxAlpha))

            bestValidationAccs.append(max(accuracies_validate))

        print('mean and std of best validation acc in {} runs: {:.4f}, {:.4f}'.
              format(runs, np.mean(np.array(bestValidationAccs)),
                     np.std(np.array(bestValidationAccs))))
        # plt.show()
    else:
        AUCs = []
        ACCs = []
        epochs = []
        alphas = []
        # for i in range(0, 191, 10):
        for i in range(0, 101, 10):
Exemple #5
0
            #    PATH = outputDir+'/csnn_2_csnn_layers_run{}_epoch{}_r2{:.1f}_maxAlpha{:.1f}_affine_false.pth'.format(run, epoch+1, r2, maxAlpha)
            #    torch.save({'net':model, 'alpha':alpha, 'r2':r2}, PATH)
            #    # model.keepNodes(dmu > 0)

        # plot_save_loss(losses, losses_validate, outputDir+'/loss_run{}.png'.format(run))
        plot_save_loss(
            losses, losses_validate,
            outputDir + '/loss_lambda{:.2f}_run{}.png'.format(LAMBDA, run))
        # plot_save_acc(accuracies, accuracies_validate, outputDir+'/acc_run{}.png'.format(run))
        plot_save_acc(
            accuracies, accuracies_validate,
            outputDir + '/acc_lambda{:.2f}_run{}.png'.format(LAMBDA, run))
        plot_save_acc_nzs_mmcs(
            alphas,
            accuracies_validate,
            nzs,
            aucs,
            # outputDir+'/acc_nzs_mmcs_run{}.png'.format(run))
            outputDir +
            '/acc_nzs_mmcs_lambda{:.2f}_run{}.png'.format(LAMBDA, run))

        bestValidationAccs.append(max(accuracies_validate))
        AUCs.append(aucs)
        ACCs.append(accuracies_validate)
        if ALPHAs is None: ALPHAs = alphas
    AUCs = np.array(AUCs)
    ACCs = np.array(ACCs)
    print('mean and std of best validation acc in {} runs: {:.4f}, {:.4f}'.
          format(runs, np.mean(np.array(bestValidationAccs)),
                 np.std(np.array(bestValidationAccs))))
    dir = outputDir + '/mean_std_accs_aucs_net4_lambda{:.2f}.npz'.format(
        LAMBDA)
                    _, dmu = active(torch.tensor(x_train[:, mask]).float(), model, alpha, r2)
                    print('fc3 non zero neurons {}'.format(np.sum(dmu>0)))
                    # model.keepNodes(dmu > 0)

            # print('epoch ', epoch)

            dir = '/home/hh/data/loss_csnn'
            np.savez(dir + ".npz", a=np.array(losses), b=np.array(losses_validate), c=np.array(mmcs))
            dir = '/home/hh/data/acc_csnn'
            np.savez(dir + ".npz", a=np.array(accuracies), b=np.array(accuracies_validate))
            dir = '/home/hh/data/csnn_nz_mmcs.npz'
            np.savez(dir, a=np.array(nzs), b=np.array(mmcs))

            plot_save_loss(losses, losses_validate, '/home/hh/data/loss_csnn.png')
            plot_save_acc(accuracies, accuracies_validate, '/home/hh/data/acc_csnn.png')
            plot_save_acc_nzs_mmcs(alphas, accuracies_validate, nzs, mmcs, '/home/hh/data/acc_nzs_mmcs_csnn.png')

            bestValidationAccs.append(max(accuracies_validate))

        print('mean and std of best validation acc in {} runs: {:.4f}, {:.4f}'
              .format(runs, np.mean(np.array(bestValidationAccs)), np.std(np.array(bestValidationAccs))))
        # plt.show()
    else:
        AUCs = []
        for run in range(runs):
            PATH = '/home/hh/data/csnn_run{}.pth'.format(run)
            l = torch.load(PATH)
            model = l['net']
            alpha = l['alpha']
            r2 = l['r2']
            print('load model at run {}, alpha {:.4f}, r2 {:.4f}'.format(run, alpha, r2))