Информация о системе
- Что такое каталог верхнего уровня используемой вами модели : / content / gdrive / My \ Drive / tenorflow_1.9 / модели / исследования
- Написал ли я собственный код (в отличие от использования сценария со стандартным примером, предоставленным в TensorFlow) : Использовал измененный сценарий pets_tf_record для создания tf_record. Script_file
- Платформа и распространение ОС (например, Linux Ubuntu 16.04) : Использование Google Colab
- TensorFlow установлен из (источник) или бинарный) : pip install --upgrade tenorflow == 1.9
- Версия TensorFlow (используйте команду ниже) : установлены и хранилище тензорного потока, и библиотека тензорного потока v1.9
Опишите проблему
Я пытаюсь переобучиться mask_rcnn_inception_v2 . Как только я выдаю команду !python object_detection/train.py --train_dir=object_detection/moved_data/training_inception --pipeline_config_path=object_detection/moved_data/training_inception/mask_rcnn_inception_v2_coco.config
, тренировка прекращается и обработка прекращается. Заметная вещь - это ram bar, он остается нормальным, когда я запускаю команду, и загрузка контрольной точки et c продолжает вести журнал, но непосредственно перед завершением сначала Ram bar показывает 50% потребления в течение нескольких секунд, а затем он становится желтым и показывает 80% потребления и программа завершается. Учитывая некоторую ошибку в модели, я попытался переобучить mask_rcnn_resnet101 , но он также прекратил обучение после еще двух строк регистрации.
Исходный код / журналы
После некоторых вставленных ниже строк предупреждений и регистрации начало было остановлено на
INFO:tensorflow:Restoring parameters from /content/gdrive/My Drive/tensorflow_1.9/models/research/object_detection/moved_data/pre_trained_model/mask_inception/mask_rcnn_inception_v2_coco_2018_01_28/model.ckpt
INFO:tensorflow:Restoring parameters from /content/gdrive/My Drive/tensorflow_1.9/models/research/object_detection/moved_data/pre_trained_model/mask_inception/mask_rcnn_inception_v2_coco_2018_01_28/model.ckpt
INFO:tensorflow:Running local_init_op.
INFO:tensorflow:Running local_init_op.
INFO:tensorflow:Done running local_init_op.
INFO:tensorflow:Done running local_init_op.
INFO:tensorflow:Starting Session.
INFO:tensorflow:Starting Session.
INFO:tensorflow:Saving checkpoint to path object_detection/moved_data/training_inception/model.ckpt
INFO:tensorflow:Saving checkpoint to path object_detection/moved_data/training_inception/model.ckpt
INFO:tensorflow:Starting Queues.
INFO:tensorflow:Starting Queues.
^C
и resnet101 выполнили еще две строки и завершили в
INFO:tensorflow:Restoring parameters from /content/gdrive/My Drive/tensorflow_1.9/models/research/object_detection/moved_data/pre_trained_model/mask_inception/mask_rcnn_inception_v2_coco_2018_01_28/model.ckpt
INFO:tensorflow:Restoring parameters from /content/gdrive/My Drive/tensorflow_1.9/models/research/object_detection/moved_data/pre_trained_model/mask_inception/mask_rcnn_inception_v2_coco_2018_01_28/model.ckpt
INFO:tensorflow:Running local_init_op.
INFO:tensorflow:Running local_init_op.
INFO:tensorflow:Done running local_init_op.
INFO:tensorflow:Done running local_init_op.
INFO:tensorflow:Starting Session.
INFO:tensorflow:Starting Session.
INFO:tensorflow:Saving checkpoint to path object_detection/moved_data/training_inception/model.ckpt
INFO:tensorflow:Saving checkpoint to path object_detection/moved_data/training_inception/model.ckpt
INFO:tensorflow:Starting Queues.
INFO:tensorflow:Starting Queues.
INFO:tensorflow:global_step/sec: 0
INFO:tensorflow:global_step/sec: 0
INFO:tensorflow:Recording summary at step 0.
INFO:tensorflow:Recording summary at step 0.
^C
И то, и другое было прервано, когда индикатор барана стал желтым, показывая более 80% использования
Я прошел через много открытых и закрытых проблем и решений на github, stackoverflow и других форумах, а также, например, gitlab и некоторых других. другой веб-сайт, например, оригинальная документация веб-сайта tenorflow, все заявили, что это может быть проблема ввода модели, иными словами, это проблема или ошибка в tfrecords, train.record, test.record . Поэтому я наблюдал и внимательно изучал файл tfrecords и проверял их. Когда я конвертировал данные в tfrecord, моя структура каталогов была похожа на
| --dataset (84 1280x720 фото)
- | --train
---- | - Аннотации
------ | --mask dir
-------- | --mask png файлы
---- - | --xmls dir
-------- | - окно с привязкой к экземпляру xml файлы
---- | --JPEGImages dir
------ | - данные реальных изображений
---- | --label_map.pbtxt
- | --test (5 1280x720 фото)
---- | - Аннотации
------ | --masks dir
-------- | --mask png files
------ | --xmls dir
-------- | - окно с привязкой к экземпляру xml файлы
---- | --JPEGImages dir
------ | - данные реальных изображений
---- | --label_map.pbtxt
Для проверки tf_record, мой код было import tensorflow as tf
for example in tf.python_io.tf_record_iterator("object_detection/moved_data/dataset/train/train.record-00000-of-00001"):
result = tf.train.Example.FromString(example)
print(result.features.ListFields())
break
, и результат был (в первом примере изображение содержит 7 хлопковых растений, таким образом, маска, связанная коробка и этикетка, текст и c. также 7) [(<google.protobuf.pyext._message.FieldDescriptor object at 0x7f3e7d1368d0>,
{'image/key/sha256': bytes_list {
value: "214bbd487a25966acddfa6c4209d8752ad8369f478b0fd40c453cee138b8bf31"
}
,'image/object/mask': bytes_list {
value: "\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\00۔۔۔202\314(\341\000\000\000\000IEND\256B\202"
value: "\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\005۔۔۔\304\035\366\177\375\262\266\022\000\000\000\000IEND\256B\202"
value: "\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\005۔۔۔363?f8\312\3146\363\351\262\000\000\000\000IEND\256B\202"
۔
۔
۔
value: "\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\005۔۔۔\000\341R\3727\022\001\204b\201\001\
}
, 'image/width': int64_list {
value: 1280
}
, 'image/format': bytes_list {
value: "jpeg"
}
, 'image/object/class/label': int64_list {
value: 1
value: 1
value: 1
value: 1
value: 1
value: 1
value: 1
}
, 'image/height': int64_list {
value: 720
}
, 'image/object/class/text': bytes_list {
value: "cotton"
value: "cotton"
value: "cotton"
value: "cotton"
value: "cotton"
value: "cotton"
value: "cotton"
}
, 'image/source_id': bytes_list {
value: "cotton0"
}
, 'image/object/bbox/ymin': float_list {
value: 0.32499998807907104
value: 0.3444444537162781
value: 0.644444465637207
value: 0.47083333134651184
value: 0.2916666567325592
value: 0.2708333432674408
value: 0.3263888955116272
}
'image/encoded': bytes_list {
value: "\377\330\377\340\000\020JFIF\000\001\001\000\000\00...g\031\352\351R9\346\335\237\377\331}
, 'image/object/bbox/ymax': float_list {
value: 0.47361111640930176
value: 0.5472221970558167
value: 0.762499988079071
value: 0.6666666865348816
value: 0.35555556416511536
value: 0.49861112236976624
value: 0.574999988079071
}
, 'image/object/bbox/xmin': float_list {
value: 0.4320312440395355
value: 0.08671875298023224
value: 0.20703125
value: 0.37031251192092896
value: 0.907031238079071
value: 0.742968738079071
value: 0.63671875
}
, 'image/filename': bytes_list {
value: "cotton0"
}
, 'image/object/bbox/xmax': float_list {
value: 0.5234375
value: 0.22499999403953552
value: 0.2914062440395355
value: 0.48359376192092896
value: 0.9429687261581421
value: 0.8890625238418579
value: 0.7640625238418579
}
})]
это кажется совершенно правильным, по крайней мере, так как python скрипт конвертирует мои реальные изображения, аннотации xmls, masks.png в формат tf.record, ожидайте, что это так, я также расшифровал одно из изображений, используя код, предоставленный Учебное пособие Tensorflow для tf .data и это выглядело следующим образом
Но когда я попытался разобрать tfrecord с
img, label = tf.parse_single_exapmle(tf_record, features = {
'image': tf.FixedLenFeature([], dtype=tf.string),
'label': tf.FixedLenFeature([], dtype=tf.int64)
}
, он выдает ошибка
InvalidArgumentError: Feature: image (data type: string) is required but could not be found. [Op:ParseSingleExample]
и поскольку мое имя переменной изображения в структуре tf_record равно image/encoded
вместо простого image
, предполагая, что это причина, я изменил
tf.parse_single_exapmle(tf_record, features = {
'image': tf.FixedLenFeature([], dtype=tf.string),
'label': tf.FixedLenFeature([], dtype=tf.int64)
}
до
tf.parse_single_exapmle(tf_record, features = {
'image/encoded': tf.FixedLenFeature([], dtype=tf.string),
'image/object/class/label': tf.FixedLenFeature([], dtype=tf.int64)
}
выдано новое сообщение об ошибке
InvalidArgumentError: Key: image/object/class/label. Can't parse serialized Example.
[[Node: ParseSingleExample/ParseSingleExample = ParseSingleExample[Tdense=[DT_STRING, DT_INT64], dense_keys=["image/encoded", "image/object/class/label"], dense_shapes=[[], []], num_sparse=0, sparse_keys=[], sparse_types=[]](arg0, ParseSingleExample/Const, ParseSingleExample/Const_1)]] [Op:IteratorGetNextSync]
Я много раз искал по нему, но не нашел своего решения или этой проблемы решено где угодно. Поэтому я разместил это здесь как новый выпуск. Просим дать указания, как выйти из него. Модель не запускает обучение, это ошибка ввода tf_record или что-то еще_. Кажется, новая проблема, мой репозиторий и сама версия 1.9.