Compare commits
6
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fb4e7dcc65 | ||
|
|
c1113379ec | ||
|
|
c5d576f11f | ||
|
|
2dd008d384 | ||
|
|
e14a2374c2 | ||
|
|
8fbd075f92 |
+12
-9
@@ -1,13 +1,16 @@
|
|||||||
nohup python cvae_pyramid.py --name="lhunor_abl_pyr_32_no_curv_r1" > nohup/review/abl_pyr_32_no_curv_r1.out 2>&1 &
|
|
||||||
nohup python auto_encoder_static.py --name="lhunor_ae_static_orig_10p_r1" > nohup/review/static_orig_10p_r1.out 2>&1 &
|
|
||||||
nohup python auto_encoder_body.py --name="lhunor_ae_body_orig_10p_r1" > nohup/review/body_orig_10p_r1.out 2>&1 &
|
|
||||||
nohup python cvae_pyramid.py --name="lhunor_abl_32_64_skirt_no_curv_r1" > nohup/review/abl_pyr_32_64_skirt_no_curv_r1.out 2>&1 &
|
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_abl_pyr_32_no_curv_r1 > nohup/evaluate/abl_pyr_32_no_curv_r1.out 2>&1 &
|
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_abl_32_64_skirt_no_curv_r1 > nohup/evaluate/abl_32_64_skirt_no_curv_r1.out 2>&1 &
|
|
||||||
nohup python calculate_error.py --name error_abl_pyr_32_no_curv_r1 > nohup/error/abl_pyr_32_no_curv_r1.out 2>&1 &
|
|
||||||
nohup python calculate_error.py --name error_pyr_abl_32_64_skirt_no_curv_r1 > nohup/error/pyr_abl_32_64_skirt_no_curv_r1.out 2>&1 &
|
|
||||||
|
|
||||||
one final convolutional layer for smoothing, on the final coordinates
|
one final convolutional layer for smoothing, on the final coordinates
|
||||||
|
nohup python calculate_error.py --name error_al_all_150k > nohup/error/post_al_all_150k.out 2>&1 &
|
||||||
|
nohup python auto_encoder_static.py --name="lhunor_static_iccv_1" > nohup/iccv/encoders/static_iccv_1.out 2>&1 &
|
||||||
|
nohup python auto_encoder_static.py --name="lhunor_static_iccv_1_skirt" > nohup/iccv/encoders/static_iccv_1_skirt.out 2>&1 &
|
||||||
|
nohup python auto_encoder_static.py --name="lhunor_static_iccv_1_cape_f" > nohup/iccv/encoders/static_iccv_1_cape_f.out 2>&1 &
|
||||||
|
nohup python auto_encoder_static.py --name="lhunor_static_iccv_1_cape_m" > nohup/iccv/encoders/static_iccv_1_cape_m.out 2>&1 &
|
||||||
|
nohup python auto_encoder_body.py --name="lhunor_body_iccv_1" > nohup/iccv/encoders/body_iccv_1.out 2>&1 &
|
||||||
|
nohup python auto_encoder_body.py --name="lhunor_body_iccv_1_skirt" > nohup/iccv/encoders/body_iccv_1_skirt.out 2>&1 &
|
||||||
|
nohup python auto_encoder_body.py --name="lhunor_body_iccv_1_skirt" > nohup/iccv/encoders/body_iccv_1_skirt.out 2>&1 &
|
||||||
|
nohup python auto_encoder_curv.py --name="lhunor_curv_iccv_1 " > nohup/iccv/encoders/curv_iccv_1.out 2>&1 &
|
||||||
|
nohup python auto_encoder_curv.py --name="lhunor_curv_iccv_1_skirt" > nohup/iccv/encoders/curv_iccv_1_skirt.out 2>&1 &
|
||||||
|
nohup python auto_encoder_curv.py --name="lhunor_curv_iccv_1_cape_f" > nohup/iccv/encoders/curv_iccv_1_cape_f.out 2>&1 &
|
||||||
|
nohup python cvae.py --name="lhunor_cvae_iccv_gnn_decoder_1" > nohup/iccv/cvae_iccv_gnn_decoder_1.out 2>&1 &
|
||||||
|
|
||||||
skirts!!!!
|
skirts!!!!
|
||||||
pyramid next week
|
pyramid next week
|
||||||
|
|||||||
+21
-9
@@ -1,6 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from configs.config_ae_body import config
|
from configs.iccv.config_ae_body_cape_f import config
|
||||||
os.environ["CUDA_VISIBLE_DEVICES"] = config['gpu']
|
os.environ["CUDA_VISIBLE_DEVICES"] = config['gpu']
|
||||||
|
|
||||||
import tensorflow as tf
|
import tensorflow as tf
|
||||||
@@ -30,11 +30,12 @@ from tf_utils import check_tf_version, allow_memory_growth
|
|||||||
from losses import edge_loss, uv_mask_loss
|
from losses import edge_loss, uv_mask_loss
|
||||||
from dataset import DatasetFactory, StaticDataset
|
from dataset import DatasetFactory, StaticDataset
|
||||||
from custom_utils.custom_utils import batch_to_dict, plot_3d
|
from custom_utils.custom_utils import batch_to_dict, plot_3d
|
||||||
from models.cond_encoder import AutoEncoder
|
from models.cond_encoder import AutoEncoderNew as AutoEncoder
|
||||||
|
from custom_utils.custom_utils import Accumulator
|
||||||
|
|
||||||
|
|
||||||
def init_wandb():
|
def init_wandb():
|
||||||
run = wandb.init(project='ae', name=config['name'], notes=config['notes'], dir='/home/workspace/local-data/temp')
|
run = wandb.init(project='ae', name=config['name'], notes=config['notes'], dir='/tmp', tags=config['tags'])
|
||||||
artifact = wandb.Artifact('code', type='code')
|
artifact = wandb.Artifact('code', type='code')
|
||||||
artifact.add_file('auto_encoder_body.py')
|
artifact.add_file('auto_encoder_body.py')
|
||||||
artifact.add_file('losses.py')
|
artifact.add_file('losses.py')
|
||||||
@@ -44,7 +45,9 @@ def init_wandb():
|
|||||||
artifact.add_file('convnext/models/convnext_tf.py')
|
artifact.add_file('convnext/models/convnext_tf.py')
|
||||||
config_file_names = [key for key in sys.modules.keys() if key.startswith('configs.')]
|
config_file_names = [key for key in sys.modules.keys() if key.startswith('configs.')]
|
||||||
for config_file_name in config_file_names:
|
for config_file_name in config_file_names:
|
||||||
artifact.add_file('/'.join(config_file_name.split('.')) + '.py')
|
file_name = '/'.join(config_file_name.split('.')) + '.py'
|
||||||
|
if os.path.exists(file_name):
|
||||||
|
artifact.add_file(file_name)
|
||||||
run.log_artifact(artifact)
|
run.log_artifact(artifact)
|
||||||
|
|
||||||
uv2mesh = UV2Mesh(res=256, is_smpl_orig=config['is_cape'], is_skirt=config['is_skirt'])
|
uv2mesh = UV2Mesh(res=256, is_smpl_orig=config['is_cape'], is_skirt=config['is_skirt'])
|
||||||
@@ -124,20 +127,26 @@ def train():
|
|||||||
for batch in dataset_train:
|
for batch in dataset_train:
|
||||||
batch = static_dataset_train.expand_batch(batch_to_dict(batch, config['signature_dynamic']))
|
batch = static_dataset_train.expand_batch(batch_to_dict(batch, config['signature_dynamic']))
|
||||||
train_loss = train_step(batch)
|
train_loss = train_step(batch)
|
||||||
|
train_accumulator.update(train_loss)
|
||||||
|
|
||||||
data_valid = valid_iterator.get_next()
|
data_valid = valid_iterator.get_next()
|
||||||
data_valid = static_dataset_valid.expand_batch(batch_to_dict(data_valid, config['signature_dynamic']))
|
data_valid = static_dataset_valid.expand_batch(batch_to_dict(data_valid, config['signature_dynamic']))
|
||||||
valid_loss = valid_step(data_valid)
|
valid_loss = valid_step(data_valid)
|
||||||
|
valid_accumulator.update(valid_loss)
|
||||||
|
|
||||||
to_log = { **train_loss, **valid_loss, **{ 'current_step': step} }
|
if step % 1000 == 0 or (step < 1000 and step % 10 == 0):
|
||||||
if step % 5000 == 0 or (step < 5000 and step % 500 == 0):
|
to_log = dict({ **train_loss, **valid_loss, **{ 'current_step': step } })
|
||||||
|
if step % 5000 == 0 or (step < 5000 and step % 1000 == 0):
|
||||||
train_figs = plot_everything(batch, 'train')
|
train_figs = plot_everything(batch, 'train')
|
||||||
valid_figs = plot_everything(data_valid, 'valid')
|
valid_figs = plot_everything(data_valid, 'valid')
|
||||||
to_log = { **to_log, **train_figs, **valid_figs }
|
to_log = { **to_log, **train_figs, **valid_figs }
|
||||||
if step == 0:
|
if step == 0:
|
||||||
to_log = { **to_log, **{ 'model/summary': wandb.Html(get_summary_html(model)) } }
|
to_log = { **to_log, **{ 'model/summary': wandb.Html(get_summary_html(model)) } }
|
||||||
|
|
||||||
|
|
||||||
wandb.log(to_log, step=step)
|
wandb.log(to_log, step=step)
|
||||||
|
train_accumulator.reset()
|
||||||
|
valid_accumulator.reset()
|
||||||
|
|
||||||
if step % 10000 == 0:
|
if step % 10000 == 0:
|
||||||
manager_enc.save(checkpoint_number=step)
|
manager_enc.save(checkpoint_number=step)
|
||||||
@@ -150,7 +159,6 @@ def train():
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
init_wandb()
|
init_wandb()
|
||||||
allow_memory_growth()
|
|
||||||
parser = argparse.ArgumentParser(description='')
|
parser = argparse.ArgumentParser(description='')
|
||||||
parser.add_argument('--name', type=str)
|
parser.add_argument('--name', type=str)
|
||||||
args = vars(parser.parse_args())
|
args = vars(parser.parse_args())
|
||||||
@@ -171,6 +179,7 @@ if __name__ == '__main__':
|
|||||||
signature=config['signature_dynamic'],
|
signature=config['signature_dynamic'],
|
||||||
resolutions=[config['resolution']],
|
resolutions=[config['resolution']],
|
||||||
in_memory=config['dataset_in_memory'],
|
in_memory=config['dataset_in_memory'],
|
||||||
|
use_no_orient=config['remove_global_orientation'],
|
||||||
frames_file=config['frames_file'] if 'frames_file' in config.keys() else None,
|
frames_file=config['frames_file'] if 'frames_file' in config.keys() else None,
|
||||||
is_cape=config['is_cape'])
|
is_cape=config['is_cape'])
|
||||||
static_dataset_train = StaticDataset(folder=config['train_dir'],
|
static_dataset_train = StaticDataset(folder=config['train_dir'],
|
||||||
@@ -184,6 +193,7 @@ if __name__ == '__main__':
|
|||||||
signature=config['signature_dynamic'],
|
signature=config['signature_dynamic'],
|
||||||
resolutions=[config['resolution']],
|
resolutions=[config['resolution']],
|
||||||
in_memory=config['dataset_in_memory'],
|
in_memory=config['dataset_in_memory'],
|
||||||
|
use_no_orient=config['remove_global_orientation'],
|
||||||
frames_file=config['frames_file_valid'] if 'frames_file_valid' in config.keys() else None,
|
frames_file=config['frames_file_valid'] if 'frames_file_valid' in config.keys() else None,
|
||||||
is_cape=config['is_cape'])
|
is_cape=config['is_cape'])
|
||||||
static_dataset_valid = StaticDataset(folder=config['valid_dir'],
|
static_dataset_valid = StaticDataset(folder=config['valid_dir'],
|
||||||
@@ -194,13 +204,15 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
model = AutoEncoder(config['cond_ae'])
|
model = AutoEncoder(config['cond_ae'])
|
||||||
optimizer = tf.optimizers.Adam(learning_rate=config['lr'])
|
optimizer = tf.optimizers.Adam(learning_rate=config['lr'])
|
||||||
|
train_accumulator = Accumulator()
|
||||||
|
valid_accumulator = Accumulator()
|
||||||
|
|
||||||
# load_model(model.encoder, 'checkpoints/body_1_skirt_2_enc')
|
# load_model(model.encoder, 'checkpoints/body_1_skirt_2_enc')
|
||||||
# load_model(model.decoder, 'checkpoints/body_1_skirt_2_dec')
|
# load_model(model.decoder, 'checkpoints/body_1_skirt_2_dec')
|
||||||
|
|
||||||
ckpt_enc = tf.train.Checkpoint(model=model.encoder)
|
ckpt_enc = tf.train.Checkpoint(model=model.encoder)
|
||||||
manager_enc = tf.train.CheckpointManager(ckpt_enc, 'checkpoints/post/' + config['name'] + '_enc', max_to_keep=20)
|
manager_enc = tf.train.CheckpointManager(ckpt_enc, 'checkpoints/iccv/' + config['name'] + '_enc', max_to_keep=20)
|
||||||
ckpt_dec = tf.train.Checkpoint(model=model.decoder)
|
ckpt_dec = tf.train.Checkpoint(model=model.decoder)
|
||||||
manager_dec = tf.train.CheckpointManager(ckpt_dec, 'checkpoints/post/' + config['name'] + '_dec', max_to_keep=20)
|
manager_dec = tf.train.CheckpointManager(ckpt_dec, 'checkpoints/iccv/' + config['name'] + '_dec', max_to_keep=20)
|
||||||
|
|
||||||
train()
|
train()
|
||||||
+18
-8
@@ -1,6 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from configs.config_ae_curv_post import config
|
from configs.iccv.config_ae_curv_cape_f import config
|
||||||
os.environ["CUDA_VISIBLE_DEVICES"] = config['gpu']
|
os.environ["CUDA_VISIBLE_DEVICES"] = config['gpu']
|
||||||
|
|
||||||
import tensorflow as tf
|
import tensorflow as tf
|
||||||
@@ -32,12 +32,13 @@ from tf_utils import check_tf_version, allow_memory_growth
|
|||||||
from dataset import DatasetFactory, StaticDataset
|
from dataset import DatasetFactory, StaticDataset
|
||||||
from custom_utils.custom_utils import batch_to_dict
|
from custom_utils.custom_utils import batch_to_dict
|
||||||
from models.cond_encoder import AutoEncoderNew as AutoEncoder
|
from models.cond_encoder import AutoEncoderNew as AutoEncoder
|
||||||
|
from custom_utils.custom_utils import Accumulator
|
||||||
|
|
||||||
|
|
||||||
testing = False
|
testing = False
|
||||||
def init_wandb():
|
def init_wandb():
|
||||||
if not testing:
|
if not testing:
|
||||||
run = wandb.init(project='ae', name=config['name'], notes=config['notes'], dir='/home/workspace/local-data/temp/')
|
run = wandb.init(project='ae', name=config['name'], notes=config['notes'], dir='/tmp', tags=config['tags'])
|
||||||
artifact = wandb.Artifact('code', type='code')
|
artifact = wandb.Artifact('code', type='code')
|
||||||
artifact.add_file('auto_encoder_curv.py')
|
artifact.add_file('auto_encoder_curv.py')
|
||||||
artifact.add_file('losses.py')
|
artifact.add_file('losses.py')
|
||||||
@@ -47,7 +48,9 @@ def init_wandb():
|
|||||||
artifact.add_file('convnext/models/convnext_tf.py')
|
artifact.add_file('convnext/models/convnext_tf.py')
|
||||||
config_file_names = [key for key in sys.modules.keys() if key.startswith('configs.')]
|
config_file_names = [key for key in sys.modules.keys() if key.startswith('configs.')]
|
||||||
for config_file_name in config_file_names:
|
for config_file_name in config_file_names:
|
||||||
artifact.add_file('/'.join(config_file_name.split('.')) + '.py')
|
file_name = '/'.join(config_file_name.split('.')) + '.py'
|
||||||
|
if os.path.exists(file_name):
|
||||||
|
artifact.add_file(file_name)
|
||||||
run.log_artifact(artifact)
|
run.log_artifact(artifact)
|
||||||
|
|
||||||
uv2mesh = UV2MeshLabel(res=256, is_skirt=config['is_skirt'], is_smpl_orig=config['is_cape'])
|
uv2mesh = UV2MeshLabel(res=256, is_skirt=config['is_skirt'], is_smpl_orig=config['is_cape'])
|
||||||
@@ -164,21 +167,26 @@ def train():
|
|||||||
batch = static_dataset_train.expand_batch(batch_to_dict(batch, config['signature_dynamic']))
|
batch = static_dataset_train.expand_batch(batch_to_dict(batch, config['signature_dynamic']))
|
||||||
|
|
||||||
train_loss = train_step(batch)
|
train_loss = train_step(batch)
|
||||||
|
train_accumulator.update(train_loss)
|
||||||
|
|
||||||
data_valid = valid_iterator.get_next()
|
data_valid = valid_iterator.get_next()
|
||||||
data_valid = static_dataset_valid.expand_batch(batch_to_dict(data_valid, config['signature_dynamic']))
|
data_valid = static_dataset_valid.expand_batch(batch_to_dict(data_valid, config['signature_dynamic']))
|
||||||
valid_loss = valid_step(data_valid)
|
valid_loss = valid_step(data_valid)
|
||||||
|
valid_accumulator.update(valid_loss)
|
||||||
|
|
||||||
to_log = { **train_loss, **valid_loss }
|
if step % 1000 == 0 or (step < 1000 and step % 10 == 0):
|
||||||
if step % 5000 == 0 or (step < 5000 and step % 500 == 0):
|
to_log = dict({ **train_loss, **valid_loss, **{ 'current_step': step } })
|
||||||
|
if step % 5000 == 0 or (step < 5000 and step % 1000 == 0):
|
||||||
train_figs = plot_everything(batch, 'train')
|
train_figs = plot_everything(batch, 'train')
|
||||||
valid_figs = plot_everything(data_valid, 'valid')
|
valid_figs = plot_everything(data_valid, 'valid')
|
||||||
to_log = { **to_log, **train_figs, **valid_figs }
|
to_log = { **to_log, **train_figs, **valid_figs }
|
||||||
if step == 0:
|
if step == 0:
|
||||||
to_log = { **to_log, **{ 'model/summary': wandb.Html(get_summary_html(model)) } }
|
to_log = { **to_log, **{ 'model/summary': wandb.Html(get_summary_html(model)) } }
|
||||||
|
|
||||||
|
|
||||||
wandb.log(to_log, step=step)
|
wandb.log(to_log, step=step)
|
||||||
print(step)
|
train_accumulator.reset()
|
||||||
|
valid_accumulator.reset()
|
||||||
|
|
||||||
if step % 10000 == 0:
|
if step % 10000 == 0:
|
||||||
manager_enc.save(checkpoint_number=step)
|
manager_enc.save(checkpoint_number=step)
|
||||||
@@ -249,11 +257,13 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
model = AutoEncoder(config['cond_ae'])
|
model = AutoEncoder(config['cond_ae'])
|
||||||
optimizer = tf.optimizers.Adam(learning_rate=config['lr'])
|
optimizer = tf.optimizers.Adam(learning_rate=config['lr'])
|
||||||
|
train_accumulator = Accumulator()
|
||||||
|
valid_accumulator = Accumulator()
|
||||||
|
|
||||||
ckpt_enc = tf.train.Checkpoint(model=model.encoder)
|
ckpt_enc = tf.train.Checkpoint(model=model.encoder)
|
||||||
manager_enc = tf.train.CheckpointManager(ckpt_enc, 'checkpoints/post/' + config['name'] + '_enc', max_to_keep=20)
|
manager_enc = tf.train.CheckpointManager(ckpt_enc, 'checkpoints/iccv/' + config['name'] + '_enc', max_to_keep=20)
|
||||||
ckpt_dec = tf.train.Checkpoint(model=model.decoder)
|
ckpt_dec = tf.train.Checkpoint(model=model.decoder)
|
||||||
manager_dec = tf.train.CheckpointManager(ckpt_dec, 'checkpoints/post/' + config['name'] + '_dec', max_to_keep=20)
|
manager_dec = tf.train.CheckpointManager(ckpt_dec, 'checkpoints/iccv/' + config['name'] + '_dec', max_to_keep=20)
|
||||||
|
|
||||||
if testing:
|
if testing:
|
||||||
test()
|
test()
|
||||||
|
|||||||
+18
-5
@@ -1,6 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from configs.config_ae_static import config
|
from configs.iccv.config_ae_static_cape_m import config
|
||||||
os.environ["CUDA_VISIBLE_DEVICES"] = config['gpu']
|
os.environ["CUDA_VISIBLE_DEVICES"] = config['gpu']
|
||||||
|
|
||||||
import tensorflow as tf
|
import tensorflow as tf
|
||||||
@@ -33,11 +33,12 @@ else:
|
|||||||
from tf_utils import check_tf_version, allow_memory_growth
|
from tf_utils import check_tf_version, allow_memory_growth
|
||||||
from dataset import DatasetFactory, StaticDataset
|
from dataset import DatasetFactory, StaticDataset
|
||||||
from custom_utils.custom_utils import batch_to_dict, plot_3d
|
from custom_utils.custom_utils import batch_to_dict, plot_3d
|
||||||
from models.cond_encoder import AutoEncoder
|
from models.cond_encoder import AutoEncoderNew as AutoEncoder
|
||||||
|
from custom_utils.custom_utils import Accumulator
|
||||||
|
|
||||||
|
|
||||||
def init_wandb():
|
def init_wandb():
|
||||||
run = wandb.init(project='ae', name=config['name'], notes=config['notes'], dir='/home/workspace/local-data/temp')
|
run = wandb.init(project='ae', name=config['name'], notes=config['notes'], dir='/tmp', tags=config['tags'])
|
||||||
artifact = wandb.Artifact('code', type='code')
|
artifact = wandb.Artifact('code', type='code')
|
||||||
artifact.add_file('auto_encoder_static.py')
|
artifact.add_file('auto_encoder_static.py')
|
||||||
artifact.add_file('losses.py')
|
artifact.add_file('losses.py')
|
||||||
@@ -47,7 +48,9 @@ def init_wandb():
|
|||||||
artifact.add_file('convnext/models/convnext_tf.py')
|
artifact.add_file('convnext/models/convnext_tf.py')
|
||||||
config_file_names = [key for key in sys.modules.keys() if key.startswith('configs.')]
|
config_file_names = [key for key in sys.modules.keys() if key.startswith('configs.')]
|
||||||
for config_file_name in config_file_names:
|
for config_file_name in config_file_names:
|
||||||
artifact.add_file('/'.join(config_file_name.split('.')) + '.py')
|
file_name = '/'.join(config_file_name.split('.')) + '.py'
|
||||||
|
if os.path.exists(file_name):
|
||||||
|
artifact.add_file(file_name)
|
||||||
run.log_artifact(artifact)
|
run.log_artifact(artifact)
|
||||||
|
|
||||||
uv2mesh = UV2Mesh(res=256, is_skirt=config['is_skirt'], is_smpl_orig=config['is_cape'])
|
uv2mesh = UV2Mesh(res=256, is_skirt=config['is_skirt'], is_smpl_orig=config['is_cape'])
|
||||||
@@ -125,13 +128,16 @@ def train():
|
|||||||
for batch in dataset_train:
|
for batch in dataset_train:
|
||||||
batch = static_dataset_train.expand_batch(batch_to_dict(batch, config['signature_dynamic']))
|
batch = static_dataset_train.expand_batch(batch_to_dict(batch, config['signature_dynamic']))
|
||||||
train_loss = train_step(batch)
|
train_loss = train_step(batch)
|
||||||
|
train_accumulator.update(train_loss)
|
||||||
|
|
||||||
data_valid = valid_iterator.get_next()
|
data_valid = valid_iterator.get_next()
|
||||||
data_valid = static_dataset_valid.expand_batch(batch_to_dict(data_valid, config['signature_dynamic']))
|
data_valid = static_dataset_valid.expand_batch(batch_to_dict(data_valid, config['signature_dynamic']))
|
||||||
valid_loss = valid_step(data_valid)
|
valid_loss = valid_step(data_valid)
|
||||||
|
valid_accumulator.update(valid_loss)
|
||||||
|
|
||||||
|
if step % 1000 == 0 or (step < 1000 and step % 10 == 0):
|
||||||
to_log = dict({ **train_loss, **valid_loss, **{ 'current_step': step } })
|
to_log = dict({ **train_loss, **valid_loss, **{ 'current_step': step } })
|
||||||
if step % 5000 == 0 or (step < 5000 and step % 500 == 0):
|
if step % 5000 == 0 or (step < 5000 and step % 1000 == 0):
|
||||||
train_figs = plot_everything(batch, 'train')
|
train_figs = plot_everything(batch, 'train')
|
||||||
valid_figs = plot_everything(data_valid, 'valid')
|
valid_figs = plot_everything(data_valid, 'valid')
|
||||||
to_log = { **to_log, **train_figs, **valid_figs }
|
to_log = { **to_log, **train_figs, **valid_figs }
|
||||||
@@ -140,6 +146,8 @@ def train():
|
|||||||
|
|
||||||
|
|
||||||
wandb.log(to_log, step=step)
|
wandb.log(to_log, step=step)
|
||||||
|
train_accumulator.reset()
|
||||||
|
valid_accumulator.reset()
|
||||||
|
|
||||||
if step % 10000 == 0:
|
if step % 10000 == 0:
|
||||||
manager_enc.save(checkpoint_number=step)
|
manager_enc.save(checkpoint_number=step)
|
||||||
@@ -205,6 +213,7 @@ if __name__ == '__main__':
|
|||||||
signature=config['signature_dynamic'],
|
signature=config['signature_dynamic'],
|
||||||
resolutions=[config['resolution']],
|
resolutions=[config['resolution']],
|
||||||
in_memory=config['dataset_in_memory'],
|
in_memory=config['dataset_in_memory'],
|
||||||
|
use_no_orient=config['remove_global_orientation'],
|
||||||
frames_file=config['frames_file'] if 'frames_file' in config.keys() else None,
|
frames_file=config['frames_file'] if 'frames_file' in config.keys() else None,
|
||||||
is_cape=config['is_cape'])
|
is_cape=config['is_cape'])
|
||||||
static_dataset_train = StaticDataset(folder=config['train_dir'],
|
static_dataset_train = StaticDataset(folder=config['train_dir'],
|
||||||
@@ -218,6 +227,7 @@ if __name__ == '__main__':
|
|||||||
signature=config['signature_dynamic'],
|
signature=config['signature_dynamic'],
|
||||||
resolutions=[config['resolution']],
|
resolutions=[config['resolution']],
|
||||||
in_memory=config['dataset_in_memory'],
|
in_memory=config['dataset_in_memory'],
|
||||||
|
use_no_orient=config['remove_global_orientation'],
|
||||||
frames_file=config['frames_file_valid'] if 'frames_file_valid' in config.keys() else None,
|
frames_file=config['frames_file_valid'] if 'frames_file_valid' in config.keys() else None,
|
||||||
is_cape=config['is_cape'])
|
is_cape=config['is_cape'])
|
||||||
static_dataset_valid = StaticDataset(folder=config['valid_dir'],
|
static_dataset_valid = StaticDataset(folder=config['valid_dir'],
|
||||||
@@ -229,6 +239,9 @@ if __name__ == '__main__':
|
|||||||
model : AutoEncoder = AutoEncoder(config['cond_ae'])
|
model : AutoEncoder = AutoEncoder(config['cond_ae'])
|
||||||
optimizer = tf.optimizers.Adam(learning_rate=config['lr'])
|
optimizer = tf.optimizers.Adam(learning_rate=config['lr'])
|
||||||
|
|
||||||
|
train_accumulator = Accumulator()
|
||||||
|
valid_accumulator = Accumulator()
|
||||||
|
|
||||||
if config['pretrained_model'] != '':
|
if config['pretrained_model'] != '':
|
||||||
load_model(model.encoder, config['pretrained_model'] + '_enc')
|
load_model(model.encoder, config['pretrained_model'] + '_enc')
|
||||||
load_model(model.decoder, config['pretrained_model'] + '_dec')
|
load_model(model.decoder, config['pretrained_model'] + '_dec')
|
||||||
|
|||||||
+4
-4
@@ -1,6 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from configs.config_abl_pyr_32_64_skirt_r1 import config
|
from configs.config_abl_all_post import config
|
||||||
|
|
||||||
os.environ["CUDA_VISIBLE_DEVICES"] = config['gpu']
|
os.environ["CUDA_VISIBLE_DEVICES"] = config['gpu']
|
||||||
# import tensorflow as tf
|
# import tensorflow as tf
|
||||||
@@ -59,13 +59,13 @@ if __name__ == '__main__':
|
|||||||
folder = config['test_dir']
|
folder = config['test_dir']
|
||||||
|
|
||||||
checkpoint_name = config['name']
|
checkpoint_name = config['name']
|
||||||
iteration = '50000'
|
iteration = ''
|
||||||
|
|
||||||
F = np.load("custom_utils/smpl_faces" + skirt_modifier + ".npy").astype(np.int32)
|
F = np.load("custom_utils/smpl_faces" + skirt_modifier + ".npy").astype(np.int32)
|
||||||
garment_type_table = np.load('custom_data/garment_type_table_test.npy', allow_pickle=True).item()
|
garment_type_table = np.load('custom_data/garment_type_table_test.npy', allow_pickle=True).item()
|
||||||
|
|
||||||
|
|
||||||
output_folder = '/home/workspace/data/results/' + checkpoint_name + '-' + iteration
|
output_folder = '/home/workspace/data/results/post/' + checkpoint_name + '-' + iteration
|
||||||
|
|
||||||
|
|
||||||
faces_folder = '/home/workspace/data/results/support/faces' + ('_skirt' if config['is_skirt'] else '')
|
faces_folder = '/home/workspace/data/results/support/faces' + ('_skirt' if config['is_skirt'] else '')
|
||||||
@@ -107,7 +107,7 @@ if __name__ == '__main__':
|
|||||||
for key in per_garment_errors.keys():
|
for key in per_garment_errors.keys():
|
||||||
print(key + ': ' + str(np.mean(per_garment_errors[key])))
|
print(key + ': ' + str(np.mean(per_garment_errors[key])))
|
||||||
|
|
||||||
with open('/home/workspace/data/results/errors/' + checkpoint_name + '-' + iteration + '.csv', mode='w') as f:
|
with open('/home/workspace/data/results/errors/post/' + checkpoint_name + '-' + iteration + '.csv', mode='w') as f:
|
||||||
file_writer = csv.writer(f, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
|
file_writer = csv.writer(f, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
|
||||||
|
|
||||||
for key in sorted(errors.keys()):
|
for key in sorted(errors.keys()):
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ config['only_curvatures'] = False
|
|||||||
ablation_count = [config['use_skinning'], config['remove_global_orientation'], config['use_curvature'], config['use_extra_losses'], config['use_offsets']].count(False)
|
ablation_count = [config['use_skinning'], config['remove_global_orientation'], config['use_curvature'], config['use_extra_losses'], config['use_offsets']].count(False)
|
||||||
assert ablation_count == 1 or ablation_count == 0
|
assert ablation_count == 1 or ablation_count == 0
|
||||||
|
|
||||||
config['gpu'] = '1'
|
config['gpu'] = '4'
|
||||||
config['name'] = 'al_all_post'
|
config['name'] = 'al_all_post'
|
||||||
config['notes'] = ''
|
config['notes'] = ''
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
config = dict()
|
config = dict()
|
||||||
|
|
||||||
config['gpu'] = '0'
|
config['gpu'] = '0'
|
||||||
config['name'] = 'pyr_abl_32_r1'
|
config['name'] = 'pyr_abl_32'
|
||||||
config['notes'] = ''
|
config['notes'] = ''
|
||||||
|
|
||||||
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
||||||
@@ -1,9 +1,8 @@
|
|||||||
config = dict()
|
config = dict()
|
||||||
|
|
||||||
config['gpu'] = '4'
|
config['gpu'] = '3'
|
||||||
config['name'] = 'pyr_abl_32_skirt_no_curv_r1'
|
config['name'] = 'pyr_abl_32_skirt_2'
|
||||||
config['notes'] = 'no curv, 10p data'
|
config['notes'] = 'continued from pyr_abl_32_skirt-180k'
|
||||||
config['tags'] = ['review_1']
|
|
||||||
|
|
||||||
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
||||||
# DON'T FORGET TO CHECK MODEL LOADING
|
# DON'T FORGET TO CHECK MODEL LOADING
|
||||||
@@ -19,30 +18,24 @@ config['use_skinning'] = True # and deshaping
|
|||||||
config['remove_global_orientation'] = True
|
config['remove_global_orientation'] = True
|
||||||
config['use_extra_losses'] = True # edge, collision, 3d mesh
|
config['use_extra_losses'] = True # edge, collision, 3d mesh
|
||||||
config['use_offsets'] = False
|
config['use_offsets'] = False
|
||||||
config['use_curvature'] = False
|
|
||||||
|
|
||||||
config['pyramid'] = dict()
|
config['pyramid'] = dict()
|
||||||
config['pyramid']['resolutions'] = [32]
|
config['pyramid']['resolutions'] = [32]
|
||||||
config['pyramid']['pretrained_pyramid'] = ''
|
config['pyramid']['pretrained_pyramid'] = ''
|
||||||
config['pyramid']['final_upscale_enhancer'] = 'checkpoints/32_512_skirt'
|
config['pyramid']['final_upscale_enhancer'] = 'checkpoints/32_512_skirt'
|
||||||
|
|
||||||
config['pretrained_model'] = ''
|
config['train_dir'] = '/home/workspace/local-data/train_skirt'
|
||||||
config['pretrained_model_iteration'] = ''
|
|
||||||
|
|
||||||
config['train_dir'] = '/home/workspace/data/dataset/local-cache/train_skirt'
|
|
||||||
config['valid_dir'] = '/home/workspace/local-data/valid_skirt'
|
config['valid_dir'] = '/home/workspace/local-data/valid_skirt'
|
||||||
config['test_dir'] = '/home/workspace/data/dataset/test_skirt_ready_2'
|
config['test_dir'] = '/home/workspace/data/dataset/test_skirt_ready_2'
|
||||||
config['batch_size'] = 4
|
config['batch_size'] = 4
|
||||||
config['is_skirt'] = True
|
config['is_skirt'] = True
|
||||||
config['is_cape'] = False
|
config['is_cape'] = False
|
||||||
config['frames_file'] = 'frames_skirt_10p.txt'
|
|
||||||
config['frames_file_valid'] = 'frames_skirt_10p.txt'
|
|
||||||
|
|
||||||
config['pyramid']['static_model'] = 'checkpoints/static_1_skirt'
|
config['pyramid']['static_model'] = 'checkpoints/static_1_skirt'
|
||||||
config['pyramid']['body_model'] = 'checkpoints/body_1_skirt_2_2'
|
config['pyramid']['body_model'] = 'checkpoints/body_1_skirt_2_2'
|
||||||
config['pyramid']['curvature_model'] = 'checkpoints/curv_1_skirt'
|
config['pyramid']['curvature_model'] = 'checkpoints/curv_1_skirt'
|
||||||
|
|
||||||
config['dataset_in_memory'] = True
|
config['dataset_in_memory'] = False
|
||||||
config['resolution'] = None
|
config['resolution'] = None
|
||||||
config['latent_dim'] = 128
|
config['latent_dim'] = 128
|
||||||
|
|
||||||
@@ -72,7 +65,6 @@ config['signature_static'] = { 'uv_static': (512, 256, 3),
|
|||||||
config['pyramid']['is_label'] = False
|
config['pyramid']['is_label'] = False
|
||||||
config['pyramid']['latent_dim'] = config['latent_dim']
|
config['pyramid']['latent_dim'] = config['latent_dim']
|
||||||
config['pyramid']['add_noise'] = True
|
config['pyramid']['add_noise'] = True
|
||||||
config['pyramid']['noise_amount'] = 0.001
|
|
||||||
|
|
||||||
config['pyramid']['loss_weights'] = [1,1,1,1,1]
|
config['pyramid']['loss_weights'] = [1,1,1,1,1]
|
||||||
|
|
||||||
@@ -1,9 +1,8 @@
|
|||||||
from configs.config_base import config
|
from configs.config_base import config
|
||||||
|
|
||||||
config['gpu'] = '1'
|
config['gpu'] = '2'
|
||||||
config['lr'] = 0.0001
|
config['lr'] = 0.0001
|
||||||
config['name'] = 'body_orig_10p_r1'
|
config['name'] = 'body_1_skirt_2_2'
|
||||||
config['tags'] = ['review_1']
|
|
||||||
|
|
||||||
config['notes'] = 'convnext + convnext, add dense with tanh at the end of reverse convnext, | \
|
config['notes'] = 'convnext + convnext, add dense with tanh at the end of reverse convnext, | \
|
||||||
flattened bottleneck with 128 latent_dim\ remove global orientation | \
|
flattened bottleneck with 128 latent_dim\ remove global orientation | \
|
||||||
@@ -16,7 +15,7 @@ config['notes'] = 'convnext + convnext, add dense with tanh at the end of revers
|
|||||||
continued from body_1_skirt_2 | \
|
continued from body_1_skirt_2 | \
|
||||||
'
|
'
|
||||||
|
|
||||||
config['dataset_in_memory'] = True
|
config['dataset_in_memory'] = False
|
||||||
config['batch_size'] = 32
|
config['batch_size'] = 32
|
||||||
|
|
||||||
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
||||||
@@ -5,19 +5,17 @@ config['batch_size'] = 4
|
|||||||
# config['train_dir'] = '/home/workspace/local-data/cape_processed/train/female'
|
# config['train_dir'] = '/home/workspace/local-data/cape_processed/train/female'
|
||||||
# config['valid_dir'] = '/home/workspace/local-data/cape_processed/test/female'
|
# config['valid_dir'] = '/home/workspace/local-data/cape_processed/test/female'
|
||||||
# config['test_dir'] = '/home/workspace/local-data/cape_processed/test/female'
|
# config['test_dir'] = '/home/workspace/local-data/cape_processed/test/female'
|
||||||
config['train_dir'] = '/home/workspace/data/dataset/local-cache/train_skirt'
|
config['train_dir'] = '/home/workspace/local-data/train'
|
||||||
config['valid_dir'] = '/home/workspace/local-data/valid_skirt'
|
config['valid_dir'] = '/home/workspace/local-data/valid'
|
||||||
config['test_dir'] = '/home/workspace/data/dataset/test_ready_skirt_2'
|
config['test_dir'] = '/home/workspace/data/dataset/test_ready'
|
||||||
# config['train_dir'] = '/home/workspace/local-data/train_skirt'
|
# config['train_dir'] = '/home/workspace/local-data/train_skirt'
|
||||||
# config['valid_dir'] = '/home/workspace/local-data/valid_skirt'
|
# config['valid_dir'] = '/home/workspace/local-data/valid_skirt'
|
||||||
# config['test_dir'] = '/home/workspace/local-data/test_skirt_ready'
|
# config['test_dir'] = '/home/workspace/local-data/test_skirt_ready'
|
||||||
config['use_filled'] = False
|
config['use_filled'] = False
|
||||||
config['resolution'] = 512
|
config['resolution'] = 512
|
||||||
config['is_skirt'] = False
|
config['is_skirt'] = False
|
||||||
config['dataset_in_memory'] = True
|
config['dataset_in_memory'] = False
|
||||||
config['is_cape'] = False
|
config['is_cape'] = False
|
||||||
config['frames_file'] = 'frames_skirt_10p.txt'
|
|
||||||
config['frames_file_valid'] = 'frames_skirt_10p.txt'
|
|
||||||
|
|
||||||
config['smpl_res'] = 14475
|
config['smpl_res'] = 14475
|
||||||
if config['is_cape']:
|
if config['is_cape']:
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user