我使用hub.KerasLayer
的efficientnetv2,我想在使用model.summary()
时看到所有图层,但它只显示"keras_layer (KerasLayer)">
图层(类型) | 输出形状 | 参数# | keras_layer (KerasLayer) | (没有,1280) | 5919312 |
---|---|---|
辍学(辍学) | (没有,1280) | 0 |
密度(密度) | (没有,2) | 2562 |
这样你就可以"跳转到内部";模型;
import tensorflow_hub as hub
malli = hub.KerasLayer("https://tfhub.dev/google/imagenet/efficientnet_v2_imagenet21k_b0/feature_vector/2")
print("Thickness of the model:", len(malli.weights))
for i in range(len(malli.weights)):
print("In layer ",malli.weights[i].name," the content is: ", malli.weights[i])
…当然,请注意输出很长,但请根据需要修改输出打印。
TensorFlow的SavedModel本质上是一个计算图。虽然原则上可以检查它的结构,但是没有关于高级体系结构块的信息。
如果您想访问单个层,更好的选择可能是使用作者原始实现中的模型。它可以构造如下:
from effnetv2_model import get_model
model = get_model('efficientnetv2-s', weights='imagenet21k-ft1k', with_endpoints=True)
预训练的权重可用于与TensorFlow Hub相同的配置。model.summary()
显示单个(Fused)MBConv块。
还请注意,TensorFlow的未来版本将包括EfficientNet v2(已经在夜间构建中可用)。