`TypeError: неподдерживаемые типы операндов для *: 'Operation' и 'int'`. Керас тензор потока - PullRequest
1 голос
/ 11 января 2020

Я пытаюсь реализовать модель 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'

...