2017-11-23 16 views
0

깊은 학습을 위해 Faster RCNN library을 사용합니다. 여기에 discussion 자신의 데이터 집합을 훈련시키는 방법이 있습니다. 그것은 나보다 한 발 앞선다.교육을 위해 얼마나 빠른 RCNN 라이브러리로드 교육 데이터 세트가 필요합니까?

저는 교육을위한 데이터 세트가 어떻게 설정되고 교육을 위해 어떻게로드되는지 이해하고 싶습니다.

내가 코드를 살펴

, 나는 train_faster_rcnn_alt_opt.py의 코드

imdb = get_imdb(imdb_name)이 줄을보고는 factory.py inside datasets folder를 호출합니다.

factory.py 내가이 IMDB 이름 voc_2007_trainval 훈련 데이터가 훈련을 위해로드하는 방법을 궁금

for year in ['2007', '2012']: 
    for split in ['train', 'val', 'trainval', 'test']: 
     name = 'voc_{}_{}'.format(year, split) 
     __sets[name] = (lambda split=split, year=year: pascal_voc(split, year)) 

# Set up coco_2014_<split> 
for year in ['2014']: 
    for split in ['train', 'val', 'minival', 'valminusminival']: 
     name = 'coco_{}_{}'.format(year, split) 
     __sets[name] = (lambda split=split, year=year: coco(split, year)) 

# Set up coco_2015_<split> 
for year in ['2015']: 
    for split in ['test', 'test-dev']: 
     name = 'coco_{}_{}'.format(year, split) 
     __sets[name] = (lambda split=split, year=year: coco(split, year)) 

def get_imdb(name): 
    """Get an imdb (image database) by name.""" 
    if not __sets.has_key(name): 
     raise KeyError('Unknown dataset: {}'.format(name)) 
    return __sets[name]() 

def list_imdbs(): 
    """List all registered imdbs.""" 
    return __sets.keys() 

이있다?

편집 : __sets[name]() inside def get_imdb(name):을 인쇄 할 때 다음을 참조하십시오.

p __sets[name]() 
<datasets.pascal_voc.pascal_voc object at 0x7fc937383ed0> 

그 의미는 무엇입니까?

+0

''pascal_voc' 클래스의'datasets/pascal_voc.py'를보세요. – Shai

+1

@ Tanks Shai, 나는 길을 발견했다. – batuman

답변

0

이제 알았습니다. lib 디렉토리/데이터 세트/factory.py가

def get_imdb(name): 
    """Get an imdb (image database) by name.""" 
    if not __sets.has_key(name): 
     raise KeyError('Unknown dataset: {}'.format(name)) 
    return __sets[name]() 

__sets은 [이름] 우리가 훈련 명령에 --imdb voc_2007_trainval을 설정 때문에

for year in ['2007', '2012']: 
    for split in ['train', 'val', 'trainval', 'test']: 
     name = 'voc_{}_{}'.format(year, split) 
     __sets[name] = (lambda split=split, year=year: pascal_voc(split, year)) 

를 호출 가지고, 그것이 무엇을하면 프로그램이 내부에 언급 된 이미지를로드 할 수 있다는 것입니다 trainval 파일 data/VOCdevkit2007/VOC2007/ImageSets/Main/trainval.txt 파일입니다.

--imdb voc_2007_train으로 설정하면 train.txt이 사용됩니다. 모든 이미지는 JPEGImages 폴더 안에 있으며 주석은 주석 폴더에 있습니다.