Предварительная обработка для использования модели VGG с весами VGGFace - PullRequest
0 голосов
/ 21 января 2019

Какие этапы предварительной обработки необходимо выполнить для обучения тонко настроенной модели VGG с предварительно подготовленными весами VGGFace?

Я пытаюсь вписать массив изображений размером 224x224x3 в мою точно настроенную модель VGG (заблокирован последний4 слоя сети) и добавили несколько плотных слоев поверх него.Обучение занимает много времени, но получаемая в результате точность очень низкая, точность менее 1%, и модель никогда не учится вообще.

Я использовал это:

vgg16.preprocess_input(img_array)

Я ожидаю, что моя модель будет учиться по крайней мере, если не даст хорошую точностьЧто я могу делать не так?

1 Ответ

0 голосов
/ 21 января 2019

Точную логику предварительной обработки вы можете найти на github.Для VGG16 используется функция предварительной обработки общего назначения для imagenet.Вы можете найти функцию здесь .Это довольно многословно, потому что работает как с массивами numpy, так и с тензорами, но то, что делает, описано в строке документации:

x: Input Numpy or symbolic tensor, 3D or 4D.
    The preprocessed data is written over the input data
    if the data types are compatible. To avoid this
    behaviour, `numpy.copy(x)` can be used. data_format: Data format of the image tensor/array. mode: One of "caffe", "tf" or "torch".
    - caffe: will convert the images from RGB to BGR,
        then will zero-center each color channel with
        respect to the ImageNet dataset,
        without scaling.
    - tf: will scale pixels between -1 and 1,
        sample-wise.
    - torch: will scale pixels between 0 and 1 and then
        will normalize each channel with respect to the
        ImageNet dataset.
...