Пример #1
0
def get_csgnet():
    csgnet = CsgNet(grid_shape=[64, 64, 64],
                    dropout=config.dropout,
                    mode=config.mode,
                    timesteps=7,
                    num_draws=len(unique_draws),
                    in_sz=config.input_size,
                    hd_sz=config.hidden_size,
                    stack_len=config.top_k)
    weights = torch.load(config.pretrain_modelpath)
    new_weights = {}
    for k in weights.keys():
        if k.startswith("module"):
            new_weights[k[7:]] = weights[k]
    csgnet.load_state_dict(new_weights)
    csgnet.cuda()
    for param in csgnet.parameters():
        param.requires_grad = True
    return csgnet
Пример #2
0
                     timesteps=max(data_labels_paths.keys()),
                     num_draws=len(generator.unique_draw),
                     in_sz=config.input_size,
                     hd_sz=config.hidden_size,
                     stack_len=config.top_k)

# If you want to use multiple GPUs for training.
cuda_devices = torch.cuda.device_count()
if torch.cuda.device_count() > 1:
    imitate_net.cuda_devices = torch.cuda.device_count()
    print("using multi gpus", flush=True)
    imitate_net = torch.nn.DataParallel(imitate_net, device_ids=[0, 1], dim=0)
imitate_net.cuda()

if config.preload_model:
    imitate_net.load_state_dict(torch.load(config.pretrain_modelpath))

for param in imitate_net.parameters():
    param.requires_grad = True

if config.optim == "sgd":
    optimizer = optim.SGD(
        [para for para in imitate_net.parameters() if para.requires_grad],
        weight_decay=config.weight_decay,
        momentum=0.9,
        lr=config.lr,
        nesterov=False)

elif config.optim == "adam":
    optimizer = optim.Adam(
        [para for para in imitate_net.parameters() if para.requires_grad],