У меня есть 250 наборов данных изображений и 250 файлов аннотаций с двумя классами: мяч и игрок.В папке также есть три текстовых файла train.txt, val.txt, test.txt, содержащие соответственно списки обучающих, тестирующих и проверочных изображений.
bball_labels = ('ball','player')
class BBall_dataset(VOCBboxDataset):
def _get_annotations(self, i):
id_ = self.ids[i]
anno = ET.parse(os.path.join(self.data_dir, 'Annotations', id_ +
'.xml'))
bbox = []
label = []
difficult = []
for obj in anno.findall('object'):
bndbox_anno = obj.find('bndbox')
bbox.append([int(bndbox_anno.find(tag).text) - 1 for tag in ('ymin',
'xmin', 'ymax', 'xmax')])
name = obj.find('name').text.lower().strip()
label.append(bball_labels.index(name))
bbox = np.stack(bbox).astype(np.float32)
label = np.stack(label).astype(np.int32)
difficult = np.array(difficult, dtype=np.bool)
return bbox, label, difficult
Из 250 я поставил 170 в качестве поезда, 70 в качестве val и 10 в качестве тестовых изображений.Но при печати длины поезда, val и набора тестовых данных я всегда получаю поезд + 12, поезд + 3 и тест.Например, в этом случае он будет отображаться как 182,73,10 для поезда, val и test.Значение теста не изменяется.Каждый раз значение поезда и val увеличивается на 12 и 3.
valid_dataset = BBall_dataset('BasketballDataset', 'val')
test_dataset = BBall_dataset('BasketballDataset', 'test')
train_dataset = BBall_dataset('BasketballDataset', 'train')
print('Number of images in "train" dataset:', len(train_dataset))
print('Number of images in "valid" dataset:', len(valid_dataset))
print('Number of images in "test" dataset:', len(test_dataset))
Количество изображений в наборе данных "train": 182 Количество изображений в наборе "valid" данных: 73 Количество изображений в наборе "test" данных:10
Почему это происходит и как это предотвратить.И также как-то это влияет на мой тренировочный процесс?
train.txt link (https://imgur.com/B1Gszfi) val.txt link (https://imgur.com/kOcIZ5h)