2017-11-23 4 views
0

Ich benutze Faster RCNN library für Deep Learning und hier ist ein discussion von, wie man eigenen Datensatz zu trainieren. Das ist mir einen Schritt voraus.Wie schneller RCNN Bibliothek Trainingsdatensatz für das Training laden?

Ich mag es zu verstehen, wie der Datensatz für das Training eingerichtet ist und wie es für das Training geladen wird?

Wenn ich den Code anschauen, sah ich diese Codezeile

imdb = get_imdb(imdb_name) von train_faster_rcnn_alt_opt.py und es ruft factory.py inside datasets folder.

factory.py hat

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() 

Ich frage mich, wie Trainingsdaten für diese imdb Name voc_2007_trainval für die Ausbildung geladen wird?

EDIT: Wenn ich __sets[name]() inside def get_imdb(name): drucke, sehe ich Folgendes.

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

Was bedeutet das?

+0

betrachten Sie 'datasts/pascal_voc.py' in der Klasse' pascal_voc'. – Shai

+1

@Thanks Shai, ich fand den Weg. – batuman

Antwort

0

Jetzt habe ich verstanden. lib/Datensätze/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 hat [name]

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)) 

nennt Da wir --imdb voc_2007_trainval im Training Befehl gesetzt, was sie tut, ist, dass das Programm der innen angegeben Bilder laden Trainval Datei in data/VOCdevkit2007/VOC2007/ImageSets/Main/trainval.txt Datei. Wenn wir --imdb voc_2007_train einstellen, wird verwendet. Alle Bilder befinden sich im Ordner "JPEGImages" und die Anmerkungen befinden sich im Ordner "Annotations".

Verwandte Themen