Постановка задачи
У меня есть набор данных с
N
изображениями.Определенная сеть (например, Alexnet) должна быть обучена с нуля на этом наборе данных.
Для каждого изображения должны быть созданы
10
дополненные версии. Эти дополнения включают изменение размера, обрезку и отражение. Например, размер изображения должен быть изменен с минимальным размером256
пикселей, а затем необходимо случайным образом обрезать его224 x 224
. Затем его нужно перевернуть.5
такие случайные урожаи должны быть взяты, а также должны быть подготовлены их перевернутые версии.Эти дополненные версии должны быть отправлены в сеть для обучения вместо исходного изображения.
Что было бы дополнительно очень полезно, так это то, что несколько изображений в наборе данных дополняются параллельно и помещаются в очередь или любой контейнер, откуда a
batchsize
количество выборок помещается в графический процессор для обучения.- The reason is that we would not ideally like multiple augmented versions of the same image going into the network for training simultaneously.
Контекст
- Это не случайное требование функции. Есть некоторые документы, такие как OverFeat, в которых упоминаются такие дополнения. Более того, такое случайное обучение может быть очень хорошей идеей для улучшения обучения сети.
Мое понимание
В меру своих поисков я не смог найти внутри CNTK ни одного фреймворка, который мог бы это сделать.
Вопросы
- Можно ли добиться в CNTK?