- Да, многомерные массивы (тензоры) очень полезны для хранения представлений изображений разных размеров. Избегайте Pandas для целей ввода данных - это намного менее вычислительно эффективнее, чем numpy массивы или тензоры (т. Е. Тензорный поток или pytorch)
- Абсолютно. Для этой цели express Keras имеет класс ImageDataGenerator . Некоторые примеры приведены на этой странице, а также из здесь :
# example of progressively loading images from file
from keras.preprocessing.image import ImageDataGenerator
# create generator
datagen = ImageDataGenerator()
# prepare an iterators for each dataset
train_it = datagen.flow_from_directory('data/train/', class_mode='binary')
val_it = datagen.flow_from_directory('data/validation/', class_mode='binary')
test_it = datagen.flow_from_directory('data/test/', class_mode='binary')
# confirm the iterator works
batchX, batchy = train_it.next()
print('Batch shape=%s, min=%.3f, max=%.3f' % (batchX.shape, batchX.min(), batchX.max()))
И у pytorch есть класс DataLoader . Пример:
# normalize data inputs
transform = transforms.Compose([
transforms.ToTensor(), # Transform to tensor
transforms.Normalize((0.5,), (0.5,)) # Min-max scaling to [-1, 1]
])
# load train/test sets
trainset = torchvision.datasets.FashionMNIST(root=data_dir, train=True, download=True, transform=transform)
testset = torchvision.datasets.FashionMNIST(root=data_dir, train=False, download=True, transform=transform)
# define classes
classes = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat', 'Sandal',
'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
# initialize train/test generators
trainloader = torch.utils.data.DataLoader(trainset, batch_size=32, shuffle=True)
testloader = torch.utils.data.DataLoader(testset, batch_size=5, shuffle=False)