gpt4 book ai didi

tensorflow - 检测 tensorflow 保存模型的第一个/最后一个 channel ?

转载 作者:行者123 更新时间:2023-12-04 11:59:51 26 4
gpt4 key购买 nike

有什么方法可以检测加载为 model=tf.saved_model.load(path) 的 TF 保存模型的第一个或最后一个格式的 channel ?
在Keras和可以过去model.layers并检查图层 l l.data_format == 'channels_last'TF保存的模型有这样的东西吗?我找不到任何合适的 TF 模型细节文档——一切都可以追溯到 Keras。

最佳答案

tensorflow documentation对于 tf.saved_model.load 它指出:
“Keras 模型是可跟踪的,因此可以将它们保存到 SavedModel。tf.saved_model.load 返回的对象不是 Keras 对象(即没有 .fit、.predict 等方法)。一些属性和函数仍然可用:.variables、.trainable_variables 和 . 调用 。”
我建议您尝试使用 .variables 属性提取 channel 数,然后与模型架构进行比较(我假设您对输入/输出大小以及第一层中应该有多少个 channel 有一些粗略的了解)

# channel last format
input_shape = (32,32,3)
# build model in keras
model = keras.Sequential(
[
keras.layers.InputLayer(input_shape=input_shape),
layers.Conv2D(32, kernel_size=(3, 3), activation="relu"),
layers.Flatten(),
layers.Dropout(0.5),
layers.Dense(2, activation="softmax"),
]
)
model.save('model')
然后用tf加载模型
loaded_model = tf.saved_model.load('model')
并获得第一层的输出形状:
loaded_model.variables[0].shape
输出:
TensorShape([3, 3, 3, 32])
如果我们了解模型架构并且第一层的输出有 32 个 channel ,那么现在很清楚模型最后保存在 channel 中。
但是,如果您对模型的结构一无所知,则可能会更加棘手,并且此解决方案是不够的。

关于tensorflow - 检测 tensorflow 保存模型的第一个/最后一个 channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68545187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com