Я пытался обучить модель с динамическим c входным размером изображений. он отлично работает для batch_size = 1, но выдает ошибку, если размер партии больше 1 введите описание изображения здесь
после копания я узнал, что только numpy позволяет изображениям одинаковой формы передаваться в виде пакета.
код выглядит следующим образом
enter code here
def sample_images(data_dir, batch_size):
# Make a list of all images inside the data directory
all_images = glob.glob(data_dir)
# print(all_images)
images_batch = np.random.choice(all_images, size=batch_size)
#creating empty arrays for sets of given batch size
low_resolution_images_set = []
high_resolution_images_set = []
for x in range(int(len(all_images)/batch_size)):
# Choose a random batch of images
images_batch = np.random.choice(all_images, size=batch_size)
low_resolution_images = []
high_resolution_images = []
for img in images_batch:
# Get an ndarray of the current image
img1 = imread(img, mode='RGB')
frame = cv2.imread(img)
height, width, channels = frame.shape
img1 = img1.astype(np.float32)
low_resolution_shape = (int(height/4), int(width/4), channels)
high_resolution_shape = (low_resolution_shape[0]*4, low_resolution_shape[1]*4, channels)
img1_high_resolution = imresize(img1, high_resolution_shape)
img1_low_resolution = imresize(img1, low_resolution_shape)
# Do a random flip
if np.random.random() < 0.5:
img1_high_resolution = np.fliplr(img1_high_resolution)
img1_low_resolution = np.fliplr(img1_low_resolution)
high_resolution_images.append(img1_high_resolution)
low_resolution_images.append(img1_low_resolution)
high_resolution_images_set.append(high_resolution_images)
low_resolution_images_set.append(low_resolution_images)
return np.array(high_resolution_images_set), np.array(low_resolution_images_set)
enter code here
как обучить мою архитектуру размеру пакета?