AttributeError:“图形”对象没有属性“签名”

问题描述

我正在尝试将Tensorflow的对象检测API与预先训练的模型一起使用。我正在为此加载模型:

@api_view(['POST',])
def register_api(request):
    if request.method == 'POST':
        serializer = RegisterSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        user = serializer.save()
        content = {
            'user': {'id': user.pk,'email': user.email},'auth': Token.objects.get(user=user).key
        }
        # Return the reponse
        return Response(content)

这似乎很好用,但是API中有一节“检查模型的输入签名,需要一批uint8类型的三色图像”:

model_name='fish_inception_v2_graph2'
PATH_TO_CKPT='models/research/object_detection/'+model_name+'/frozen_inference_graph.pb'

### Load a (frozen) Tensorflow model into memory.
detection_model = tf.Graph()
with detection_graph.as_default():
    od_graph_def = tf.compat.v1.GraphDef()
    with tf.compat.v2.io.gfile.GFile(PATH_TO_CKPT,'rb') as fid:
        serialized_graph = fid.read()
        od_graph_def.ParseFromString(serialized_graph)
        tf.import_graph_def(od_graph_def,name='')

当我运行时,出现错误“ AttributeError:'Graph'对象没有属性'signatures'”。

有人知道如何解决此问题吗?谢谢!

解决方法

在通往检查点的路径中,只需提及model.ckpt-10000或类似的东西。您正在提供.pb文件,因此会出现错误。