Compare commits
9
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c356ab18f3 | ||
|
|
8e56870a07 | ||
|
|
10c6dd32eb | ||
|
|
664b59c452 | ||
|
|
6c6d379d12 | ||
|
|
930668611f | ||
|
|
af336370d4 | ||
|
|
0543657e4e | ||
|
|
8c0436cea8 |
+16
-12
@@ -1,16 +1,20 @@
|
|||||||
|
nohup python cvae.py --name="lhunor_abl_all_10p_curv_10_r2" > nohup/review/abl_all_10p_curv_10_r2.out 2>&1 &
|
||||||
|
nohup python auto_encoder_curv.py --name="lhunor_ae_curv_1_orig_curv_10_10p_r2" > nohup/review/curv_1_orig_curv_10_10p_r2.out 2>&1 &
|
||||||
|
nohup python auto_encoder_curv.py --name="lhunor_ae_curv_1_orig_curv_25_10p_r2" > nohup/review/curv_1_orig_curv_25_10p_r2.out 2>&1 &
|
||||||
|
nohup python auto_encoder_curv.py --name="lhunor_ae_curv_1_orig_curv_100_10p_r2_2" > nohup/review/curv_1_orig_curv_100_10p_r2_2.out 2>&1 &
|
||||||
|
nohup python cvae.py --name="lhunor_abl_all_10p_curv_10_r2" > nohup/review/abl_all_10p_curv_10_r2.out 2>&1 &
|
||||||
|
nohup python cvae.py --name="lhunor_abl_all_10p_curv_25_r2" > nohup/review/abl_all_10p_curv_25_r2.out 2>&1 &
|
||||||
|
nohup python cvae.py --name="lhunor_abl_all_10p_curv_100_r2" > nohup/review/abl_all_10p_curv_100_r2.out 2>&1 &
|
||||||
|
nohup python evaluate_ae.py --name="lhunor_abl_all_10p_curv_100_r2" > nohup/evaluate/lhunor_abl_all_10p_curv_100_r2.out 2>&1 &
|
||||||
|
nohup python evaluate_ae.py --name="lhunor_abl_all_10p_curv_10_r2" > nohup/evaluate/lhunor_abl_all_10p_curv_10_r2.out 2>&1 &
|
||||||
|
nohup python evaluate_ae.py --name="lhunor_abl_all_10p_curv_25_r2" > nohup/evaluate/lhunor_abl_all_10p_curv_25_r2.out 2>&1 &
|
||||||
|
nohup python calculate_error.py --name="lhunor_abl_all_10p_curv_100_r2" > nohup/error/abl_all_10p_curv_100_r2.out 2>&1 &
|
||||||
|
nohup python calculate_error.py --name="lhunor_abl_all_10p_curv_10_r2" > nohup/error/abl_all_10p_curv_10_r2.out 2>&1 &
|
||||||
|
nohup python calculate_error.py --name="lhunor_abl_all_10p_curv_25_r2" > nohup/error/abl_all_10p_curv_25_r2.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
|
||||||
|
|||||||
+8
-18
@@ -1,6 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from configs.iccv.config_ae_body_cape_f import config
|
from configs.config_ae_body_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
|
||||||
@@ -31,11 +31,10 @@ 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 AutoEncoderNew as 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='/tmp', tags=config['tags'])
|
run = wandb.init(project='ae', name=config['name'], notes=config['notes'], dir='/home/workspace/local-data/temp')
|
||||||
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')
|
||||||
@@ -45,9 +44,7 @@ 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:
|
||||||
file_name = '/'.join(config_file_name.split('.')) + '.py'
|
artifact.add_file('/'.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'])
|
||||||
@@ -127,26 +124,20 @@ 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 = { **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 }
|
||||||
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)
|
||||||
@@ -159,6 +150,7 @@ 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())
|
||||||
@@ -204,15 +196,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()
|
|
||||||
|
|
||||||
# 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/iccv/' + config['name'] + '_enc', max_to_keep=20)
|
manager_enc = tf.train.CheckpointManager(ckpt_enc, 'checkpoints/post/' + 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/iccv/' + config['name'] + '_dec', max_to_keep=20)
|
manager_dec = tf.train.CheckpointManager(ckpt_dec, 'checkpoints/post/' + config['name'] + '_dec', max_to_keep=20)
|
||||||
|
|
||||||
train()
|
train()
|
||||||
+61
-40
@@ -1,6 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from configs.iccv.config_ae_curv_cape_f import config
|
from configs.config_ae_curv_1_orig_curv_10_10p_r2_2 import config
|
||||||
os.environ["CUDA_VISIBLE_DEVICES"] = config['gpu']
|
os.environ["CUDA_VISIBLE_DEVICES"] = config['gpu']
|
||||||
|
|
||||||
import tensorflow as tf
|
import tensorflow as tf
|
||||||
@@ -31,14 +31,13 @@ import plotly.express as ex
|
|||||||
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
|
from custom_utils.custom_utils import batch_to_dict
|
||||||
from models.cond_encoder import AutoEncoderNew as AutoEncoder
|
from models.cond_encoder import 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='/tmp', tags=config['tags'])
|
run = wandb.init(project='ae', name=config['name'], notes=config['notes'], dir='/home/workspace/local-data/temp/', 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')
|
||||||
@@ -102,43 +101,70 @@ def dice_dense(prediction, ground_truth, weight_map=None):
|
|||||||
def train_step(batch):
|
def train_step(batch):
|
||||||
with tf.GradientTape() as tape:
|
with tf.GradientTape() as tape:
|
||||||
pred = model([batch['uv_curvature'], batch['uv_mask']], training=True)
|
pred = model([batch['uv_curvature'], batch['uv_mask']], training=True)
|
||||||
|
|
||||||
ce_uv_loss = scce(tf.math.argmax(batch['uv_curvature'], axis=-1), pred)
|
ce_uv_loss = scce(tf.math.argmax(batch['uv_curvature'], axis=-1), pred)
|
||||||
ms_ssim = tf.reduce_mean(tf.image.ssim(pred, batch['uv_curvature'], max_val=1))
|
ms_ssim = tf.reduce_mean(tf.image.ssim(pred, batch['uv_curvature'], max_val=1))
|
||||||
|
loss = ce_uv_loss
|
||||||
mesh_pred = uv2mesh(pred) * batch['mesh_mask'][:,:,tf.newaxis]
|
pred_mesh = tf.math.argmax(uv2mesh(pred), axis=-1)
|
||||||
mesh_orig = tf.cast(uv2mesh(tf.math.argmax(batch['uv_curvature'], axis=-1, output_type=tf.int32)), tf.float32) * batch['mesh_mask']
|
|
||||||
ce_mesh_loss = scce(mesh_orig, mesh_pred)
|
|
||||||
|
|
||||||
loss = ce_uv_loss + ce_mesh_loss
|
|
||||||
|
|
||||||
mean_iou = get_mean_iou(tf.math.argmax(batch['uv_curvature'], axis=-1), tf.math.argmax(pred, axis=-1))
|
mean_iou = get_mean_iou(tf.math.argmax(batch['uv_curvature'], axis=-1), tf.math.argmax(pred, axis=-1))
|
||||||
|
mean_iou_mesh = get_mean_iou(tf.cast(batch['mesh_curvature'], tf.float32) * batch['mesh_mask'], tf.cast(pred_mesh, tf.float32) * batch['mesh_mask'])
|
||||||
dice = dice_dense(pred, batch['uv_curvature'])
|
dice = dice_dense(pred, batch['uv_curvature'])
|
||||||
|
|
||||||
gradients = tape.gradient(loss, model.trainable_variables)
|
gradients = tape.gradient(loss, model.trainable_variables)
|
||||||
optimizer.apply_gradients(zip(gradients, model.trainable_variables))
|
optimizer.apply_gradients(zip(gradients, model.trainable_variables))
|
||||||
return { 'train/loss': loss, 'train/ce_uv_loss': ce_uv_loss, 'train/ssim': ms_ssim, 'train/mean_iou': mean_iou,
|
return { 'train/loss': loss, 'train/ce_uv_loss': ce_uv_loss, 'train/ssim': ms_ssim, 'train/mean_iou': mean_iou, 'train/mean_iou_mesh': mean_iou_mesh, 'train/dice': dice }
|
||||||
'train/dice': dice, 'train/ce_mesh_loss': ce_mesh_loss }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@tf.function
|
@tf.function
|
||||||
def valid_step(batch):
|
def valid_step(batch):
|
||||||
pred = model([batch['uv_curvature'], batch['uv_mask']], training=False)
|
pred = model([batch['uv_curvature'], batch['uv_mask']], training=False)
|
||||||
|
|
||||||
ce_uv_loss = scce(tf.math.argmax(batch['uv_curvature'], axis=-1), pred)
|
ce_uv_loss = scce(tf.math.argmax(batch['uv_curvature'], axis=-1), pred)
|
||||||
ms_ssim = tf.reduce_mean(tf.image.ssim(pred, batch['uv_curvature'], max_val=1))
|
ms_ssim = tf.reduce_mean(tf.image.ssim(pred, batch['uv_curvature'], max_val=1))
|
||||||
|
loss = ce_uv_loss
|
||||||
mesh_pred = uv2mesh(pred) * batch['mesh_mask'][:,:,tf.newaxis]
|
pred_mesh = tf.math.argmax(uv2mesh(pred), axis=-1)
|
||||||
mesh_orig = tf.cast(uv2mesh(tf.math.argmax(batch['uv_curvature'], axis=-1, output_type=tf.int32)), tf.float32) * batch['mesh_mask']
|
|
||||||
ce_mesh_loss = scce(mesh_orig, mesh_pred)
|
|
||||||
loss = ce_uv_loss + ce_mesh_loss
|
|
||||||
|
|
||||||
mean_iou = get_mean_iou(tf.math.argmax(batch['uv_curvature'], axis=-1), tf.math.argmax(pred, axis=-1))
|
mean_iou = get_mean_iou(tf.math.argmax(batch['uv_curvature'], axis=-1), tf.math.argmax(pred, axis=-1))
|
||||||
|
mean_iou_mesh = get_mean_iou(tf.cast(batch['mesh_curvature'], tf.float32) * batch['mesh_mask'], tf.cast(pred_mesh, tf.float32) * batch['mesh_mask'])
|
||||||
dice = dice_dense(pred, batch['uv_curvature'])
|
dice = dice_dense(pred, batch['uv_curvature'])
|
||||||
|
return { 'valid/loss': loss, 'valid/ce_uv_loss': ce_uv_loss, 'valid/ssim': ms_ssim, 'valid/mean_iou': mean_iou, 'valid/mean_iou_mesh': mean_iou_mesh, 'valid/dice': dice }
|
||||||
|
|
||||||
return { 'valid/loss': loss, 'valid/ce_uv_loss': ce_uv_loss, 'valid/ssim': ms_ssim, 'valid/mean_iou': mean_iou,
|
# def train_step(batch):
|
||||||
'valid/dice': dice, 'valid/ce_mesh_loss': ce_mesh_loss }
|
# with tf.GradientTape() as tape:
|
||||||
|
# pred = model([batch['uv_curvature'], batch['uv_mask']], training=True)
|
||||||
|
|
||||||
|
# ce_uv_loss = scce(tf.math.argmax(batch['uv_curvature'], axis=-1), pred)
|
||||||
|
# ms_ssim = tf.reduce_mean(tf.image.ssim(pred, batch['uv_curvature'], max_val=1))
|
||||||
|
|
||||||
|
# mesh_pred = uv2mesh(pred) * batch['mesh_mask'][:,:,tf.newaxis]
|
||||||
|
# mesh_orig = tf.cast(uv2mesh(tf.math.argmax(batch['uv_curvature'], axis=-1, output_type=tf.int32)), tf.float32) * batch['mesh_mask']
|
||||||
|
# ce_mesh_loss = scce(mesh_orig, mesh_pred)
|
||||||
|
|
||||||
|
# loss = ce_uv_loss + ce_mesh_loss
|
||||||
|
|
||||||
|
# mean_iou = get_mean_iou(tf.math.argmax(batch['uv_curvature'], axis=-1), tf.math.argmax(pred, axis=-1))
|
||||||
|
# dice = dice_dense(pred, batch['uv_curvature'])
|
||||||
|
|
||||||
|
# gradients = tape.gradient(loss, model.trainable_variables)
|
||||||
|
# optimizer.apply_gradients(zip(gradients, model.trainable_variables))
|
||||||
|
# return { 'train/loss': loss, 'train/ce_uv_loss': ce_uv_loss, 'train/ssim': ms_ssim, 'train/mean_iou': mean_iou,
|
||||||
|
# 'train/dice': dice, 'train/ce_mesh_loss': ce_mesh_loss }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# @tf.function
|
||||||
|
# def valid_step(batch):
|
||||||
|
# pred = model([batch['uv_curvature'], batch['uv_mask']], training=False)
|
||||||
|
|
||||||
|
# ce_uv_loss = scce(tf.math.argmax(batch['uv_curvature'], axis=-1), pred)
|
||||||
|
# ms_ssim = tf.reduce_mean(tf.image.ssim(pred, batch['uv_curvature'], max_val=1))
|
||||||
|
|
||||||
|
# mesh_pred = uv2mesh(pred) * batch['mesh_mask'][:,:,tf.newaxis]
|
||||||
|
# mesh_orig = tf.cast(uv2mesh(tf.math.argmax(batch['uv_curvature'], axis=-1, output_type=tf.int32)), tf.float32) * batch['mesh_mask']
|
||||||
|
# ce_mesh_loss = scce(mesh_orig, mesh_pred)
|
||||||
|
# loss = ce_uv_loss + ce_mesh_loss
|
||||||
|
|
||||||
|
# mean_iou = get_mean_iou(tf.math.argmax(batch['uv_curvature'], axis=-1), tf.math.argmax(pred, axis=-1))
|
||||||
|
# dice = dice_dense(pred, batch['uv_curvature'])
|
||||||
|
|
||||||
|
# return { 'valid/loss': loss, 'valid/ce_uv_loss': ce_uv_loss, 'valid/ssim': ms_ssim, 'valid/mean_iou': mean_iou,
|
||||||
|
# 'valid/dice': dice, 'valid/ce_mesh_loss': ce_mesh_loss }
|
||||||
|
|
||||||
|
|
||||||
def plot_everything(batch: dict, type: str):
|
def plot_everything(batch: dict, type: str):
|
||||||
@@ -167,26 +193,21 @@ 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)
|
|
||||||
|
|
||||||
if step % 1000 == 0 or (step < 1000 and step % 10 == 0):
|
to_log = { **train_loss, **valid_loss }
|
||||||
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 }
|
||||||
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()
|
print(step)
|
||||||
valid_accumulator.reset()
|
|
||||||
|
|
||||||
if step % 10000 == 0:
|
if step % 10000 == 0:
|
||||||
manager_enc.save(checkpoint_number=step)
|
manager_enc.save(checkpoint_number=step)
|
||||||
@@ -214,7 +235,7 @@ def test():
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
init_wandb()
|
init_wandb()
|
||||||
allow_memory_growth()
|
# 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())
|
||||||
@@ -234,7 +255,8 @@ if __name__ == '__main__':
|
|||||||
in_memory=config['dataset_in_memory'],
|
in_memory=config['dataset_in_memory'],
|
||||||
use_no_orient=config['remove_global_orientation'],
|
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'],
|
||||||
|
curv_neighbourhood=config['curv_neighbourhood'])
|
||||||
static_dataset_train = StaticDataset(folder=config['train_dir'],
|
static_dataset_train = StaticDataset(folder=config['train_dir'],
|
||||||
signature=config['signature_static'],
|
signature=config['signature_static'],
|
||||||
resolutions=[config['resolution']],
|
resolutions=[config['resolution']],
|
||||||
@@ -248,7 +270,8 @@ if __name__ == '__main__':
|
|||||||
in_memory=config['dataset_in_memory'],
|
in_memory=config['dataset_in_memory'],
|
||||||
use_no_orient=config['remove_global_orientation'],
|
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'],
|
||||||
|
curv_neighbourhood=config['curv_neighbourhood'])
|
||||||
static_dataset_valid = StaticDataset(folder=config['valid_dir'],
|
static_dataset_valid = StaticDataset(folder=config['valid_dir'],
|
||||||
signature=config['signature_static'],
|
signature=config['signature_static'],
|
||||||
resolutions=[config['resolution']],
|
resolutions=[config['resolution']],
|
||||||
@@ -257,13 +280,11 @@ 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/iccv/' + config['name'] + '_enc', max_to_keep=20)
|
manager_enc = tf.train.CheckpointManager(ckpt_enc, 'checkpoints/post/' + 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/iccv/' + config['name'] + '_dec', max_to_keep=20)
|
manager_dec = tf.train.CheckpointManager(ckpt_dec, 'checkpoints/post/' + config['name'] + '_dec', max_to_keep=20)
|
||||||
|
|
||||||
if testing:
|
if testing:
|
||||||
test()
|
test()
|
||||||
|
|||||||
+4
-15
@@ -1,6 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from configs.iccv.config_ae_static_cape_m import config
|
from configs.config_ae_static import config
|
||||||
os.environ["CUDA_VISIBLE_DEVICES"] = config['gpu']
|
os.environ["CUDA_VISIBLE_DEVICES"] = config['gpu']
|
||||||
|
|
||||||
import tensorflow as tf
|
import tensorflow as tf
|
||||||
@@ -34,11 +34,10 @@ 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 AutoEncoderNew as 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='/tmp', tags=config['tags'])
|
run = wandb.init(project='ae', name=config['name'], notes=config['notes'], dir='/home/workspace/local-data/temp')
|
||||||
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')
|
||||||
@@ -48,9 +47,7 @@ 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:
|
||||||
file_name = '/'.join(config_file_name.split('.')) + '.py'
|
artifact.add_file('/'.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'])
|
||||||
@@ -128,16 +125,13 @@ 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 % 1000 == 0):
|
if step % 5000 == 0 or (step < 5000 and step % 500 == 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 }
|
||||||
@@ -146,8 +140,6 @@ 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)
|
||||||
@@ -239,9 +231,6 @@ 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')
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from configs.config_abl_all_post import config
|
from configs.config_abl_all_10p_curv_25_r2 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,7 +59,7 @@ if __name__ == '__main__':
|
|||||||
folder = config['test_dir']
|
folder = config['test_dir']
|
||||||
|
|
||||||
checkpoint_name = config['name']
|
checkpoint_name = config['name']
|
||||||
iteration = ''
|
iteration = '70000'
|
||||||
|
|
||||||
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()
|
||||||
|
|||||||
@@ -0,0 +1,125 @@
|
|||||||
|
config = dict()
|
||||||
|
|
||||||
|
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
||||||
|
# DON'T FORGET TO CHECK MODEL LOADING
|
||||||
|
# DON'T FORGET TO CHECK IF STORE IN MEMORY
|
||||||
|
# DON'T FORGET TO CHECK REG LOSS COEFF
|
||||||
|
# DON'T FORGET TO LOAD FINAL UPSCALER UNLESS HAVE LEVEL 512
|
||||||
|
# DON'T FORGET TO CHECK AVG GARMENT USED
|
||||||
|
|
||||||
|
config['use_skinning'] = True # and deshaping
|
||||||
|
config['remove_global_orientation'] = True
|
||||||
|
config['use_curvature'] = True
|
||||||
|
config['use_extra_losses'] = True # edge, collision, 3d mesh
|
||||||
|
config['use_offsets'] = True
|
||||||
|
|
||||||
|
config['use_norm_loss'] = True
|
||||||
|
config['only_curvatures'] = False
|
||||||
|
|
||||||
|
config['curv_neighbourhood'] = 100
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
config['gpu'] = '1'
|
||||||
|
config['name'] = 'abl_all_10p_curv_100_r2'
|
||||||
|
config['notes'] = ''
|
||||||
|
config['tags'] = ['review_2']
|
||||||
|
|
||||||
|
config['avg_garment_path'] = 'custom_data/train_no_shape_skirt_avg_uv.npy' #custom_data/train_no_shape_avg_uv.npy # train_no_shape_avg_uv train_no_shape_one_hot_avg_uv
|
||||||
|
if config['use_skinning']:
|
||||||
|
assert (config['use_offsets'] and config['avg_garment_path'] != '') or (not config['use_offsets'] and config['avg_garment_path'] == '')
|
||||||
|
|
||||||
|
config['reg_loss_coeff'] = 0.1 # set to 0 if don't want to use edge+collision
|
||||||
|
|
||||||
|
config['batch_size'] = 4
|
||||||
|
config['resolution'] = 512
|
||||||
|
config['is_skirt'] = True
|
||||||
|
config['dataset_in_memory'] = False
|
||||||
|
config['is_cape'] = False
|
||||||
|
|
||||||
|
config['train_dir'] = '/home/workspace/data/dataset/local-cache/train_skirt'
|
||||||
|
config['valid_dir'] = '/home/workspace/local-data/valid_skirt'
|
||||||
|
config['test_dir'] = '/home/workspace/data/dataset/test_skirt_ready_2'
|
||||||
|
|
||||||
|
config['frames_file'] = 'frames_skirt_10p.txt'
|
||||||
|
config['frames_file_valid'] = 'frames_skirt_10p.txt'
|
||||||
|
# config['frames_file_test'] = 'frames_dress_30k.txt'
|
||||||
|
|
||||||
|
config['static_model'] = 'checkpoints/static_1_skirt'
|
||||||
|
config['body_model'] = 'checkpoints/body_1_skirt_2_2'
|
||||||
|
config['curvature_model'] = 'checkpoints/post/curv_1_orig_curv_100_10p_r2_2'
|
||||||
|
|
||||||
|
|
||||||
|
config['smpl_res'] = 14475
|
||||||
|
if config['is_cape']:
|
||||||
|
config['smpl_res'] = 3638
|
||||||
|
|
||||||
|
|
||||||
|
config['pretrained_model'] = ''
|
||||||
|
config['latent_dim'] = 128
|
||||||
|
|
||||||
|
###############
|
||||||
|
config['lr'] = 0.0001# 0.0001
|
||||||
|
###############
|
||||||
|
config['starting_balancing_coeff'] = 0.001
|
||||||
|
|
||||||
|
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
||||||
|
'pose_shape': (72 + 11,),
|
||||||
|
'uv_body_posed': (512, 256, 3),
|
||||||
|
'mesh_body_posed': (config['smpl_res'], 3,),
|
||||||
|
'mesh_posed': (config['smpl_res'], 3,),
|
||||||
|
'uv_curvature': (512, 256, 7),
|
||||||
|
}
|
||||||
|
config['signature_static'] = { 'uv_static': (512, 256, 3),
|
||||||
|
'mesh_mask': (config['smpl_res'],),
|
||||||
|
'uv_mask': (512, 256,),
|
||||||
|
}
|
||||||
|
|
||||||
|
if config['use_skinning']:
|
||||||
|
config['signature_dynamic']['uv_unposed'] = (512, 256, 3)
|
||||||
|
config['signature_dynamic']['mesh_unposed'] = (config['smpl_res'], 3,)
|
||||||
|
else:
|
||||||
|
config['signature_dynamic']['uv_posed'] = (512, 256, 3)
|
||||||
|
|
||||||
|
|
||||||
|
config['upscale_enhancer'] = ''
|
||||||
|
config['freeze_encoders'] = True
|
||||||
|
config['use_one_hot'] = False
|
||||||
|
|
||||||
|
config['cvae'] = dict()
|
||||||
|
config['cvae']['is_label'] = False
|
||||||
|
config['cvae']['latent_dim'] = config['latent_dim']
|
||||||
|
config['cvae']['add_noise'] = True
|
||||||
|
config['cvae']['noise_amount'] = 0.025
|
||||||
|
|
||||||
|
config['cvae']['kernel_size'] = 7
|
||||||
|
config['cvae']['encoder_depths'] = [3, 3, 9, 3]
|
||||||
|
config['cvae']['encoder_dims'] = [32, 64, 128, 256]
|
||||||
|
config['cvae']['decoder_input'] = (16, 8, 80)
|
||||||
|
config['cvae']['decoder_depths'] = [3, 3, 9, 3]
|
||||||
|
config['cvae']['decoder_dims'] = [256, 128, 64, 16]
|
||||||
|
|
||||||
|
|
||||||
|
config['cond_ae'] = dict()
|
||||||
|
config['cond_ae']['is_label'] = False
|
||||||
|
config['cond_ae']['upscale_output'] = False
|
||||||
|
config['cond_ae']['latent_dim'] = config['latent_dim']
|
||||||
|
config['cond_ae']['kernel_size'] = 7
|
||||||
|
config['cond_ae']['bottleneck_size'] = 64
|
||||||
|
config['cond_ae']['encoder_depths'] = [3, 3, 9, 9, 3]
|
||||||
|
config['cond_ae']['encoder_dims'] = [32, 64, 128, 256, config['cond_ae']['bottleneck_size']]
|
||||||
|
config['cond_ae']['decoder_input'] = (8, 4, config['cond_ae']['bottleneck_size'])
|
||||||
|
config['cond_ae']['decoder_depths'] = [3, 3, 9, 3, 3]
|
||||||
|
config['cond_ae']['decoder_dims'] = [config['cond_ae']['bottleneck_size'], 256, 128, 64, 16]
|
||||||
|
|
||||||
|
config['cond_ae_body'] = dict()
|
||||||
|
config['cond_ae_body']['latent_dim'] = config['latent_dim']
|
||||||
|
config['cond_ae_body']['kernel_size'] = 7
|
||||||
|
config['cond_ae_body']['upscale_output'] = True
|
||||||
|
config['cond_ae_body']['bottleneck_size'] = 512
|
||||||
|
config['cond_ae_body']['encoder_depths'] = [3, 3, 9, 9, 3, 3]
|
||||||
|
config['cond_ae_body']['encoder_dims'] = [32, 64, 128, 256, 256, config['cond_ae_body']['bottleneck_size']]
|
||||||
|
config['cond_ae_body']['decoder_input'] = (4, 2, config['cond_ae_body']['bottleneck_size'])
|
||||||
|
config['cond_ae_body']['decoder_depths'] = [3, 3, 9, 3]
|
||||||
|
config['cond_ae_body']['decoder_dims'] = [config['cond_ae_body']['bottleneck_size'], 128, 64, 16]
|
||||||
@@ -0,0 +1,125 @@
|
|||||||
|
config = dict()
|
||||||
|
|
||||||
|
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
||||||
|
# DON'T FORGET TO CHECK MODEL LOADING
|
||||||
|
# DON'T FORGET TO CHECK IF STORE IN MEMORY
|
||||||
|
# DON'T FORGET TO CHECK REG LOSS COEFF
|
||||||
|
# DON'T FORGET TO LOAD FINAL UPSCALER UNLESS HAVE LEVEL 512
|
||||||
|
# DON'T FORGET TO CHECK AVG GARMENT USED
|
||||||
|
|
||||||
|
config['use_skinning'] = True # and deshaping
|
||||||
|
config['remove_global_orientation'] = True
|
||||||
|
config['use_curvature'] = True
|
||||||
|
config['use_extra_losses'] = True # edge, collision, 3d mesh
|
||||||
|
config['use_offsets'] = True
|
||||||
|
|
||||||
|
config['use_norm_loss'] = True
|
||||||
|
config['only_curvatures'] = False
|
||||||
|
|
||||||
|
config['curv_neighbourhood'] = 10
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
config['gpu'] = '6'
|
||||||
|
config['name'] = 'abl_all_10p_curv_10_r2_2'
|
||||||
|
config['notes'] = ''
|
||||||
|
config['tags'] = ['review_2']
|
||||||
|
|
||||||
|
config['avg_garment_path'] = 'custom_data/train_no_shape_skirt_avg_uv.npy' #custom_data/train_no_shape_avg_uv.npy # train_no_shape_avg_uv train_no_shape_one_hot_avg_uv
|
||||||
|
if config['use_skinning']:
|
||||||
|
assert (config['use_offsets'] and config['avg_garment_path'] != '') or (not config['use_offsets'] and config['avg_garment_path'] == '')
|
||||||
|
|
||||||
|
config['reg_loss_coeff'] = 0.1 # set to 0 if don't want to use edge+collision
|
||||||
|
|
||||||
|
config['batch_size'] = 4
|
||||||
|
config['resolution'] = 512
|
||||||
|
config['is_skirt'] = True
|
||||||
|
config['dataset_in_memory'] = True
|
||||||
|
config['is_cape'] = False
|
||||||
|
|
||||||
|
config['train_dir'] = '/home/workspace/data/dataset/local-cache/train_skirt'
|
||||||
|
config['valid_dir'] = '/home/workspace/local-data/valid_skirt'
|
||||||
|
config['test_dir'] = '/home/workspace/data/dataset/test_skirt_ready_2'
|
||||||
|
|
||||||
|
config['frames_file'] = 'frames_skirt_10p.txt'
|
||||||
|
config['frames_file_valid'] = 'frames_skirt_10p.txt'
|
||||||
|
# config['frames_file_test'] = 'frames_dress_30k.txt'
|
||||||
|
|
||||||
|
config['static_model'] = 'checkpoints/static_1_skirt'
|
||||||
|
config['body_model'] = 'checkpoints/body_1_skirt_2_2'
|
||||||
|
config['curvature_model'] = 'checkpoints/post/curv_1_orig_curv_10_10p_r2_2'
|
||||||
|
|
||||||
|
|
||||||
|
config['smpl_res'] = 14475
|
||||||
|
if config['is_cape']:
|
||||||
|
config['smpl_res'] = 3638
|
||||||
|
|
||||||
|
|
||||||
|
config['pretrained_model'] = ''
|
||||||
|
config['latent_dim'] = 128
|
||||||
|
|
||||||
|
###############
|
||||||
|
config['lr'] = 0.0001# 0.0001
|
||||||
|
###############
|
||||||
|
config['starting_balancing_coeff'] = 0.001
|
||||||
|
|
||||||
|
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
||||||
|
'pose_shape': (72 + 11,),
|
||||||
|
'uv_body_posed': (512, 256, 3),
|
||||||
|
'mesh_body_posed': (config['smpl_res'], 3,),
|
||||||
|
'mesh_posed': (config['smpl_res'], 3,),
|
||||||
|
'uv_curvature': (512, 256, 7),
|
||||||
|
}
|
||||||
|
config['signature_static'] = { 'uv_static': (512, 256, 3),
|
||||||
|
'mesh_mask': (config['smpl_res'],),
|
||||||
|
'uv_mask': (512, 256,),
|
||||||
|
}
|
||||||
|
|
||||||
|
if config['use_skinning']:
|
||||||
|
config['signature_dynamic']['uv_unposed'] = (512, 256, 3)
|
||||||
|
config['signature_dynamic']['mesh_unposed'] = (config['smpl_res'], 3,)
|
||||||
|
else:
|
||||||
|
config['signature_dynamic']['uv_posed'] = (512, 256, 3)
|
||||||
|
|
||||||
|
|
||||||
|
config['upscale_enhancer'] = ''
|
||||||
|
config['freeze_encoders'] = True
|
||||||
|
config['use_one_hot'] = False
|
||||||
|
|
||||||
|
config['cvae'] = dict()
|
||||||
|
config['cvae']['is_label'] = False
|
||||||
|
config['cvae']['latent_dim'] = config['latent_dim']
|
||||||
|
config['cvae']['add_noise'] = True
|
||||||
|
config['cvae']['noise_amount'] = 0.025
|
||||||
|
|
||||||
|
config['cvae']['kernel_size'] = 7
|
||||||
|
config['cvae']['encoder_depths'] = [3, 3, 9, 3]
|
||||||
|
config['cvae']['encoder_dims'] = [32, 64, 128, 256]
|
||||||
|
config['cvae']['decoder_input'] = (16, 8, 80)
|
||||||
|
config['cvae']['decoder_depths'] = [3, 3, 9, 3]
|
||||||
|
config['cvae']['decoder_dims'] = [256, 128, 64, 16]
|
||||||
|
|
||||||
|
|
||||||
|
config['cond_ae'] = dict()
|
||||||
|
config['cond_ae']['is_label'] = False
|
||||||
|
config['cond_ae']['upscale_output'] = False
|
||||||
|
config['cond_ae']['latent_dim'] = config['latent_dim']
|
||||||
|
config['cond_ae']['kernel_size'] = 7
|
||||||
|
config['cond_ae']['bottleneck_size'] = 64
|
||||||
|
config['cond_ae']['encoder_depths'] = [3, 3, 9, 9, 3]
|
||||||
|
config['cond_ae']['encoder_dims'] = [32, 64, 128, 256, config['cond_ae']['bottleneck_size']]
|
||||||
|
config['cond_ae']['decoder_input'] = (8, 4, config['cond_ae']['bottleneck_size'])
|
||||||
|
config['cond_ae']['decoder_depths'] = [3, 3, 9, 3, 3]
|
||||||
|
config['cond_ae']['decoder_dims'] = [config['cond_ae']['bottleneck_size'], 256, 128, 64, 16]
|
||||||
|
|
||||||
|
config['cond_ae_body'] = dict()
|
||||||
|
config['cond_ae_body']['latent_dim'] = config['latent_dim']
|
||||||
|
config['cond_ae_body']['kernel_size'] = 7
|
||||||
|
config['cond_ae_body']['upscale_output'] = True
|
||||||
|
config['cond_ae_body']['bottleneck_size'] = 512
|
||||||
|
config['cond_ae_body']['encoder_depths'] = [3, 3, 9, 9, 3, 3]
|
||||||
|
config['cond_ae_body']['encoder_dims'] = [32, 64, 128, 256, 256, config['cond_ae_body']['bottleneck_size']]
|
||||||
|
config['cond_ae_body']['decoder_input'] = (4, 2, config['cond_ae_body']['bottleneck_size'])
|
||||||
|
config['cond_ae_body']['decoder_depths'] = [3, 3, 9, 3]
|
||||||
|
config['cond_ae_body']['decoder_dims'] = [config['cond_ae_body']['bottleneck_size'], 128, 64, 16]
|
||||||
@@ -0,0 +1,125 @@
|
|||||||
|
config = dict()
|
||||||
|
|
||||||
|
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
||||||
|
# DON'T FORGET TO CHECK MODEL LOADING
|
||||||
|
# DON'T FORGET TO CHECK IF STORE IN MEMORY
|
||||||
|
# DON'T FORGET TO CHECK REG LOSS COEFF
|
||||||
|
# DON'T FORGET TO LOAD FINAL UPSCALER UNLESS HAVE LEVEL 512
|
||||||
|
# DON'T FORGET TO CHECK AVG GARMENT USED
|
||||||
|
|
||||||
|
config['use_skinning'] = True # and deshaping
|
||||||
|
config['remove_global_orientation'] = True
|
||||||
|
config['use_curvature'] = True
|
||||||
|
config['use_extra_losses'] = True # edge, collision, 3d mesh
|
||||||
|
config['use_offsets'] = True
|
||||||
|
|
||||||
|
config['use_norm_loss'] = True
|
||||||
|
config['only_curvatures'] = False
|
||||||
|
|
||||||
|
config['curv_neighbourhood'] = 25
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
config['gpu'] = '0'
|
||||||
|
config['name'] = 'abl_all_10p_curv_25_r2'
|
||||||
|
config['notes'] = ''
|
||||||
|
config['tags'] = ['review_2']
|
||||||
|
|
||||||
|
config['avg_garment_path'] = 'custom_data/train_no_shape_skirt_avg_uv.npy' #custom_data/train_no_shape_avg_uv.npy # train_no_shape_avg_uv train_no_shape_one_hot_avg_uv
|
||||||
|
if config['use_skinning']:
|
||||||
|
assert (config['use_offsets'] and config['avg_garment_path'] != '') or (not config['use_offsets'] and config['avg_garment_path'] == '')
|
||||||
|
|
||||||
|
config['reg_loss_coeff'] = 0.1 # set to 0 if don't want to use edge+collision
|
||||||
|
|
||||||
|
config['batch_size'] = 4
|
||||||
|
config['resolution'] = 512
|
||||||
|
config['is_skirt'] = True
|
||||||
|
config['dataset_in_memory'] = True
|
||||||
|
config['is_cape'] = False
|
||||||
|
|
||||||
|
config['train_dir'] = '/home/workspace/data/dataset/local-cache/train_skirt'
|
||||||
|
config['valid_dir'] = '/home/workspace/local-data/valid_skirt'
|
||||||
|
config['test_dir'] = '/home/workspace/data/dataset/test_skirt_ready_2'
|
||||||
|
|
||||||
|
config['frames_file'] = 'frames_skirt_10p.txt'
|
||||||
|
config['frames_file_valid'] = 'frames_skirt_10p.txt'
|
||||||
|
# config['frames_file_test'] = 'frames_dress_30k.txt'
|
||||||
|
|
||||||
|
config['static_model'] = 'checkpoints/static_1_skirt'
|
||||||
|
config['body_model'] = 'checkpoints/body_1_skirt_2_2'
|
||||||
|
config['curvature_model'] = 'checkpoints/post/curv_1_orig_curv_25_10p_r2'
|
||||||
|
|
||||||
|
|
||||||
|
config['smpl_res'] = 14475
|
||||||
|
if config['is_cape']:
|
||||||
|
config['smpl_res'] = 3638
|
||||||
|
|
||||||
|
|
||||||
|
config['pretrained_model'] = ''
|
||||||
|
config['latent_dim'] = 128
|
||||||
|
|
||||||
|
###############
|
||||||
|
config['lr'] = 0.0001# 0.0001
|
||||||
|
###############
|
||||||
|
config['starting_balancing_coeff'] = 0.001
|
||||||
|
|
||||||
|
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
||||||
|
'pose_shape': (72 + 11,),
|
||||||
|
'uv_body_posed': (512, 256, 3),
|
||||||
|
'mesh_body_posed': (config['smpl_res'], 3,),
|
||||||
|
'mesh_posed': (config['smpl_res'], 3,),
|
||||||
|
'uv_curvature': (512, 256, 7),
|
||||||
|
}
|
||||||
|
config['signature_static'] = { 'uv_static': (512, 256, 3),
|
||||||
|
'mesh_mask': (config['smpl_res'],),
|
||||||
|
'uv_mask': (512, 256,),
|
||||||
|
}
|
||||||
|
|
||||||
|
if config['use_skinning']:
|
||||||
|
config['signature_dynamic']['uv_unposed'] = (512, 256, 3)
|
||||||
|
config['signature_dynamic']['mesh_unposed'] = (config['smpl_res'], 3,)
|
||||||
|
else:
|
||||||
|
config['signature_dynamic']['uv_posed'] = (512, 256, 3)
|
||||||
|
|
||||||
|
|
||||||
|
config['upscale_enhancer'] = ''
|
||||||
|
config['freeze_encoders'] = True
|
||||||
|
config['use_one_hot'] = False
|
||||||
|
|
||||||
|
config['cvae'] = dict()
|
||||||
|
config['cvae']['is_label'] = False
|
||||||
|
config['cvae']['latent_dim'] = config['latent_dim']
|
||||||
|
config['cvae']['add_noise'] = True
|
||||||
|
config['cvae']['noise_amount'] = 0.025
|
||||||
|
|
||||||
|
config['cvae']['kernel_size'] = 7
|
||||||
|
config['cvae']['encoder_depths'] = [3, 3, 9, 3]
|
||||||
|
config['cvae']['encoder_dims'] = [32, 64, 128, 256]
|
||||||
|
config['cvae']['decoder_input'] = (16, 8, 80)
|
||||||
|
config['cvae']['decoder_depths'] = [3, 3, 9, 3]
|
||||||
|
config['cvae']['decoder_dims'] = [256, 128, 64, 16]
|
||||||
|
|
||||||
|
|
||||||
|
config['cond_ae'] = dict()
|
||||||
|
config['cond_ae']['is_label'] = False
|
||||||
|
config['cond_ae']['upscale_output'] = False
|
||||||
|
config['cond_ae']['latent_dim'] = config['latent_dim']
|
||||||
|
config['cond_ae']['kernel_size'] = 7
|
||||||
|
config['cond_ae']['bottleneck_size'] = 64
|
||||||
|
config['cond_ae']['encoder_depths'] = [3, 3, 9, 9, 3]
|
||||||
|
config['cond_ae']['encoder_dims'] = [32, 64, 128, 256, config['cond_ae']['bottleneck_size']]
|
||||||
|
config['cond_ae']['decoder_input'] = (8, 4, config['cond_ae']['bottleneck_size'])
|
||||||
|
config['cond_ae']['decoder_depths'] = [3, 3, 9, 3, 3]
|
||||||
|
config['cond_ae']['decoder_dims'] = [config['cond_ae']['bottleneck_size'], 256, 128, 64, 16]
|
||||||
|
|
||||||
|
config['cond_ae_body'] = dict()
|
||||||
|
config['cond_ae_body']['latent_dim'] = config['latent_dim']
|
||||||
|
config['cond_ae_body']['kernel_size'] = 7
|
||||||
|
config['cond_ae_body']['upscale_output'] = True
|
||||||
|
config['cond_ae_body']['bottleneck_size'] = 512
|
||||||
|
config['cond_ae_body']['encoder_depths'] = [3, 3, 9, 9, 3, 3]
|
||||||
|
config['cond_ae_body']['encoder_dims'] = [32, 64, 128, 256, 256, config['cond_ae_body']['bottleneck_size']]
|
||||||
|
config['cond_ae_body']['decoder_input'] = (4, 2, config['cond_ae_body']['bottleneck_size'])
|
||||||
|
config['cond_ae_body']['decoder_depths'] = [3, 3, 9, 3]
|
||||||
|
config['cond_ae_body']['decoder_dims'] = [config['cond_ae_body']['bottleneck_size'], 128, 64, 16]
|
||||||
@@ -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'] = '4'
|
config['gpu'] = '1'
|
||||||
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'
|
config['name'] = 'pyr_abl_32_r1'
|
||||||
config['notes'] = ''
|
config['notes'] = ''
|
||||||
|
|
||||||
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
config = dict()
|
config = dict()
|
||||||
|
|
||||||
config['gpu'] = '3'
|
config['gpu'] = '3'
|
||||||
config['name'] = 'pyr_abl_32_skirt_2'
|
config['name'] = 'pyr_abl_32_skirt_r1'
|
||||||
config['notes'] = 'continued from pyr_abl_32_skirt-180k'
|
config['notes'] = ''
|
||||||
|
|
||||||
# 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
|
||||||
@@ -24,7 +24,10 @@ 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['train_dir'] = '/home/workspace/local-data/train_skirt'
|
config['pretrained_model'] = ''
|
||||||
|
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
|
||||||
@@ -35,7 +38,7 @@ 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'] = False
|
config['dataset_in_memory'] = True
|
||||||
config['resolution'] = None
|
config['resolution'] = None
|
||||||
config['latent_dim'] = 128
|
config['latent_dim'] = 128
|
||||||
|
|
||||||
@@ -65,6 +68,7 @@ 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,13 +1,23 @@
|
|||||||
from configs.config_base import config
|
from configs.config_base import config
|
||||||
|
|
||||||
config['gpu'] = '5'
|
config['gpu'] = '4'
|
||||||
config['lr'] = 0.001
|
config['lr'] = 0.001
|
||||||
config['name'] = 'curv_1' #'ae_curv_9'
|
config['name'] = 'curv_1_orig_r2' #'ae_curv_9'
|
||||||
config['notes'] = 'convnext + convnext, 16*8*32, ce loss. flattened latent dim of 128. trained on 100 garments. switched back to sparse CCE, normal one was giving NaN | \
|
config['notes'] = 'convnext + convnext, 16*8*32, ce loss. flattened latent dim of 128. trained on 100 garments. switched back to sparse CCE, normal one was giving NaN | \
|
||||||
| \
|
| \
|
||||||
'
|
'
|
||||||
|
config['tags'] = ['review_2']
|
||||||
|
config['remove_global_orientation'] = True
|
||||||
|
|
||||||
config['cond_ae']['is_label'] = True
|
config['cond_ae']['is_label'] = True
|
||||||
|
config['is_skirt'] = True
|
||||||
|
|
||||||
|
config['train_dir'] = '/home/workspace/data/dataset/local-cache/train_skirt'
|
||||||
|
config['valid_dir'] = '/home/workspace/local-data/valid_skirt'
|
||||||
|
config['test_dir'] = '/home/workspace/data/dataset/test_skirt_ready_2'
|
||||||
|
config['frames_file'] = 'frames_skirt_10p.txt'
|
||||||
|
config['frames_file_valid'] = 'frames_skirt_10p.txt'
|
||||||
|
config['curv_neighbourhood'] = 10
|
||||||
|
|
||||||
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
||||||
'uv_curvature': (512, 256, 7),
|
'uv_curvature': (512, 256, 7),
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
from configs.config_base import config
|
||||||
|
|
||||||
|
config['gpu'] = '1'
|
||||||
|
config['lr'] = 0.001
|
||||||
|
config['name'] = 'curv_1_orig_curv_100_10p_r2' #'ae_curv_9'
|
||||||
|
config['notes'] = 'convnext + convnext, 16*8*32, ce loss. flattened latent dim of 128. trained on 100 garments. switched back to sparse CCE, normal one was giving NaN | \
|
||||||
|
| \
|
||||||
|
'
|
||||||
|
config['tags'] = ['review_2']
|
||||||
|
config['remove_global_orientation'] = True
|
||||||
|
config['dataset_in_memory'] = True
|
||||||
|
|
||||||
|
config['cond_ae']['is_label'] = True
|
||||||
|
config['is_skirt'] = True
|
||||||
|
|
||||||
|
config['train_dir'] = '/home/workspace/data/dataset/local-cache/train_skirt'
|
||||||
|
config['valid_dir'] = '/home/workspace/local-data/valid_skirt'
|
||||||
|
config['test_dir'] = '/home/workspace/data/dataset/test_skirt_ready_2'
|
||||||
|
config['frames_file'] = 'frames_skirt_10p.txt'
|
||||||
|
config['frames_file_valid'] = 'frames_skirt_10p.txt'
|
||||||
|
config['curv_neighbourhood'] = 100
|
||||||
|
|
||||||
|
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
||||||
|
'uv_curvature': (512, 256, 7),
|
||||||
|
'mesh_curvature': (config['smpl_res'])
|
||||||
|
}
|
||||||
|
config['signature_static'] = { 'mesh_mask': (config['smpl_res'],),
|
||||||
|
'uv_mask': (512, 256,),
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
from configs.config_base import config
|
||||||
|
|
||||||
|
config['gpu'] = '1'
|
||||||
|
config['lr'] = 0.001
|
||||||
|
config['name'] = 'curv_1_orig_curv_100_10p_r2_2' #'ae_curv_9'
|
||||||
|
config['notes'] = 'convnext + convnext, 16*8*32, ce loss. flattened latent dim of 128. trained on 100 garments. switched back to sparse CCE, normal one was giving NaN | \
|
||||||
|
| \
|
||||||
|
'
|
||||||
|
config['tags'] = ['review_2']
|
||||||
|
config['remove_global_orientation'] = True
|
||||||
|
config['dataset_in_memory'] = True
|
||||||
|
|
||||||
|
config['cond_ae']['is_label'] = True
|
||||||
|
config['is_skirt'] = True
|
||||||
|
|
||||||
|
config['train_dir'] = '/home/workspace/data/dataset/local-cache/train_skirt'
|
||||||
|
config['valid_dir'] = '/home/workspace/local-data/valid_skirt'
|
||||||
|
config['test_dir'] = '/home/workspace/data/dataset/test_skirt_ready_2'
|
||||||
|
config['frames_file'] = 'frames_skirt_10p.txt'
|
||||||
|
config['frames_file_valid'] = 'frames_skirt_10p.txt'
|
||||||
|
config['curv_neighbourhood'] = 100
|
||||||
|
|
||||||
|
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
||||||
|
'uv_curvature': (512, 256, 7),
|
||||||
|
'mesh_curvature': (config['smpl_res'])
|
||||||
|
}
|
||||||
|
config['signature_static'] = { 'mesh_mask': (config['smpl_res'],),
|
||||||
|
'uv_mask': (512, 256,),
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
from configs.config_base import config
|
||||||
|
|
||||||
|
config['gpu'] = '4'
|
||||||
|
config['lr'] = 0.001
|
||||||
|
config['name'] = 'curv_1_orig_curv_10_10p_r2' #'ae_curv_9'
|
||||||
|
config['notes'] = 'convnext + convnext, 16*8*32, ce loss. flattened latent dim of 128. trained on 100 garments. switched back to sparse CCE, normal one was giving NaN | \
|
||||||
|
| \
|
||||||
|
'
|
||||||
|
config['tags'] = ['review_2']
|
||||||
|
config['remove_global_orientation'] = True
|
||||||
|
config['dataset_in_memory'] = True
|
||||||
|
|
||||||
|
config['cond_ae']['is_label'] = True
|
||||||
|
config['is_skirt'] = True
|
||||||
|
|
||||||
|
config['train_dir'] = '/home/workspace/data/dataset/local-cache/train_skirt'
|
||||||
|
config['valid_dir'] = '/home/workspace/local-data/valid_skirt'
|
||||||
|
config['test_dir'] = '/home/workspace/data/dataset/test_skirt_ready_2'
|
||||||
|
config['frames_file'] = 'frames_skirt_10p.txt'
|
||||||
|
config['frames_file_valid'] = 'frames_skirt_10p.txt'
|
||||||
|
config['curv_neighbourhood'] = 10
|
||||||
|
|
||||||
|
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
||||||
|
'uv_curvature': (512, 256, 7),
|
||||||
|
'mesh_curvature': (config['smpl_res'])
|
||||||
|
}
|
||||||
|
config['signature_static'] = { 'mesh_mask': (config['smpl_res'],),
|
||||||
|
'uv_mask': (512, 256,),
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
from configs.config_base import config
|
||||||
|
|
||||||
|
config['gpu'] = '4'
|
||||||
|
config['lr'] = 0.001
|
||||||
|
config['name'] = 'curv_1_orig_curv_10_10p_r2_2' #'ae_curv_9'
|
||||||
|
config['notes'] = 'convnext + convnext, 16*8*32, ce loss. flattened latent dim of 128. trained on 100 garments. switched back to sparse CCE, normal one was giving NaN | \
|
||||||
|
| \
|
||||||
|
'
|
||||||
|
config['tags'] = ['review_2']
|
||||||
|
config['remove_global_orientation'] = True
|
||||||
|
config['dataset_in_memory'] = True
|
||||||
|
|
||||||
|
config['cond_ae']['is_label'] = True
|
||||||
|
config['is_skirt'] = True
|
||||||
|
|
||||||
|
config['train_dir'] = '/home/workspace/data/dataset/local-cache/train_skirt'
|
||||||
|
config['valid_dir'] = '/home/workspace/local-data/valid_skirt'
|
||||||
|
config['test_dir'] = '/home/workspace/data/dataset/test_skirt_ready_2'
|
||||||
|
config['frames_file'] = 'frames_skirt_10p.txt'
|
||||||
|
config['frames_file_valid'] = 'frames_skirt_10p.txt'
|
||||||
|
config['curv_neighbourhood'] = 10
|
||||||
|
|
||||||
|
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
||||||
|
'uv_curvature': (512, 256, 7),
|
||||||
|
'mesh_curvature': (config['smpl_res'])
|
||||||
|
}
|
||||||
|
config['signature_static'] = { 'mesh_mask': (config['smpl_res'],),
|
||||||
|
'uv_mask': (512, 256,),
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
from configs.config_base import config
|
||||||
|
|
||||||
|
config['gpu'] = '6'
|
||||||
|
config['lr'] = 0.001
|
||||||
|
config['name'] = 'curv_1_orig_curv_25_10p_r2' #'ae_curv_9'
|
||||||
|
config['notes'] = 'convnext + convnext, 16*8*32, ce loss. flattened latent dim of 128. trained on 100 garments. switched back to sparse CCE, normal one was giving NaN | \
|
||||||
|
| \
|
||||||
|
'
|
||||||
|
config['tags'] = ['review_2']
|
||||||
|
config['remove_global_orientation'] = True
|
||||||
|
config['dataset_in_memory'] = True
|
||||||
|
|
||||||
|
config['cond_ae']['is_label'] = True
|
||||||
|
config['is_skirt'] = True
|
||||||
|
|
||||||
|
config['train_dir'] = '/home/workspace/data/dataset/local-cache/train_skirt'
|
||||||
|
config['valid_dir'] = '/home/workspace/local-data/valid_skirt'
|
||||||
|
config['test_dir'] = '/home/workspace/data/dataset/test_skirt_ready_2'
|
||||||
|
config['frames_file'] = 'frames_skirt_10p.txt'
|
||||||
|
config['frames_file_valid'] = 'frames_skirt_10p.txt'
|
||||||
|
config['curv_neighbourhood'] = 25
|
||||||
|
|
||||||
|
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
||||||
|
'uv_curvature': (512, 256, 7),
|
||||||
|
'mesh_curvature': (config['smpl_res'])
|
||||||
|
}
|
||||||
|
config['signature_static'] = { 'mesh_mask': (config['smpl_res'],),
|
||||||
|
'uv_mask': (512, 256,),
|
||||||
|
}
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user