Я пытаюсь обучить нейронную сеть в керасе, которая требует от меня обучения модели в пакетном режиме. Я хочу использовать пакетный размер 3 изображения, и в общей сложности 20 изображений.
Я хочу случайным образом выбрать 3 уникальных идентификатора изображения из списка из 20 идентификаторов изображений в одном пакете. Этот процесс будет повторяться на протяжении всей эпохи.
import numpy as np
image_list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
epoch = 10
num = 3 # number of values to choose from
for ep in range(epoch):
count = 0
ilist = image_list
while count <= len(image_list):
if len(ilist)<num:
# This condition works when sample size is greater than population size
image_index = list(np.random.choice(image_list,len(image_list)))
else:
image_index = list(np.random.choice(image_list,num,replace = False))
for c in image_index:
ilist.remove(c)
# image_index
# data loading code
# feature extraction code
# model training
count += len(image_index)
image_list - список из 20 уникальных идентификаторов изображений. В каждую эпоху train_id будет случайным образом выбирать 3 уникальных идентификатора, если для параметра some_condition установлено значение True. Я получаю ошибку в train_id («Размер выборки больше, чем размер популяции») , когда я выбираю случайным образом 3 значения, когда в image_list осталось только 2 уникальных значения.
Я попытался найти замену np.random.choice для этой ошибки, но не смог найти.