Gluoncv fcn: should replace trainval with train?


#1
    BASE_DIR = 'VOC2012'
    NUM_CLASS = 21
    def __init__(self, root=os.path.expanduser('~/.mxnet/datasets/voc'),
                 split='train', mode=None, transform=None):
        super(VOCSegmentation, self).__init__(root, split, mode, transform)
        _voc_root = os.path.join(root, self.BASE_DIR)
        _mask_dir = os.path.join(_voc_root, 'SegmentationClass')
        _image_dir = os.path.join(_voc_root, 'JPEGImages')
        # train/val/test splits are pre-cut
        _splits_dir = os.path.join(_voc_root, 'ImageSets/Segmentation')
        if split == 'train':
            _split_f = os.path.join(_splits_dir, 'trainval.txt')
        elif split == 'val':
            _split_f = os.path.join(_splits_dir, 'val.txt')
        elif split == 'test':
            _split_f = os.path.join(_splits_dir, 'test.txt')
        else:
            raise RuntimeError('Unknown dataset split.')

this codes are from gluoncv.data.pascal_voc.segmentation.py. here using “trainval” for train and “val” for val is correct? i think “val” is just subset of 'trainval"


#2

No, train and val are different sets. And by convention, if you are not doing competition, you probably want to group them into a larger training set.