OOM при выделении тензора с формой [1,48,48,1024] и типом float on /job:localhost/replica:0/task:0/device:GPU:0 с помощью распределителя GPU_0_bfc
Я пытаюсь воспроизвести обучение RCNN маски в следующем репозитории: https://github.com/maxkferg/metal-defect-detection
Фрагмент кода поезда следующий:
# Training - Stage 1
print("Training network heads")
model.train(dataset_train, dataset_val,
learning_rate=config.LEARNING_RATE,
epochs=40,
layers='heads')
# Training - Stage 2
# Finetune layers from ResNet stage 4 and up
print("Fine tune Resnet stage 4 and up")
model.train(dataset_train, dataset_val,
learning_rate=config.LEARNING_RATE,
epochs=120,
layers='4+')
# # Training - Stage 3
# # Fine tune all layers
print("Fine tune all layers")
model.train(dataset_train, dataset_val,
learning_rate=config.LEARNING_RATE / 10,
epochs=160,
layers='all')
Этап-1 проходит гладко. Но не получается из Этапа-2. Предоставляя следующее:
2020-08-17 15:53:10.685456: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 123 блока размером 2048, всего 246,0 КБ 2020-08-17 15:53:10.685456: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 1 фрагменты размера 2816 на общую сумму 2,8 КиБ 2020-08-17 15:53:10.686456: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 6 блоков размером 3072 на общую сумму 18,0 КБ 2020-08-17 15:53:10.686456: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 387 блоков размером 4096 на общую сумму 1,51 МБ 2020-08-17 15:53:10.687456: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 1 фрагмент размером 6144 на общую сумму 6,0 КБ 2020-08-17 15: 53: 10.687456: IC: \ tf_jenkins \ workspace \ rel-win \ M \ windows-gpu \ PY \ 36 \ tensorflow \ core \ common_runtime \ bfc_allocator. cc: 680] 1 фрагменты размером 6656 на общую сумму 6,5 КБ 2020-08-17 15:53:10.688456: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 60 фрагментов размером 8192 на общую сумму 480,0 КБ 2020-08-17 15:53:10.688456: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 2 фрагмента размером 9216 общим объемом 18,0 КБ 2020-08-17 15:53:10.689456: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 12 фрагментов размером 12288 на общую сумму 144,0 КБ 2020-08-17 15:53:10.689456: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 2 фрагмента размером 16384 на общую сумму 32,0 КБ 2020-08-17 15:53:10.690456: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 1 фрагмент размером 21248 на общую сумму 20,8 КБ 2020-08-17 15:53:10.691456: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 1 фрагмент размером 24064 общим объемом 23,5 КБ 17.08.2020 15:53:10.691456: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 5 фрагментов размером 24576 общим объемом 120,0 КБ 17.08.2020 15:53:10.692456: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 1 фрагменты размером 37632, всего 36.8KiB 2020-08-17 15:53:10.692456: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 1 фрагменты размером 40960 всего 40,0 КБ 2020-08-17 15:53:10.693456: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 4 блока размер 49152 на общую сумму 192,0 КБ 2020-08-17 15:53:10.693456: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 6 Чанки размером 65536 на общую сумму 384,0 КБ 2020-08-17 15:53:10.694456: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 1 фрагменты размером 81920 общим объемом 80,0 КБ 2020-08-17 15:53:10.695456: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 1 фрагменты размером 90624 общим объемом 88,5 КБ 2020-08-17 15: 53: 10.695456: IC: \ tf_jenkins \ workspace \ rel-win \ M \ windows-gpu \ PY \ 36 \ tensorflow \ core \ common_runtime \ bfc_allocator. cc: 680] 1 Блоки размером 131072 на общую сумму 128,0 КБ 2020-08-17 15:53:10.695456: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 3 блока размером 147456 на общую сумму 432,0 КБ 2020-08-17 15:53:10.696456: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 12 блоков размером 262144 на общую сумму 3,00 МБ 2020-08-17 15: 53: 10.696456: IC: \ tf_jenkins \ workspace \ rel-win \ M \ windows-gpu \ PY \ 36 \ tensorflow \ core \ common_runtime \ bfc_allocator.cc: 680] 1 Блоки размером 327680 общим объемом 320,0 КБ 2020-08-17 15:53:10.697457: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 11 фрагментов размером 524288 на общую сумму 5,50 МБ 2020-08-17 15:53:10.697457: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 4 блока размером 589824 на общую сумму 2,25 МБ 17.08.2020 15:53:10.698457: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 194 фрагмента размером 1048576 на общую сумму 194,00 МБ 2020-08-17 15:53:10.699457: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 17 фрагментов размером 2097152 на общую сумму 34,00 МБ 17 августа 2020 г. 15: 53: 10.699457: IC: \ tf_jenkins \ workspace \ rel-win \ M \ windows-gpu \ PY \ 36 \ tensorflow \ core \ common_runtime \ bfc_allocator.cc: 680] 1 фрагменты размером 2211840, всего 2.11MiB 2020-08-17 15:53:10.700457: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 146 блоков размером 2359296 всего 328,50MiB 2020-08-17 15:53:10.701457: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 1 фрагменты размер 2360320 всего 2,25 МБ 2020-08-17 15: 53: 10.701457: IC: \ tf_jenkins \ workspace \ rel-win \ M \ windows-gpu \ PY \ 36 \ tensorflow \ core \ common_runtime \ bfc_allocator.cc: 680] 1 Чанки размером 2621440 на общую сумму 2,50 МБ 2020-08-17 15:53:10.702457: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 1 фрагменты размером 2698496 на общую сумму 2,57 МБ 2020-08-17 15: 53: 10.702457: IC: \ tf_jenkins \ workspace \ rel-win \ M \ windows-gpu \ PY \ 36 \ tensorflow \ core \ common_runtime \ bfc_allocator.cc:680] 1 фрагмент размером 3670016 общим объемом 3,50 МБ 2020-08-17 15:53:10.703457: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 31 фрагмент размером 4194304 на общую сумму 124,00 МБ 2020-08-17 15:53:10.703457: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 6 фрагментов размером 4718592 на общую сумму 27,00 МБ 2020-08-17 15:53:10.704457: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 5 блоков размером 8388608 на общую сумму 40,00 МБ 2020-08-17 15:53:10.705457: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 25 фрагментов размером 9437184 на общую сумму 225,00 МБ 2020-08-17 15: 53: 10.705457: IC:\ tf_jenkins \ workspace \ rel-win \ M \ windows-gpu \ PY \ 36 \ tensorflow \ core \ common_runtime \ bfc_allocator.cc: 680] 2 фрагмента размером 9438208 на общую сумму 18,00 МБ 2020-08-17 15:53:10.706457: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 1 фрагмент размером 9441280 на общую сумму 9,00 МБ 17.08.2020 15:53: 10.706457: IC: \ tf_jenkins \ workspace \ rel-win \ M \ windows-gpu \ PY \ 36 \ tensorflow \ core \ common_runtime \ bfc_allocator.cc: 680] 1 фрагмент размером 16138752 на общую сумму 15,39 МБ 2020-08-17 15:53:10.707457: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 1 фрагмент размером 18874368 на общую сумму 18,00 МБ 2020-08-17 15:53:10.707457: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 1 фрагменты размером 37748736, всего 36.00MiB 2020-08-17 15:53:10.708457: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:680] 7 блоков размером 51380224 итого 343,00 МБ 2020-08-17 15:53:10.708457: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:684] Сумма Всего используемые блоки: 1.41 ГиБ 2020-08-17 15:53:10.709457: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:686] Статистика: Лимит: 1613615104 InUse: 1510723072 MaxInUse: 1510723072 NumAllocs: 3860 MaxAllocSize: 11994777600MiB 2020-08-17 15:53:10.708457: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:684] Сумма Всего in- используйте чанки: 1.41GiB 2020-08-17 15: 53: 10.709457: IC: \ tf_jenkins \ workspace \ rel-win \ M \ windows-gpu \ PY \ 36 \ tensorflow \ core \ common_runtime \ bfc_allocator.cc: 686] Статистика: Limit: 1613615104 InUse: 1510723072 MaxInUse: 1510723072 NumAllocs: 3860 MaxAllocSize: 11994777600MiB 2020-08-17 15:53:10.708457: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\bfc_allocator.cc:684] Сумма Всего in- используйте блоки: 1.41GiB 2020-08-17 15: 53: 10.709457: IC: \ tf_jenkins \ workspace \ rel-win \ M \ windows-gpu \ PY \ 36 \ tensorflow \ core \ common_runtime \ bfc_allocator.cc: 686] Статистика: Limit: 1613615104 InUse: 1510723072 MaxInUse: 1510723072 NumAllocs: 3860 MaxAllocSize: 1199477761510723072 MaxInUse: 1510723072 NumAllocs: 3860 MaxAllocSize: 1199477761510723072 MaxInUse: 1510723072 NumAllocs: 3860 MaxAllocSize: 119947776
Обучение проводится на QuadroK420 с 2 ГБ оперативной памяти. Проблема только в нехватке оперативной памяти или что-то не хватает? Есть ли способ тренироваться с моим оборудованием?
3 ответа
Проблема в памяти gpu вашей видеокарты.
На первом этапе вы могли тренироваться плавно, потому что вы тренировали только "головы" сети, что означает небольшое количество параметров.
На втором этапе вы начали избавляться от проблем с памятью, потому что вы обучили намного больше слоев, что привело к нехватке памяти.
Я предлагаю использовать видеокарту с объемом видеопамяти не менее 8 ГБ для проблем с компьютерным зрением.
Действительно, иногда проблемы с нехваткой памяти можно решить, уменьшив размер пакета, но в вашем случае единственное жизнеспособное решение - выбрать видеокарту большего / лучшего качества.
Скорее всего, это проблема с оперативной памятью. Вы можете попробовать уменьшить размер пакета до 1 или упростить сеть. Если любой из этих методов работает, возьмите что-нибудь с большей оперативной памятью.
один из способов исправить это иногда - добавить в модель слой с повышающей дискретизацией. так что опустите цель в генераторе изображений, а затем добавьте слой с повышающей дискретизацией. Это хороший способ обмануть его. Если это сработает, значит, вы знаете, что colab не справится с этим.