# 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),
# 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)
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):
# 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))