BeautyGAN_pytorch icon indicating copy to clipboard operation
BeautyGAN_pytorch copied to clipboard

Confused in dataloader

Open ziqihuang233 opened this issue 4 years ago • 17 comments

Hello,I'm very interested in this. But I ran the code, there are so many options. And I aslo download the database.But I am not sure which args means non-make up picture,please help

ziqihuang233 avatar Oct 17 '19 08:10 ziqihuang233

Can you run the code successfully?

et148 avatar Oct 20 '19 02:10 et148

@et148 No,first,the dataloader should read the txt,I tried to guess and pass. But the author use the vgg net in net.py, and it must read the conv args. I downloaded the parameters in the pytorch pretained model zoo,but failed to match.. If you can run,please help!

ziqihuang233 avatar Oct 21 '19 01:10 ziqihuang233

Sorry for the late reply. Since the DDL of CVPR is coming, we have no time for this repo. We will update it in November.

wtjiang98 avatar Oct 22 '19 02:10 wtjiang98

@CrystalWong2 Yes,the vgg pretrained model found on the network cannont match because the auther has made some modifications to the vgg network and the parameter names are different。If you want to run successfully,you can use the vgg network that comes with torch,just "self.vgg=models.vgg16(pretrained=True).features[:28]" or you can modify the network and model parameters to make them match

et148 avatar Oct 22 '19 03:10 et148

@CrystalWong2 Notice that "import torchvision.models as models"

et148 avatar Oct 22 '19 03:10 et148

@et148 No,first,the dataloader should read the txt,I tried to guess and pass. But the author use the vgg net in net.py, and it must read the conv args. I downloaded the parameters in the pytorch pretained model zoo,but failed to match.. If you can run,please help!

You can download the vgg model in "https://bethgelab.org/media/uploads/pytorch_models/vgg_conv.pth".

CodingMice avatar Oct 22 '19 09:10 CodingMice

@CodingMice Thank you!By the way,can you use multi-gpu training? I have tried many times but still failed

et148 avatar Oct 23 '19 02:10 et148

@CodingMice

I downloaded and tried,but I think if need to match the author‘s network it need more work. image

ziqihuang233 avatar Oct 24 '19 07:10 ziqihuang233

@CodingMice

I downloaded and tried,but I think if need to match the author‘s network it need more work. image ’ I have run it successfully. It is the model of vgg loss in "addings", not the pretrained model of Beautygan.

CodingMice avatar Oct 25 '19 01:10 CodingMice

@CodingMice Thank you!By the way,can you use multi-gpu training? I have tried many times but still failed

I do not use the muti-gpu training. If I have more gpus, I will try it.

CodingMice avatar Oct 25 '19 01:10 CodingMice

@CodingMice Thank you so muc. I can run it successfully. I am not very familiar with pytorch. I tried to train the model with my own database. But it seems to fail to train.Because in the solver_makeup.py,the params self.i always be 0. I don't know why. If you know,please help. @et148 @CodingMice

image

ziqihuang233 avatar Oct 25 '19 09:10 ziqihuang233

@CodingMice Thank you so muc. I can run it successfully. I am not very familiar with pytorch. I tried to train the model with my own database. But it seems to fail to train.Because in the solver_makeup.py,the params self.i always be 0. I don't know why. If you know,please help. @et148 @CodingMice

image

Maybe you should firstly check self.data_loader_train. In other word, the dataloader is what you want.

CodingMice avatar Oct 30 '19 13:10 CodingMice

@CodingMice @CrystalWong2 I have downloaded the code and the BeautyGAN dataset(named makeup_dataset). So how to run the code successfully? I am new to this area and I quite wonder what the "train_xxx.txt" means(error: No such file or directory: './data/images/train_SYMIX.txt'). Do I need to create such txt and what should the txt contain? Thanks a lot.

TalentedMUSE avatar Feb 21 '20 15:02 TalentedMUSE

@CrystalWong2 Yes,the vgg pretrained model found on the network cannont match because the auther has made some modifications to the vgg network and the parameter names are different。If you want to run successfully,you can use the vgg network that comes with torch,just "self.vgg=models.vgg16(pretrained=True).features[:28]" or you can modify the network and model parameters to make them match

feature[:28] or feature[:18]?

Jian-danai avatar Mar 24 '20 04:03 Jian-danai

@TalentedMUSE Hey is it any chance for you to share with your code?

DanielMao2015 avatar Apr 18 '20 12:04 DanielMao2015

@DanielMao2015 Here is my code to generate the txt file.

import os
import sys
import random

"""Among 3834 images, we randomly select 100 non-makeup images and 250 makeup images for test.
The remaining images are separated into training set and validation set."""

train_non_makeup_labels = 'train_SYMIX.txt'
train_makeup_labels = 'train_MAKEMIX.txt'
test_non_makeup_labels = 'test_SYMIX.txt'
test_makeup_labels = 'test_MAKEMIX.txt'

data_path = '/home/xxx/data/makeup_dataset/'
# Windows测试文件夹
# data_path = 'E:/Datasets/makeup_dataset/'
makeup_path = 'all/images/makeup/'
non_makeup_path = 'all/images/non-makeup/'

makeup_files = os.listdir(os.path.join(data_path, makeup_path))
non_makeup_files = os.listdir(os.path.join(data_path, non_makeup_path))

# 每次生成的文件都是随机的
random.shuffle(makeup_files)
random.shuffle(non_makeup_files)

test_non_makeup_files = non_makeup_files[:100]
train_non_makeup_files = non_makeup_files[100:]
test_makeup_files = makeup_files[:250]
train_makeup_files = makeup_files[250:]

with open(os.path.join(data_path, train_non_makeup_labels), 'wt') as f:
    for file_name in train_non_makeup_files:
        file_path = os.path.join(non_makeup_path, file_name)
        mask_file_path = file_path.replace('images', 'segs')
        f.write(file_path + ' ' + mask_file_path)
        f.write('\n')

with open(os.path.join(data_path, train_makeup_labels), 'wt') as f:
    for file_name in train_makeup_files:
        file_path = os.path.join(makeup_path, file_name)
        mask_file_path = file_path.replace('images', 'segs')
        f.write(file_path + ' ' + mask_file_path)
        f.write('\n')

with open(os.path.join(data_path, test_non_makeup_labels), 'wt') as f:
    for file_name in test_non_makeup_files:
        file_path = os.path.join(non_makeup_path, file_name)
        mask_file_path = file_path.replace('images', 'segs')
        f.write(file_path + ' ' + mask_file_path)
        f.write('\n')

with open(os.path.join(data_path, test_makeup_labels), 'wt') as f:
    for file_name in test_makeup_files:
        file_path = os.path.join(makeup_path, file_name)
        mask_file_path = file_path.replace('images', 'segs')
        f.write(file_path + ' ' + mask_file_path)
        f.write('\n')

DateBro avatar May 01 '20 14:05 DateBro

@TalentedMUSE Hey is it any chance for you to share with your code?

txt file generator

import os
file_path = "/BeautyGAN_pytorch/data/images/makeup"
path_list = os.listdir(file_path)
path_name=[]
for i in path_list:
    path_name.append(i)
path_name.sort()
num=0
for file_name in path_name:
    num += 1
    if num>2400:#1115
        with open("/BeautyGAN_pytorch/data/test_MAKEMIX.txt","a") as f:
            f.write(str(file_name)+' '+ str(file_name) + "\n")
        f.close()

Jian-danai avatar May 07 '20 09:05 Jian-danai