Странная ошибка "слишком много индексов для массива" - PullRequest
0 голосов
/ 08 июля 2019

Я написал собственный генератор для керас и в этом есть эта функция: он выполнил одну или две итерации, но перестает говорить слишком много индексов для массива в этой строке

label = label[y:(y + dy), x:(x + dx)]

обратите внимание, что все изображения и формы имеют одинаковые размеры!

def random_crop(image, edge, label, random_crop_size=(800, 1600)):
    # Note: image_data_format is 'channel_last'

    assert image.shape[2] == 3
    height, width = image.shape[0], image.shape[1]
    dy, dx = random_crop_size

    x = np.random.randint(0, width - dx + 1)
    y = np.random.randint(0, height - dy + 1)

    image = image[y:(y + dy), x:(x + dx), :]
    print(label.shape)
    print(y,y+dy)
    print(x,x+dx)
    label = label[y:(y + dy), x:(x + dx)]
    if edge is not None:
        edge = edge[y:(y + dy), x:(x + dx)]
        imagePlusEdge = np.zeros((random_crop_size[0], random_crop_size[1], 4))
        imagePlusEdge[:, :, :3] = image
        imagePlusEdge[:, :, -1] = edge[:, :]
        return imagePlusEdge, label
    return image, label

1 Ответ

0 голосов
/ 08 июля 2019

Вы получите эту ошибку, если ваш label является 2D (то есть форма вашего ярлыка не позволяет вам пройти третий индекс) или имеет размеры / форму меньше image.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...