YaN9-Y / lafin

LaFIn: Generative Landmark Guided Face Inpainting
146 stars 28 forks source link

error while training #5

Open redaghanem opened 4 years ago

redaghanem commented 4 years ago

when i try to train !python3 train.py --model 1 --checkpoints ./checkpoints/celeba i get this error

./checkpoints/celeba/config.yml Model configurations:

MODE: 1 # 1: train, 2: test, 3: eval MODEL: 2 # 1: edge model, 2: inpaint model, 3: edge-inpaint model MASK: 4 # 0: no mask(for testing landmark detector) 1: random block, 2: center mask, 3: external, 4: 50% external, 50% random block, 5: (50% no mask, 25% ramdom block, 25% external) 6: external non-random SEED: 10 # random seed GPU: [0] # list of gpu ids AUGMENTATION_TRAIN: 0 # 1: use augmentation to train landmark predictor 0: not use LANDMARK_POINTS: 68 # 68 for celeba, celeba-hq and 300w, 98 for wflw

TRAIN_INPAINT_IMAGE_FLIST: ./datasets/exampl_images.flist #training image set for inpaint model(stage 2 and 3) VAL_INPAINT_IMAGE_FLIST: ./datasets/celeba_val_images.flist #validation image set for inpaint model(stage 2 and 3) TEST_INPAINT_IMAGE_FLIST: ./datasets/celeba_test_images.flist #testing image set for inpaint model(stage 2 and 3)

TRAIN_INPAINT_LANDMARK_FLIST: ./datasets/celeba_train_landmarks.flist #training landmark set for inpaint model (stage 2 and 3) VAL_INPAINT_LANDMARK_FLIST: ./datasets/celeba_val_landmarks.flist #validation landmark set for inpaint model (stage 2 and 3) TEST_INPAINT_LANDMARK_FLIST: ./datasets/celeba_test_landmarks.flist #testing landmark set for inpaint model (stage 2)(test on stage 3 doesn't need test landmark flist)

TRAIN_MASK_FLIST: ./datasets/example_masks.flist #training mask set for all stages VAL_MASK_FLIST: ./datasets/example_masks.flist #validation mask set for all stages TEST_MASK_FLIST: ./datasets/example_masks.flist #testing mask set for all stages

TRAIN_LANDMARK_LANDMARK_FLIST: ./datasets/wflw_train_landmarks.flist #training landmark set for landmark model (stage 1) TEST_LANDMARK_LANDMARK_FLIST: ./datasets/wflw_test_landmarks.flist #testing landmark set for landmark model (stage 1) TRAIN_LANDMARK_IMAGE_FLIST: ./datasets/wflw_train_images.flist #training image set for landmark model(stage 1) TEST_LANDMARK_IMAGE_FLIST: ./datasets/wflw_test_images.flist #testing image set for landmark model(stage 1)

LR: 0.0001 # learning rate D2G_LR: 0.1 # discriminator/generator learning rate ratio BETA1: 0.0 # adam optimizer beta1 BETA2: 0.9 # adam optimizer beta2 BATCH_SIZE: 4 # input batch size for training, 4 for inpaint training, 16 or more for landmark predictor, 8 or more for augmented landmark predictor INPUT_SIZE: 256 # input image size for training. MAX_ITERS: 1300000 # maximum number of iterations to train the model

L1_LOSS_WEIGHT: 1 # l1 loss weight STYLE_LOSS_WEIGHT: 250 # style loss weight CONTENT_LOSS_WEIGHT: 0.1 # perceptual loss weight INPAINT_ADV_LOSS_WEIGHT: 0.01 # adversarial loss weight TV_LOSS_WEIGHT: 0.1 # total variation loss weight

GAN_LOSS: lsgan # nsgan | lsgan | hinge GAN_POOL_SIZE: 0 # fake images pool size

SAVE_INTERVAL: 1000 # how many iterations to wait before saving model (0: never) SAMPLE_INTERVAL: 500 # how many iterations to wait before sampling (0: never) SAMPLE_SIZE: 4 # number of images to sample EVAL_INTERVAL: 0 # how many iterations to wait before model evaluation (0: never) LOG_INTERVAL: 100 # how many iterations to wait before logging training status (0: never)


start training...

Traceback (most recent call last): File "train.py", line 2, in main(mode=1) File "/content/drive/My Drive/Colab Notebooks/lafin-master/main.py", line 56, in main model.train() File "/content/drive/My Drive/Colab Notebooks/lafin-master/src/lafin.py", line 103, in train shuffle=True File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/dataloader.py", line 213, in init sampler = RandomSampler(dataset) File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/sampler.py", line 94, in init "value, but got num_samples={}".format(self.num_samples)) ValueError: num_samples should be a positive integer value, but got num_samples=0

redaghanem commented 4 years ago

when i change shuffle to False it works why?

def train(self): train_loader = DataLoader( dataset=self.train_dataset, batch_size=self.config.BATCH_SIZE, num_workers=4, drop_last=True, shuffle=False )