Я учусь использовать среду глубокого обучения Chainer , и у меня проблемы с обучением GoogLeNet в ImageNet.
Я использую приведенный пример и назовите его, используя:
python2 train_imagenet.py
--arch googlenet
--batchsize 64
--epoch 10
--gpu 0
--mean ~/data/imagenet/ILSVRC2012_devkit_t12/data/mean_RGB_256x256.npy
--out output/
--root ~/data/imagenet/dataset_sample_256x256/
--val_batchsize 8
~/data/imagenet/lists/train_files_sample.txt
~/data/imagenet/lists/val_files_sample.txt
Я использую подмножество ImageNet из 5000 изображений, каждое изображение изменено в 256x256 и преобразовано в RGB при необходимости.
Моя потеря даже немного не меняется,как показано в журнале ниже.Когда я записываю предсказанный класс, он всегда заканчивается после нескольких итераций, предсказывающих всегда один и тот же класс (но этот класс меняется, когда я запускаю его снова).Я дважды проверил свой набор данных, и все выглядит нормально, я использую идентификаторы меток ImageNet, и мои txt-файлы содержат пары пути и метки, по одной на строку.
epoch iteration main/loss validation/main/loss main/accuracy validation/main/accuracy lr
1 100 11.0533 0.00015625 0.01
2 200 11.0533 0.00078125 0.01
3 300 11.0533 0.00046875 0.01
5 400 11.0533 0.0009375 0.01
6 500 11.0531 0.000625 0.01
7 600 11.0532 0.00078125 0.01
8 700 11.0533 0.0009375 0.01
Так как это код из официального репо,Я думаю, что-то не так с моим подмножеством.Правильна ли моя предварительная обработка?Разве 5000 не достаточно (не для того, чтобы достичь современного уровня, но чтобы действительно чему-то научиться)?
Спасибо за любые идеи о том, что может быть не так.