def __init__(self, config):
        import aimaker.models.model_factory as mf
        import aimaker.loss.loss_factory as lf
        import aimaker.optimizers.optimizer_factory as of

        self.config = config
        self.ch = ch = util.ConfigHandler(config)
        self.gpu_ids = ch.get_GPU_ID()
        self.checkpoints_dir = ch.get_check_points_dir()
        self.pool = util.ImagePool(
            int(ch.settings['controller']['voxcelFlow']['imagePoolSize']))

        self.lambda_1 = float(config['controller']['voxcelFlow']['lambda1'])
        self.lambda_2 = float(config['controller']['voxcelFlow']['lambda2'])

        model_factory = mf.ModelFactory(config)
        loss_factory = lf.LossFactory(config)
        optimizer_factory = of.OptimizerFactory(config)

        name = config['controller']['voxcelFlow']['generatorModel']
        self.generator = model_factory.create(name)
        self.generator_criterion  = loss_factory.create(\
                                       config['controller']['voxcelFlow']['generatorCriterion'])

        if len(self.gpu_ids):
            self.generator = self.generator.cuda(self.gpu_ids[0])

        if config['data']['isTrain']:
            name = config['controller']['voxcelFlow']['discriminatorModel']
            self.discriminator = model_factory.create(name)
            if len(self.gpu_ids):
                self.discriminator = self.discriminator.cuda(self.gpu_ids[0])

        self.loadModels()

        if config['data']['isTrain']:

            self.discriminator_criterion = loss_factory.create(\
                                               config['controller']['voxcelFlow']\
                                                     ['discriminatorCriterion'])
            if len(self.gpu_ids):
                self.generator_criterion = self.generator_criterion.cuda(
                    self.gpu_ids[0])
                self.discriminator_criterion = self.discriminator_criterion.cuda(
                    self.gpu_ids[0])

            self.generator_optimizer     = optimizer_factory.create(\
                                               config['controller']['voxcelFlow']['generatorOptimizer'])\
                                               (self.generator.parameters(), config)
            self.discriminator_optimizer = optimizer_factory.create(config['controller']['voxcelFlow']['discriminatorOptimizer'])\
                                               (self.discriminator.parameters(), config)

        if config['ui settings']['isShowModelInfo']:
            self.showModel()
Пример #2
0
    def __init__(self, settings: EasyDict):
        import aimaker.models.model_factory as mf
        import aimaker.loss.loss_factory as lf
        import aimaker.optimizers.optimizer_factory as of

        self.settings = settings
        ch = util.ConfigHandler(settings)
        self.gpu_ids = ch.get_GPU_ID()
        self.checkpoints_dir = ch.get_check_points_dir()
        self.pool = util.ImagePool(
            int(ch.settings['annotation']['imagePoolSize']))

        model_factory = mf.ModelFactory(settings)
        loss_factory = lf.LossFactory(settings)
        optimizer_factory = of.OptimizerFactory(settings)

        name = settings['annotation']['generatorModel']

        self.downsampler = nn.AvgPool2d(8)
        self.upsampler = nn.Upsample(scale_factor=8)

        if not self.load_models():
            self.generator = model_factory.create(name)
            if settings['dataset'].getboolean('isTrain'):
                name = settings['annotation']['discriminatorModel']
                self.discriminator = model_factory.create(name)

        self.generator_criterion = loss_factory \
            .create(settings['annotation']['generatorCriterion'])

        if len(self.gpu_ids):
            self.generator = self.generator.cuda(self.gpu_ids[0])

        if settings['dataset'].getboolean('isTrain'):
            if len(self.gpu_ids):
                self.discriminator = self.discriminator.cuda(self.gpu_ids[0])

            self.discriminator_criterion = loss_factory.create(
                settings['annotation']['discriminatorCriterion'])
            if len(self.gpu_ids):
                self.generator_criterion = self.generator_criterion.cuda(
                    self.gpu_ids[0])
                self.discriminator_criterion = self.discriminator_criterion.cuda(
                    self.gpu_ids[0])

            self.generator_optimizer = optimizer_factory.create( \
                settings['annotation']['generatorOptimizer']) \
                (self.generator.parameters(), settings)
            self.discriminator_optimizer = optimizer_factory.create(settings['annotation']['discriminatorOptimizer']) \
                (self.discriminator.parameters(), settings)

        if settings['ui'].getboolean('isShowModelInfo'):
            self.show_model()
Пример #3
0
    def __init__(self, setting):
        import aimaker.models.model_factory as mf
        import aimaker.loss.loss_factory as lf
        import aimaker.optimizers.optimizer_factory as of

        self.setting = setting
        ch = util.SettingHandler(setting)
        self.gpu_ids = ch.get_GPU_ID()
        self.sheckpoints_dir = ch.get_check_points_dir()
        self.pool = util.ImagePool(
            int(ch.setting['controllers']['pix2pix']['imagePoolSize']))

        model_factory = mf.ModelFactory(setting)
        loss_factory = lf.LossFactory(setting)
        optimizer_factory = of.OptimizerFactory(setting)

        name = setting['controllers']['pix2pix']['generatorModel']
        self.is_feature = setting['controllers']['pix2pix']['isFeature']

        if not self.loadModels():
            self.generator = model_factory.create(name)
            if setting['data']['base']['isTrain']:
                name = setting['controllers']['pix2pix']['discriminatorModel']
                self.discriminator = model_factory.create(name)

        self.generator_criterion  = loss_factory\
                                        .create(setting['controllers']['pix2pix']['generatorCriterion'])

        if len(self.gpu_ids):
            self.generator = self.generator.to(self.gpu_ids[1])

        if setting['data']['base']['isTrain']:
            if len(self.gpu_ids):
                self.discriminator = self.discriminator.to(self.gpu_ids[0])

            self.discriminator_criterion = loss_factory.create(
                setting['controllers']['pix2pix']['discriminatorCriterion'])
            if len(self.gpu_ids):
                self.generator_criterion = self.generator_criterion.to(
                    self.gpu_ids[1])
                self.discriminator_criterion = self.discriminator_criterion.to(
                    self.gpu_ids[1])

            self.feature_criterion = loss_factory.create('TF')

            self.generator_optimizer     = optimizer_factory.create(\
                                               setting['controllers']['pix2pix']['generatorOptimizer'])\
                                               (self.generator.parameters(), setting)
            self.discriminator_optimizer = optimizer_factory.create(setting['controllers']['pix2pix']['discriminatorOptimizer'])\
                                               (self.discriminator.parameters(), setting)

        if setting['ui']['base']['isShowModelInfo']:
            self.showModel()