Фон
Я строю нейронную сеть с изображениями и другими числовыми данными в качестве входных данных. Я использую Keras с бэкэндом Tensorflow.
Сеть имеет 2 входные части:
1) изображения с несколькими слоями конвул
2) числовые данные, за которыми следуют плотные слои
Количество уникальных изображений мало, но данные для обучения велики.
Большинство изображений появляются несколько раз во входных данных.
(Уникальное количество изображений: около 2000
данные обучения: 500 000 строк)
Пример:
|---------------------|------------------|
| Image_id | Other data cols |
|---------------------|------------------|
| 1 | 1 |
|---------------------|------------------|
| 1 | 2 |
|---------------------|------------------|
| 1 | 3 |
|---------------------|------------------|
| 2 | 4 |
|---------------------|------------------|
| 2 | 5 |
|---------------------|------------------|
Мой вопрос:
Есть ли способ повторно использовать данные изображения, уже находящиеся в памяти, во время тренировки, вместо создания огромного массива со всеми соответствующими данными изображения?
Обычный подход будет выглядеть примерно так:
scaled pixel values for image 1 - other data 1
scaled pixel values for image 1 - other data 2
scaled pixel values for image 1 - other data 3
...
scaled pixel values for image 1 - other data 1000
Как вы можете видеть, этот подход приведет к созданию массива с повторяющимися данными изображения, который будет занимать слишком много памяти.
Удивительно сложно найти подобные случаи в сети. Спасибо за любой совет.