从 Tensorflow Hub 获取保存模型中的节点连接

问题描述

当我尝试从 tensorflow-hub resporitory 获取模型时。 我可以将其视为已保存的模型格式,但我无法访问模型架构。

import tensorflow_hub as hub
model = hub.load("https://tfhub.dev/tensorflow/centernet/hourglass_512x512/1")
)

我已尝试切换到服务模型 model_serv = model.signatures["serving_default"]。 我可以从 model_serv.variables 获取变量,但我不知道哪个是哪个的输入。

(<tf.Variable 'conv2d/kernel:0' shape=(3,3,32) dtype=float32,numpy=
 array([[[[-3.97976696e-01,-1.39825698e-02,1.48418739e-01,2.21630976e-01,1.22568436e-01,2.75629699e-01,-1.62098631e-01,-8.73222947e-02,-8.37984905e-02,-1.07462037e+00,-5.02275899e-02,-7.41135418e-01,7.73177087e-01,9.39219058e-01,1.36517823e-01,-1.02845311e-01,1.99863434e-01,-8.84439111e-01,1.18872988e+00,3.60081524e-01,1.87927604e-01,7.68159032e-01,-3.77650857e-01,1.29962599e+00,-5.90088740e-02,9.43712473e-01,-9.02807772e-01,4.63794529e-01,3.14643413e-01,3.56451869e-01,-6.45827428e-02,-5.81295252e-01],[-3.56151998e-01,8.24032575e-02,-2.18966097e-01,2.63993502e-01,-5.06394394e-02,3.73886883e-01,-2.11740986e-01,-1.72393456e-01,1.75810307e-01,-1.57683456e+00,-5.35937473e-02,1.54716182e+00,9.20912862e-01,1.25239062e+00,-5.14700040e-02,2.70201236e-01,-9.94481087e-01,-8.18459511e-01,-9.33381915e-01,-4.58403789e-02,-2.87465602e-01,

我已经寻找了 model_serv.graph,但它也没有为我指出这些变量之间的节点连接。

有人可以帮忙吗?

解决方法

事实上,TF Hub 上提供的 SavedModels 封装了模型架构。 (逆向工程是可能的,但很乏味。)要研究并可能修改架构,最好的选择是转到源代码,请参阅该模型文档页面上的源部分。