Может ли Lucid визуализировать блоки MobileNet V3 Squeeze / Excite - PullRequest
0 голосов
/ 07 ноября 2019

Я подготовил несколько графиков, используя предоставленное определение MobileNet V3 (маленькое), но когда я запускаю (tenorflow) Lucid для генерации визуализаций, Lucid завершается с ошибкой. Если я изменю определение, чтобы исключить блоки Squeeze / Excite, тогда будут генерироваться визуализации.

С установленными Tensorflow 1.14 и Lucid я скачал отсюда обученный файл графика MobileNet V3 "Small dm = 0.75 (float)"(https://github.com/tensorflow/models/tree/master/research/slim/nets/mobilenet), извлек файлы в мой «D: / temp» и запустил следующий код:

import tensorflow as tf
import lucid.optvis.render as render
from lucid.modelzoo.vision_base import Model

class SSDMobilenetV3( Model ):
    def __init__( self, graph_path  ):        
        self.model_path = graph_path
        self.input_name = "input"
        self.image_shape = [ 224, 224, 3 ]
        self.image_value_range = ( -1, 1 )
        super().__init__()

model = SSDMobilenetV3( "D:/temp/v3-small_224_0.75_float/v3-small_224_0.75_float.pb" )
model.load_graphdef()

#model.show_graph()

_ = render.render_vis( model, "MobilenetV3/expanded_conv_6/output:0" )

Там довольно много стековой трассировки, но ключевые ошибки:

LookupError: gradient registry has no entry for: AddV2

и

LookupError: No gradient defined for operation 'import/MobilenetV3/expanded_conv_6/squeeze_excite/Conv_1/add' (op type: AddV2)

Затем я попытался использовать определение V3_SMALL_MINIMALISTIC в "mobilenet_v3.py" (регистрация нового экстрактора возможностей) для обучения тестовой модели. По сути, это та же модель, но безвставки "squeeze_excite" (хотя я также восстановил функцию активации hard_swish).

Приведенный выше код прекрасно работал на новой модели, отрисовывая изображение.

Это заставляет меня поверить, что проблеманаходится в реализации "squeeze_excite" (в slim / nets / mobilenet / conv_blocks.py).

Но я не смог диагностировать проблему further: это Lucid, это блок Squeeze / Excite, это TensorFlow, или это просто факт о мире?

...