TypeError («Tensor не подлежит изменению») при работе с Tensorflow, Keras и Open CV - PullRequest
0 голосов
/ 06 марта 2020

У меня проблема с каким-то простым кодом обнаружения Yolo, который я портирую на tenorflow 2. Код немного прост, но у меня проблема с фазой обучения "tf.keras.learning_phase (): 0". Это приводит к ошибке err0r

Traceback (most recent call last):
  File "webcam_detect.py", line 188, in <module>
    r_image, ObjectsList = yolo.detect_image(frame)
  File "webcam_detect.py", line 110, in detect_image
    K.learning_phase(): 0
  File "C:\Anaconda3\envs\simplecv\lib\site-packages\tensorflow_core\python\framework\ops.py", line 705, in __hash__
    raise TypeError("Tensor is unhashable if Tensor equality is enabled. "
TypeError: Tensor is unhashable if Tensor equality is enabled. Instead, use tensor.experimental_ref() as the key.
(simplecv) PS C:\dev\lacv\yolov3\yolov3ct>

здесь приведен фрагмент кода, хотя я разместил полный файл в gist

    def detect_image(self, image):
        if self.model_image_size != (None, None):
            assert self.model_image_size[0]%32 == 0, 'Multiples of 32 required'
            assert self.model_image_size[1]%32 == 0, 'Multiples of 32 required'
            boxed_image = image_preporcess(np.copy(image), tuple(reversed(self.model_image_size)))
            image_data = boxed_image

        out_boxes, out_scores, out_classes = self.sess.run(
            [self.boxes, self.scores, self.classes],
            feed_dict={
                self.yolo_model.input: image_data,
                self.input_image_shape: [image.shape[0], image.shape[1]],
                tf.keras.learning_phase(): 0  })

полный код здесь https://gist.github.com/robisen1/31976de17af9e752c6ba8d1dd0e08906

Буду признателен за любую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...