Обнаружение объекта Tensorflow (ssd - mobilnet_v1) не сходится

Я пытаюсь обучить набор данных глубокой моды на api обнаружения объектов тензорного потока. Категории и соответствующее количество изображений в каждом классе следующие.

{'Blouse': 24562, 'Cutoffs': 1669, 'Cardigan': 13311, 'Button-Down': 330, 'Poncho': 791, 'Chinos': 527, 'Top': 10078, 'Anorak': 160, 'Kimono': 2294, 'Blazer': 7497, 'Robe': 150, 'Parka': 676, 'Jodhpurs': 45, 'Sarong': 32, 'Shorts': 19624, 'Caftan': 54, 'Turtleneck': 146, 'Leggings': 5013, 'Jersey': 727, 'Hoodie': 4010, 'Culottes': 486, 'Sweater': 13123, 'Flannel': 324, 'Jeggings': 594, 'Tank': 15418, 'Onesie': 70, 'Coat': 2120, 'Sweatpants': 3021, 'Henley': 716, 'Jacket': 10425, 'Gauchos': 49, 'Sweatshorts': 1098, 'Romper': 7408, 'Joggers': 4405, 'Trunks': 386, 'Halter': 34, 'Dress': 144316, 'Jeans': 14152, 'Tee': 73333, 'Coverup': 34, 'Capris': 154, 'Kaftan': 252, 'Peacoat': 194, 'Bomber': 618, 'Skirt': 29546, 'Jumpsuit': 12306}

Всего 46 классов. Мой график общих потерь, похоже, не опускается до более низких значений. Лучшее до сих пор было около 4. Это мой график. Это нормально для такого количества классов или мне следует использовать другой алгоритм?

Еще одно сомнение, которое у меня есть, это то, что модель тренируется уже около 3 дней. У меня нет графического процессора. Стоит ли останавливать тренировочный процесс?

Редактировать:

train_config: {
  batch_size: 24
  optimizer {
    rms_prop_optimizer: {
      learning_rate: {
        exponential_decay_learning_rate {
          initial_learning_rate: 0.004
          decay_steps: 800720
          decay_factor: 0.95
        }
      }
      momentum_optimizer_value: 0.9
      decay: 0.9
      epsilon: 1.0
    }
  }

Информация об оборудовании:

{
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              6
On-line CPU(s) list: 0-5
Thread(s) per core:  1
Core(s) per socket:  2
Socket(s):           3
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               63
Model name:          Intel(R) Xeon(R) CPU E5-2683 v3 @ 2.00GHz
Stepping:            2
CPU MHz:             1997.686
BogoMIPS:            3995.37
Hypervisor vendor:   VMware
Virtualization type: full
L1d cache:           32K
L1i cache:           32K
L2 cache:            256K
L3 cache:            35840K
NUMA node0 CPU(s):   0-5
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid xsaveopt arat
}

Я новичок в тензорном потоке. Мы будем благодарны за любую помощь. Заранее спасибо.


person kickButtowski    schedule 15.10.2018    source источник


Ответы (1)


  1. Величина общей потери не очень информативна, если вы не укажете точную потерю, которую вы используете, а также она не является ориентировочной, если вы не экспериментировали с этой потерей. Вместо этого более информативными значениями являются показатели производительности вашей модели на вашем тестовом наборе.
  2. Время также не очень показательно, если вы не укажете оборудование, которое вы используете. Вместо этого укажите количество итераций и размер пакета, а также размер ваших обучающих данных или количество эпох, в течение которых вы обучили модель.
  3. Вы использовали падающую скорость обучения? Если вы используете постоянную скорость обучения: (1) с большим значением - тогда сходимость будет менее вероятной; (2) с малым значением - может потребоваться много времени, чтобы сойтись.
person netanel-sam    schedule 15.10.2018
comment
добавил больше информации - person kickButtowski; 15.10.2018
comment
Желательно, чтобы вы указали количество эпох или количество итераций, размер пакета и размер обучающего набора. На мой взгляд, decay_steps, который вы используете, огромен (он практически не гниет). Попробуйте уменьшить его примерно до 10k, а может быть, также уменьшите decay_factor до 0,9. - person netanel-sam; 15.10.2018