无效的参数错误:将(冻结的)Tensorflow模型加载到内存中(在本地计算机上测试模型时)

问题描述 投票:1回答:1
  • 我正在使用tensorflow对象检测API。
  • 我已经在远程服务器GPU上进行了培训,并保存了冻结的模型和检查点。
  • [之后,我将冻结的模型与检查点一起复制到本地计算机,然后使用脚本“ object_detection_tutorial.ipnyb”对测试数据进行测试。

[当我运行此单元格“将一个(冻结的)Tensorflow模型加载到内存中”时,它显示invalid argument错误。

您能否解释一下在本地计算机上运行保存模型时出了什么问题?培训和测试必须在同一台机器上吗?我遇到以下错误:

InvalidArgumentError错误回溯(最近的调用持续)〜/ anaconda3 / lib / python3.6 / site-packages / tensorflow / python / framework / importer.py在import_graph_def(graph_def,input_map,return_elements,名称,op_dict,producer_op_list)(417)第417章-> 418 graph._c_graph,序列化,选项)#pylint:disable = protected-access419结果= c_api_util.ScopedTFImportGraphDefResults(结果)

InvalidArgumentError:NodeDef不在其中提到attr'T'运维selected_indices:int32>; NodeDef:{{node后处理器/ BatchMultiClassNonMaxSuppression / map / while / MultiClassNonMaxSuppression / non_max_suppression / NonMaxSuppressionV3}}= NonMaxSuppressionV3 [T = DT_FLOAT](Postprocessor / BatchMultiClassNonMaxSuppression / map / while / MultiClassNonMaxSuppression / unstack,后处理器/ BatchMultiClassNonMaxSuppression / map / while / MultiClassNonMaxSuppression /重塑,后处理器/ BatchMultiClassNonMaxSuppression / map / while / MultiClassNonMaxSuppression / Minimum,后处理器/ BatchMultiClassNonMaxSuppression / map / while / MultiClassNonMaxSuppression / non_max_suppression / iou_threshold,后处理器/ BatchMultiClassNonMaxSuppression / map / while / MultiClassNonMaxSuppression / non_max_suppression / score_threshold)。(检查您的GraphDef解释二进制文件是否与您的GraphDef生成二进制文件。)。

在处理以上异常期间,发生了另一个异常:

ValueError Traceback(最近的呼叫最后)5 serialized_graph = fid.read()6 od_graph_def.ParseFromString(serialized_graph)----> 7 tf.import_graph_def(od_graph_def,name ='')

〜/ anaconda3 / lib / python3.6 / site-packages / tensorflow / python / util / deprecation.py在new_func(* args,** kwargs)中486'在将来的版本中',如果日期为其他(在%s之后的%日期之后),487条指令)-> 488 return func(* args,** kwargs)第489章;重生(二更)第490章

〜/ anaconda3 / lib / python3.6 / site-packages / tensorflow / python / framework / importer.py在import_graph_def(graph_def,input_map,return_elements,名称,op_dict,producer_op_list)420除了errors.InvalidArgumentError为e:421#转换为ValueError以获得向后兼容性。-> 422提高ValueError(str(e))423424#为任何导入的函数创建_DefinedFunctions。

ValueError:NodeDef不在其中提到attr'T'运维selected_indices:int32>; NodeDef:{{node后处理器/ BatchMultiClassNonMaxSuppression / map / while / MultiClassNonMaxSuppression / non_max_suppression / NonMaxSuppressionV3}}= NonMaxSuppressionV3 [T = DT_FLOAT](Postprocessor / BatchMultiClassNonMaxSuppression / map / while / MultiClassNonMaxSuppression / unstack,后处理器/ BatchMultiClassNonMaxSuppression / map / while / MultiClassNonMaxSuppression /重塑,后处理器/ BatchMultiClassNonMaxSuppression / map / while / MultiClassNonMaxSuppression / Minimum,后处理器/ BatchMultiClassNonMaxSuppression / map / while / MultiClassNonMaxSuppression / non_max_suppression / iou_threshold,后处理器/ BatchMultiClassNonMaxSuppression / map / while / MultiClassNonMaxSuppression / non_max_suppression / score_threshold)。(检查您的GraphDef解释二进制文件是否与您的GraphDef生成二进制文件。)。

我正在使用tensorflow对象检测API。我已经在远程服务器GPU上进行了培训,并保存了冻结的模型和检查点。之后,我将冻结的模型与...

python python-3.x tensorflow object-detection-api
1个回答
0
投票

我有一个类似的问题。对我来说,解决方案是从TF1.9中获取我的GPU培训文件,并将它们移至我的本地TF1.5 CPU环境(不支持AVX指令)。然后,我从培训文件在本地环境中创建了冻结模型,并成功使用了它。

© www.soinside.com 2019 - 2024. All rights reserved.