问题描述
我正在尝试将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文件,因此会出现错误。