Я пытаюсь построить семантическую модель сегментации в керасе.Поскольку я использую пользовательские данные, я решил написать собственный генератор, чтобы передать его функции keras _.fit_generator
, и я зашел в тупик при решении этой ошибки генератора, которая говорит:
UnboundLocalError: local variable 'zipped' referenced before assignment
После некоторогоИсследования github и stackover, я обнаружил, что "https://github.com/keras-team/keras/issues/1638#issuecomment-182139908" ans похож на мою проблему, и даже это решение, похоже, не работает, выдает ту же ошибку снова
def image_segmentation_generator( PROC_DATA, target_size,
batch_size , gen, do_augment=False):
if gen=='train':
images_path = PROC_DATA+'/train_images/images'
segs_path = PROC_DATA+'/train_labels/labels'
elif 'val':
images_path = PROC_DATA+'/val_images/images'
segs_path = PROC_DATA+'/val_labels/labels'
img_seg_pairs = get_pairs_from_paths( images_path , segs_path)
random.shuffle( img_seg_pairs )
zipped = itertools.cycle( img_seg_pairs )
while True:
X = []
Y = []
for _ in range( batch_size) :
im , seg = next(zipped)
im = cv2.imread(im , 1 )
im = cv2.resize(im,(target_size[0],target_size[1]))
seg = cv2.imread(seg , 0 )
seg = ia.imresize_single_image(seg, (target_size),
interpolation='nearest')
if do_augment:
img , seg[:,:,0] = augment_seg( img , seg[:,:,0] )
X.append( get_image_arr(im ) )
Y.append( get_segmentation_arr( seg ) )
yield np.array(X) , np.array(Y)
my_gen = image_segmentation_generator(...)
my_gen.next()
должно датьфреймы изображений и меток с заданным размером пакета.
трассировка стека: im, seg = next (zip) UnboundLocalError: локальная переменная 'zipped', на которую ссылается перед присваиванием
Как это исправить?