From 05fc297808de14b7e3990098f363f20b226fb47b Mon Sep 17 00:00:00 2001 From: Hunor Laczko Date: Sat, 1 Jul 2023 10:57:55 +0200 Subject: [PATCH] update cape norm training --- configs/iccvw/ae_norm_cape_f.py | 73 ++++++++++++++++++++++++++++++++ configs/iccvw/ae_norm_cape_m.py | 74 +++++++++++++++++++++++++++++++++ scripts/ae_norm_train.py | 8 ++-- 3 files changed, 152 insertions(+), 3 deletions(-) create mode 100644 configs/iccvw/ae_norm_cape_f.py create mode 100644 configs/iccvw/ae_norm_cape_m.py diff --git a/configs/iccvw/ae_norm_cape_f.py b/configs/iccvw/ae_norm_cape_f.py new file mode 100644 index 0000000..8cca13c --- /dev/null +++ b/configs/iccvw/ae_norm_cape_f.py @@ -0,0 +1,73 @@ +from utils.convnext_utils import CNBlockConfig + +config = dict() + +config['gpu'] = '6' +config['name'] = 'norm_iccvw_cape_f' +config['notes'] = ' ' +config['tags'] = ['torch', 'norm'] +config['script'] = 'scripts/ae_norm_train.py' + +config['pretrained_model'] = '' + +config['batch_size'] = 4 +config['train_dir'] = '/data-local/127_2/cape_processed/train/female' +config['valid_dir'] = '/data-local/127_2/cape_processed/test/female' +config['test_dir'] = '/data-local/127_2/cape_processed/test/female' +config['train_frames'] = None +config['valid_frames'] = None + +config['resolution'] = 512 +config['is_skirt'] = False +config['dataset_in_memory'] = False +config['is_cape'] = True +config['remove_global_orientation'] = True +config['device'] = 'cuda' + +config['smpl_res'] = 14475 +if config['is_cape']: + config['smpl_res'] = 3638 + +config['latent_dim'] = 128 + +config['bottleneck_scale'] = 2 + +config['cond_ae'] = dict() +config['cond_ae']['device'] = config['device'] +config['cond_ae']['is_label'] = False +config['cond_ae']['latent_dim'] = config['latent_dim'] +config['cond_ae']['kernel_size'] = 7 +config['cond_ae']['bottleneck_size'] = 40 * config['bottleneck_scale'] + +block_setting = [ + CNBlockConfig(16, 32, 3), + CNBlockConfig(32, 64, 3), + CNBlockConfig(64, 128, 9), + CNBlockConfig(128, config['cond_ae']['bottleneck_size'], 9), + CNBlockConfig(config['cond_ae']['bottleneck_size'], None, 3), +] + +block_setting_reverse = [ + CNBlockConfig(config['cond_ae']['bottleneck_size'], 128, 3), + CNBlockConfig(128, 64, 9), + CNBlockConfig(64, 32, 9), + CNBlockConfig(32, 16, 3), + CNBlockConfig(16, 3, 3), + # CNBlockConfig(3, 3, 3), +] + +config['cond_ae']['encoder_block_settings'] = block_setting +config['cond_ae']['decoder_block_settings'] = block_setting_reverse +config['cond_ae']['activation'] = 'tanh' + + +config['lr'] = 0.0001 +config['cond_ae']['upscale_output'] = False + +config['signature'] = { 'id', + 'frame_nr', + 'uv_mask', + 'uv_normals', + 'mesh_mask', + 'mesh_normals', + } \ No newline at end of file diff --git a/configs/iccvw/ae_norm_cape_m.py b/configs/iccvw/ae_norm_cape_m.py new file mode 100644 index 0000000..0deb82e --- /dev/null +++ b/configs/iccvw/ae_norm_cape_m.py @@ -0,0 +1,74 @@ +from utils.convnext_utils import CNBlockConfig + +config = dict() + +config['gpu'] = '6' +config['name'] = 'norm_iccvw_cape_m' +config['notes'] = ' ' +config['tags'] = ['torch', 'norm'] +config['script'] = 'scripts/ae_norm_train.py' + +config['pretrained_model'] = '' + +config['batch_size'] = 4 +config['train_dir'] = '/data-local/127_2/cape_processed/train/male' +config['valid_dir'] = '/data-local/127_2/cape_processed/test/male' +config['test_dir'] = '/data-local/127_2/cape_processed/test/male' +config['train_frames'] = None +config['valid_frames'] = None + +config['resolution'] = 512 +config['is_skirt'] = False +config['dataset_in_memory'] = False +config['is_cape'] = True +config['remove_global_orientation'] = True +config['device'] = 'cuda' + + +config['smpl_res'] = 14475 +if config['is_cape']: + config['smpl_res'] = 3638 + +config['latent_dim'] = 128 + +config['bottleneck_scale'] = 2 + +config['cond_ae'] = dict() +config['cond_ae']['device'] = config['device'] +config['cond_ae']['is_label'] = False +config['cond_ae']['latent_dim'] = config['latent_dim'] +config['cond_ae']['kernel_size'] = 7 +config['cond_ae']['bottleneck_size'] = 40 * config['bottleneck_scale'] + +block_setting = [ + CNBlockConfig(16, 32, 3), + CNBlockConfig(32, 64, 3), + CNBlockConfig(64, 128, 9), + CNBlockConfig(128, config['cond_ae']['bottleneck_size'], 9), + CNBlockConfig(config['cond_ae']['bottleneck_size'], None, 3), +] + +block_setting_reverse = [ + CNBlockConfig(config['cond_ae']['bottleneck_size'], 128, 3), + CNBlockConfig(128, 64, 9), + CNBlockConfig(64, 32, 9), + CNBlockConfig(32, 16, 3), + CNBlockConfig(16, 3, 3), + # CNBlockConfig(3, 3, 3), +] + +config['cond_ae']['encoder_block_settings'] = block_setting +config['cond_ae']['decoder_block_settings'] = block_setting_reverse +config['cond_ae']['activation'] = 'tanh' + + +config['lr'] = 0.0001 +config['cond_ae']['upscale_output'] = False + +config['signature'] = { 'id', + 'frame_nr', + 'uv_mask', + 'uv_normals', + 'mesh_mask', + 'mesh_normals', + } \ No newline at end of file diff --git a/scripts/ae_norm_train.py b/scripts/ae_norm_train.py index 5a0b438..597e662 100644 --- a/scripts/ae_norm_train.py +++ b/scripts/ae_norm_train.py @@ -11,10 +11,12 @@ parser.add_argument('--config', type=str) parser.add_argument('--debug', action='store_true') args = vars(parser.parse_args()) -config_module = importlib.import_module(args['config']) -config = config_module.config if args['debug']: - from configs.ae_norm_1 import config + from configs.iccvw.ae_norm_cape_m import config +else: + config_module = importlib.import_module(args['config']) + config = config_module.config + os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID" os.environ["CUDA_VISIBLE_DEVICES"] = config['gpu'] if args['debug']: