Lucid能否可视化MobileNet V3挤压/激发块

2024-04-30 03:28:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经使用提供的mobilenetv3定义(小)训练了很多图,但是当我运行(tensorflow)Lucid生成可视化时,Lucid失败了,出现了一个错误。如果我修改定义以排除挤压/激励块,则生成可视化。你知道吗

安装了Tensorflow 1.14和Lucid后,我从这里(https://github.com/tensorflow/models/tree/master/research/slim/nets/mobilenet)下载了经过培训的MobileNet V3图形文件“Small dm=0.75(float)”,将文件提取到我的“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" )

这里有一些stacktrace,但关键的错误是:

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)

然后我尝试使用“mobilenet\u V3.py”(注册一个新的特性提取器)中的V3\u SMALL\u简约定义来训练一个测试模型。这基本上是相同的模式,但没有“挤压激发”插入(虽然我也恢复了硬开关激活功能)。你知道吗

上面的代码在新模型上运行良好,呈现了一个图像。你知道吗

这使我相信问题在于“squeeze\u excite”实现(在slim/nets/mobilenet/conv中)_方块.py). 你知道吗

但我无法进一步诊断这个问题:它是清晰的,是挤压/兴奋块,是张量流,还是仅仅是一个关于世界的事实?你知道吗


Tags: pathimportselfmodel定义可视化tensorflow错误