问题描述
我正在尝试从 tensorflow 中心加载预训练模型(链接在这里:https://tfhub.dev/google/on_device_vision/classifier/landmarks_classifier_north_america_V1/1)。当我对单个图像运行推理时,我得到长度为 99424 的输出,但相应的标签图长度为 99676。这对我来说没有任何意义,因为两者的长度应该相同。由于此错误,该模型无法准确分类。有没有其他人有同样的错误。如果没有,将不胜感激任何指导。
import tensorflow.compat.v2 as tf
import tensorflow_hub as hub
model = hub.KerasLayer(model_url,output_key='predictions:logits')
landmarks = pd.read_csv(landmark_file)
image = load_image(im_path) # (321,321,3) scaled between [0,1]
output = model(image)
prediction = landmarks['name'][int(tf.math.argmax(output,1))]
此外,我在加载模型时出现此错误:
INFO:tensorflow:Saver not created because there are no variables in the graph to restore
感觉是tensorflow hub的模型有问题,但不完全确定
解决方法
截至 2021-03-18,标签图中的不一致问题已得到修复。您只需要重新下载标签映射文件,这些文件是从 tfhub.dev 上的模型页面引用的。希望能帮到您,给您带来的不便敬请谅解!