def _load_networks(cls, network_paths, model_dir=None, progress=True):
     nets = []
     for out_channels, encoder_path, decoder_path in network_paths:
         nets.append(
             TaskonomyNetwork(out_channels=out_channels,
                              load_encoder_path=encoder_path,
                              load_decoder_path=decoder_path,
                              model_dir=model_dir,
                              progress=progress))
     return nets
Beispiel #2
0
 def _load_networks(cls, network_paths, model_dir=None, progress=True):
     nets = []
     for (
             out_channels,
             encoder_path,
             decoder_path,
             is_decoder_mlp,
             apply_tanh,
     ) in network_paths:
         nets.append(
             TaskonomyNetwork(
                 out_channels=out_channels,
                 load_encoder_path=encoder_path,
                 load_decoder_path=decoder_path,
                 model_dir=model_dir,
                 is_decoder_mlp=is_decoder_mlp,
                 apply_tanh=apply_tanh,
                 progress=progress,
             ))
     return nets
))

nets = []
for (
        out_channels,
        encoder_path,
        decoder_path,
        is_decoder_mlp,
        apply_tanh,
) in net_paths_to_load:
    nets.append(
        TaskonomyNetwork(
            out_channels=out_channels,
            load_encoder_path=encoder_path,
            load_decoder_path=decoder_path,
            model_dir=None,
            is_decoder_mlp=is_decoder_mlp,
            apply_tanh=apply_tanh,
            progress=True,
        ))

## For initial performance
decoder_nets = nets[0].to(default_device)

## For trained network performance
# model_path = 'trained_normals.pth'
# decoder_nets = nets[0].to(default_device)
# decoder_nets_checkpoint = torch.load(model_path)
# decoder_nets.load_state_dict(decoder_nets_checkpoint)
# decoder_nets.eval()
t0 = time.time()

#vp = VisualPrior()
#feature_tasks= ["normal"]
#vr = VisualPriorRepresentation()
#vr._load_unloaded_nets(feature_tasks)
TASKONOMY_PRETRAINED_WEIGHT_FILES = [
    "normal_decoder-8f18bfb30ee733039f05ed4a65b4db6f7cc1f8a4b9adb4806838e2bf88e020ec.pth",
    "normal_encoder-f5e2c7737e4948e3b2a822f584892c342eaabbe66661576ba50db7cdd40561c5.pth"
]
#path = "pretrained_model_weights"
path_de = 'https://github.com/alexsax/visual-prior/raw/networks/assets/pytorch/' + str(
    TASKONOMY_PRETRAINED_WEIGHT_FILES[0])
path_en = 'https://github.com/alexsax/visual-prior/raw/networks/assets/pytorch/' + str(
    TASKONOMY_PRETRAINED_WEIGHT_FILES[1])
model = TaskonomyNetwork(load_encoder_path=path_en, load_decoder_path=path_de)
model.encoder.eval_only = False
model.decoder.eval_only = False

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

model.train()

lr = 3e-4
optimizer = optim.Adam(model.parameters(), lr=lr)

from replay_buffer_depth import ReplayBufferDepth

size = 256
memory = ReplayBufferDepth((size, size), (size, size, 3), (size, size, 3),