예제 #1
0
batch_size = 128
data_size = 50
d1, d2 = data.get_dataset_triangles("train",
                                    data_size=data_size,
                                    hollow=True,
                                    batch_size=batch_size)
d1_t, d2_t = data.get_dataset_triangles("test",
                                        data_size=data_size,
                                        hollow=True,
                                        batch_size=batch_size)

image_A, image_B = (x[0].cuda() for x in next(zip(d1, d2)))

net = inverseConsistentNet.InverseConsistentNet(
    network_wrappers.FunctionFromMatrix(networks.ConvolutionalMatrixNet()),
    lambda x, y: torch.mean((x - y)**2),
    100,
)
network_wrappers.assignIdentityMap(net, image_A.shape)
net.cuda()

import train

optim = torch.optim.Adam(net.parameters(), lr=0.00001)
net.train().cuda()

xs = []
for _ in range(240):
    y = np.array(train.train2d(net, optim, d1, d2, epochs=50))
    xs.append(y)
예제 #2
0
batch_size = 128
data_size = 50
d1, d2 = data.get_dataset_triangles("train",
                                    data_size=data_size,
                                    hollow=True,
                                    batch_size=batch_size)
d1_t, d2_t = data.get_dataset_triangles("test",
                                        data_size=data_size,
                                        hollow=True,
                                        batch_size=batch_size)

image_A, image_B = (x[0].cuda() for x in next(zip(d1, d2)))

net_tmp = inverseConsistentNet.InverseConsistentAffineNet(
    networks.ConvolutionalMatrixNet(), 100,
    next(iter(d1))[0].size())

net = inverseConsistentNet.InverseConsistentAffineNet(
    networks.AffineFromUNet(networks.tallUNet2(), net_tmp.identityMap),
    100,
    next(iter(d1))[0].size(),
)

net.cuda()

import train

optim = torch.optim.Adam(net.parameters(), lr=0.00001)
net.train().cuda()
예제 #3
0
from mermaidlite import compute_warped_image_multiNC, identity_map_multiN
import torch
import random
import inverseConsistentNet
import networks
import data
import describe

BATCH_SIZE = 24
SCALE = 1  # 1 IS QUARTER RES, 2 IS HALF RES, 4 IS FULL RES
working_shape = [BATCH_SIZE, 1, 40 * SCALE, 96 * SCALE, 96 * SCALE]

GPUS = 4

net = inverseConsistentNet.InverseConsistentAffineDeformableNet(
    networks.ConvolutionalMatrixNet(dimension=3),
    networks.tallUNet2(dimension=3),
    lmbda=100,
    input_shape=working_shape,
)

pretrained_weights = torch.load(
    "results/affine_knee_lambdaserver_2/knee_aligner_resi_net87000"
)
pretrained_weights = OrderedDict(
    [
        (a.split("regis_net.")[1], b)
        for a, b in pretrained_weights.items()
        if "regis_net" in a
    ]
)
import random
import pickle

batch_size = 128
data_size = 50
d1, d2 = data.get_dataset_triangles("train",
                                    data_size=data_size,
                                    hollow=True,
                                    batch_size=batch_size)
d1_t, d2_t = data.get_dataset_triangles("test",
                                        data_size=data_size,
                                        hollow=True,
                                        batch_size=batch_size)

image_A, image_B = (x[0].cuda() for x in next(zip(d1, d2)))
phi = networks.ConvolutionalMatrixNet()
psi = networks.ConvolutionalMatrixNet()
tmpnet = inverseConsistentNet.InverseConsistentAffineNet(
    phi, 100,
    next(iter(d1))[0].size())
net = inverseConsistentNet.InverseConsistentAffineNet(
    networks.DoubleAffineNet(phi, psi, tmpnet.identityMap, tmpnet.spacing),
    100,
    next(iter(d1))[0].size(),
)

net.cuda()

import train

optim = torch.optim.Adam(net.parameters(), lr=0.00001)