Я пытаюсь реализовать модель yolov3 на основе приведенного здесь кода (https://github.com/experiencor/keras-yolo3/blob/master/yolo.py)
Этот код был написан в тензорном потоке 1.x и пытаюсь преобразовать его в 2,0. Я пытаюсь внести все необходимые изменения, например tf.Print to tf.print
et c. Но я застрял в строке 192 return loss*self.grid_scale
. Я получаю ошибку TypeError: unsupported operand type(s) for *: 'Operation' and 'int'
. Как мне получить значение внутри loss
. В настоящее время получаю операцию типа назад. Я пытаюсь получить значение внутри операции. Я попытался execute_eagerly,.eval
, но все еще не смог получить значение операции.
Полный код находится по ссылке выше. И основной фрагмент:
loss = tf.print('avg_obj \t\t:',loss, [grid_h, avg_obj],output_stream=sys.stderr)
loss = tf.print(loss, [grid_h, avg_noobj], 'avg_noobj \t\t', summarize=1000)
loss = tf.print(loss, [grid_h, avg_iou], 'avg_iou \t\t', summarize=1000)
loss = tf.print(loss, [grid_h, avg_cat], 'avg_cat \t\t', summarize=1000)
loss = tf.print(loss, [grid_h, recall50], 'recall50 \t', summarize=1000)
loss = tf.print(loss, [grid_h, recall75], 'recall75 \t', summarize=1000)
loss = tf.print(loss, [grid_h, count], 'count \t', summarize=1000)
loss = tf.print(loss, [grid_h, tf.reduce_sum(loss_xy),
tf.reduce_sum(loss_wh),
tf.reduce_sum(loss_conf),
tf.reduce_sum(loss_class)], 'loss xy, wh, conf, class: \t', summarize=1000)
return loss*self.grid_scale
Вот полная трассировка ошибки
Трассировка (последний последний вызов):
File "", строка 1, в runfile ('C: / Users / Sree / Documents / keras-yolo3-master / train.py', wdir = 'C: / Users / Sree / Documents / keras-yolo3-master')
Файл "C: \ Users \ Sree \ Anaconda3 \ envs \ensorflow2 \ lib \ site-packages \ spyder_kernels \ customize \ spydercustomize.py", строка 827, в исполняемом файле исполняемого файла (имя файла, пространство имен)
Файл "C: \ Users \ Sree \ Anaconda3 \ envs \ensorflow2 \ lib \ site-packages \ spyder_kernels \ customize \ spydercustomize.py", строка 110, в execfile exe c (компилировать (f.read ( ), имя файла, 'exe c'), пространство имен)
Файл "C: / Users / Sree / Documents / keras-yolo3-master / train.py", строка 279, в main (args)
Файл "C: / Users / Sree / Documents / keras-yolo3-master / train.py", строка 241, в main class_scale = config ['train'] ['class_scale'],
Файл "C: / Users / Sree / Documents / keras-yol o3-master / train.py ", строка 131, в create_model class_scale = class_scale
Файл" C: \ Users \ Sree \ Documents \ keras-yolo3-master \ yolo.py ", строка 320, в create_yolov3_model class_scale) ([input_image, pred_yolo_1, true_yolo_1, true_boxes])
Файл "C: \ Users \ Sree \ Anaconda3 \ envs \ensorflowflow \ lib \ site-packages \ keras \ backend \ tensflowbacke_backs_end_back_end_ensol_back. py ", строка 75, в symbolic_fn_wrapper возвращает fun c (* args, ** kwargs)
Файл" C: \ Users \ Sree \ Anaconda3 \ envs \ tenorsflow2 \ lib \ site-packages \ keras \ engine \ base_layer.py ", строка 489, в вызов output = self.call (входные данные, ** kwargs)
File" C: \ Users \ Sree \ Documents \ keras-yolo3-master \ yolo.py ", строка 206, в потере возврата вызова * self.grid_scale
TypeError: неподдерживаемые типы операндов для *: 'Operation' и 'int'