В Deeplab v3p, хотя я обучал свои наборы данных, он не работал.Почему это так?
Мое окружение выглядит так:
OS Platform and Distribution: Ubuntu 16.04 lts
TensorFlow installed from: conda
TensorFlow version: 18
Bazel version: no
CUDA/cuDNN version: cuda 9 cudnn 7
GPU model and memory: titan x (2 cards), 64gb memory
Exact command to reproduce: -
Я проделал следующую работу:
a) сгенерировал простоенабор данных:
Тренировочный образ случайным образом размещает две фигуры (круг и прямоугольник) и случайным образом рисует цвет.Для изображения метки установлено значение 0RGB (0, 0, 0) для фона, 1 RGB (1,1,1) для прямоугольника, 2RGB (2, 2, 2) для круга и 255 RGB (255, 255,255) для строки в качестве сегментации.
https://camo.qiitausercontent.com/2be21942628a85c46fd8ffb99e05b257b4b0c980/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f39353633362f62653262306638632d333933322d363434322d336132342d6534306333613466653865612e706e67
https://camo.qiitausercontent.com/323d4f21d792138ebb52f994dc42cc0b5d3ab30d/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f39353633362f34656633633261332d633533372d316134632d653633342d3165663632643734623166392e706e67
b) преобразовать в tf.record
В build_voc2012_data.py
я изменил путь к файлу с исходных наборов данных на свои наборы данных.Затем я запустил его и создал tf.record.
c) тренинг
В segmentation_dataset.py
я добавил ИНФОРМАЦИЮ О ДАННЫХ.
_MYDATASETS_INFORMATION = DatasetDescriptor(
splits_to_sizes={
'train': 10000,
'trainval': 1000,
'val': 1000,
},
num_classes=3,
ignore_label=255,
)
_DATASETS_INFORMATION = {
'cityscapes': _CITYSCAPES_INFORMATION,
'pascal_voc_seg': _PASCAL_VOC_SEG_INFORMATION,
'ade20k': _ADE20K_INFORMATION,
'mydata': _MYDATASETS_INFORMATION
}
Затем я начал тренироваться.
python train.py --logtostderr --train_split=trainval --model_variant=xception_65 --atrous_rates=6 --atrous_rates=12 --atrous_rates=18 --output_stride=16 --decoder_output_stride=4 --train_crop_size=513 --train_crop_size=513 --train_batch_size=4 --training_number_of_steps=1000000 --fine_tune_batch_norm=true --tf_initial_checkpoint="./datasets/y/model.ckpt" --train_logdir="./datasets/x" --dataset_dir="./datasets/z/tfrecord" --dataset=mydata
d) закончил тренировку
В результате одного миллиона итераций минимальные потери составили 4,765.Когда он начал тренироваться, это было 7,56.
e) VIS. два тестовых изображения.
входное изображение: https://camo.qiitausercontent.com/e37afb4ae0e5232a0c0828dad779a4a852462a45/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f39353633362f64363930326231622d386164302d306366612d656433642d6436346537383462636134322e706e67
выходimage: https://camo.qiitausercontent.com/d638a2fc7fe5f5119e2f00d7c0aa59b9b8fc73d4/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f39353633362f36643963643265372d373234362d636434612d303566322d6335623266396237623865352e706e67
входное изображение: https://camo.qiitausercontent.com/8fe89aa43aac3a322ede1ac46d469fc48da6b809/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f39353633362f64313162643834372d323734372d643530642d393366642d6231353661353137613934632e706e67
выходное изображение: https://camo.qiitausercontent.com/94f15de43ce6195bdc8602b800d1275a4830193c/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f39353633362f63623061666663652d613566302d363333302d306362382d6261393964363735333734652e706e67
Исходя из приведенных выше результатов, я думаю, что Deeplab v3 не работает хорошо.Мое использование неправильно?Или настройка параметров неверна?Или обучения недостаточно?