【问题标题】:Tensorflow Hub - get input shape and problem domain for models?Tensorflow Hub - 获取模型的输入形状和问题域?
【发布时间】:2021-02-18 07:04:03
【问题描述】:

我正在使用最新版本的 tensorflow 集线器,想知道如何获取有关模型预期输入形状的信息,以及模型所属的集合类型。 例如,有没有办法在以这种方式在 Python 中加载模型后获取有关预期图像形状的信息?

model = hub.load("https://tfhub.dev/tensorflow/faster_rcnn/inception_resnet_v2_640x640/1")

还是这样?

model = hub.KerasLayer("https://tfhub.dev/tensorflow/faster_rcnn/inception_resnet_v2_640x640/1")

似乎在这两种情况下模型对象都不知道预期的形状是什么——无论是在图像高度/宽度和批量大小方面。另一方面,对于较旧的 TF 模型,可以通过 load_module_spec 找到此信息...

还有一个问题:有没有办法以编程方式获取模型属于哪个“问题域”的信息?可以在 https://tfhub.dev/ 上查找它,但如果需要从模型对象本身或通过 tensorflow_hub 函数访问该信息怎么办?

谢谢!

【问题讨论】:

    标签: tensorflow keras tensorflow2.0 keras-layer tensorflow-hub


    【解决方案1】:

    您可以通过访问模型的第一层和访问该层的 input_shape 属性来获得模型期望的输入形状

    layers = model.layers
    first_layer = layers[0] # usually the first layer is the input layer
    print(first_layer.input_shape)
    

    输出:

    [(None, 100, 100, 3)] # sample output
    

    无 -> 这指定了批量大小的大小,推断批量大小可以是您指定的任何内容

    (100, 100, 3) -> 高度、宽度和通道可以变化,您提供的输入数据应该完全相同。

    通过编程找到训练模型的域有点棘手,您可以使用 tensorflow.keras.util.plot_model 绘制模型的图形,并可以从模型的架构中推断域。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-15
      • 2019-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-30
      相关资源
      最近更新 更多