plt.title("Log # pixels with negative Jacobian per epoch") plt.plot(x[:, 3]) # random.seed(1) plt.savefig(describe.run_dir + f"lossj.png") plt.clf() with open(describe.run_dir + "loss.pickle", "wb") as f: pickle.dump(x, f) # torch.manual_seed(1) # torch.cuda.manual_seed(1) # np.random.seed(1) image_A, image_B = (x[0].cuda() for x in next(zip(d1_t, d2_t))) for N in range(3): visualize.visualizeRegistration( net, image_A, image_B, N, describe.run_dir + f"epoch{_:03}" + "case" + str(N) + ".png", ) random.seed(1) torch.manual_seed(1) torch.cuda.manual_seed(1) np.random.seed(1) image_A, image_B = (x[0].cuda() for x in next(zip(d1_t, d2_t))) os.mkdir(describe.run_dir + "final/") for N in range(30): visualize.visualizeRegistrationCompact(net, image_A, image_B, N) plt.savefig(describe.run_dir + f"final/{N}.png") plt.clf()
loss_history.append( [ inverse_consistency_loss.item(), similarity_loss.item(), transform_magnitude.item(), torch.log(torch.sum(dA < 0) + 0.1), ] ) print("]") return loss_history losses = [] for _ in range(400): x = np.array(train2d(net, optimizer, image_A, image_B, epochs=10)) losses.append(x) # random.seed(1) # torch.manual_seed(1) # torch.cuda.manual_seed(1) # np.random.seed(1) visualize.visualizeRegistration( net, image_A, image_B, 0, describe.run_dir + f"epoch{_:03}.png", ) torch.save(net.state_dict(), describe.run_dir + "network.trch") torch.save(optimizer.state_dict(), describe.run_dir + "opt.trch")