Esempio n. 1
0
                                                   args.model_name,
                                                   args.backbone, cur_time)
    # writer = SummaryWriter(args.record_folder)
    os.makedirs(args.record_folder, exist_ok=True)

    if args.use_cuda and torch.cuda.is_available():
        torch.backends.cudnn.benchmark = True
    elif args.use_cuda:
        raise RuntimeError(
            'You are using GPU mode, but GPUs are not available!')

    # construct model and optimizer
    assert (args.train_data == args.test_data)
    args.image_len = 84
    args.semantic_size = get_semantic_size(args)
    args.out_channels, args.feature_h = get_outputs_c_h(
        args.backbone, args.image_len)

    model = ProtoNetAGAMwoAttr(args.backbone, args.semantic_size,
                               args.out_channels)

    if args.use_cuda:
        os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
        num_gpus = torch.cuda.device_count()
        if args.multi_gpu:
            model = nn.DataParallel(model)
        model = model.cuda()

    optimizer = torch.optim.Adam(model.parameters(),
                                 lr=args.lr,
                                 weight_decay=0.0005)
Esempio n. 2
0
    args = parser.parse_args()

    # make folder and tensorboard writer to save model and results
    cur_time = time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime())
    args.record_folder = './{}_{}_{}_{}-ways_{}-shots_{}'.format(args.train_data, args.test_data, args.backbone, str(args.num_ways), str(args.num_shots), cur_time)
    os.makedirs(args.record_folder, exist_ok=True)

    if args.use_cuda and torch.cuda.is_available():
        torch.backends.cudnn.benchmark = True
    elif args.use_cuda:
        raise RuntimeError('You are using GPU mode, but GPUs are not available!')
    
    # construct model and optimizer
    args.image_len = 28 if args.train_data == 'omniglot' else 84
    args.out_channels, _ = get_outputs_c_h(args.backbone, args.image_len)
    
    model = ConvolutionalNeuralNetwork(args.backbone, args.out_channels, args.num_ways)
    teacher_model = ConvolutionalNeuralNetwork(args.teacher_backbone, args.out_channels, args.num_ways)

    if args.use_cuda:
        os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
        num_gpus = torch.cuda.device_count()
        if args.multi_gpu:
            model = DataParallel(model)
            teacher_model = DataParallel(teacher_model)

        model = model.cuda() 
        teacher_model = teacher_model.cuda()       
       
    optimizer = torch.optim.Adam(model.parameters(), lr=args.lr, weight_decay=0.0005)