Как избежать определения целевых тензоров в Tensorflow 2 для модели потерь CT C? - PullRequest
1 голос
/ 26 апреля 2020

Я пытаюсь использовать tf.distribute.MirroredStrategy () для обучения нескольких графических процессоров в Tensorflow 2, на модели с потерей CT C.

Проблема в том, что для компиляции модели необходимо определить target_tensors , Что может быть причиной этого? Есть ли обходной путь и модель компиляции без определения target_tensors?

Если я не передал цели, я получаю следующее:

TypeError: Value passed to parameter 'indices' has DataType float32 not in list of allowed values: uint8, int32, int64

Модель определяется с помощью функционального API Keras с использованием чего-то вроде :

model = Model(name ='Joined_Model_2',inputs=self.inp, outputs=[self.network.outp, self.network.outp_stt])

Модель должна быть скомпилирована следующим образом:

self.model_joined.compile(optimizer=optimizer_stt,
            loss=losses,
            loss_weights= lossWeights,
            target_tensors=[target1, target2]                      
            )

Модель имеет 2 выхода, но потеря CT C, используемая на втором, вызывает проблему.

1 Ответ

0 голосов
/ 04 мая 2020

Это решается с помощью версии tf-nightly.

Tf-nightly не позволяет использовать target_tensors в режиме активного исполнения. С ночной версией моя модель успешно скомпилирована без целевых тензоров (без изменений в реализации), поэтому проблема решена.

...