首页 > 解决方案 > ValueError:两个形状中的维度 0 必须相等,但使用 tensorflow 2.2 时为 0 和 512

问题描述

我尝试运行 PFE 模型。当我使用 tensorflow 2.1 和 tensorflow 1.x 运行 eval_lfw 时,它运行良好,但是当我尝试使用 tensorflow 2.2 及更高版本运行它时,出现此错误: ValueError: Node 'gradients/UncertaintyModule/fc_log_sigma_sq/BatchNorm/cond/FusedBatchNorm_1_grad/FusedBatchNormGrad'具有与输出#3 的 GraphDef 不一致的 _output_shapes 属性:两个形状中的维度 0 必须相等,但为 0 和 512。形状为 [0] 和 [512]。 它发生在模型加载时 saver = tf.compat.v1.train.import_meta_graph(meta_file, clear_devices=True, import_scope=scope) 导入模型的元文件

要重现错误:下载https://drive.google.com/drive/folders/10RnChjxtSAUc1lv7jbm3xkkmhFYyZrHP?usp=sharing 并使用参数运行 eval_lfw --model_dir pretrained/PFE_sphere64_msarcface_am --dataset_path data/Dataset --protocol_path ./proto/pairs_dataset 。文本

谢谢您的帮助

回溯(最近一次通话最后):文件“/home/jordan/Bureau/Probabilistic-Face-Embeddings_new/evaluation/eval_lfw.py”,第 78 行,在 main(args) 文件“/home/jordan/Bureau/Probabilistic-Face -Embeddings_new/evaluation/eval_lfw.py”,第 51 行,在 main network.load_model(args.model_dir) 文件“/home/jordan/Bureau/Probabilistic-Face-Embeddings_new/network.py”,第 169 行,在 load_model saver = tf.compat.v1.train.import_meta_graph(meta_file, clear_devices=True, import_scope=scope) 文件“/home/jordan/.local/lib/python3.6/site-packages/tensorflow/python/training/saver.py” ,第 1462 行,在 import_meta_graph **kwargs)[0] 文件“/home/jordan/.local/lib/python3.6/site-packages/tensorflow/python/training/saver.py”,第 1486 行,在 _import_meta_graph_with_return_elements * *kwargs)) 文件“/home/jordan/.local/lib/python3.6/site-packages/tensorflow/python/framework/meta_graph.py”,第 799 行,在 import_scoped_meta_graph_with_return_elements return_elements=return_elements) 文件“/home/jordan/.local/lib/python3.6/site- packages/tensorflow/python/util/deprecation.py”,第 507 行,在 new_func 返回 func(*args, **kwargs) 文件“/home/jordan/.local/lib/python3.6/site-packages/tensorflow/ python/framework/importer.py”,第 405 行,在 import_graph_def producer_op_list=producer_op_list) 文件“/home/jordan/.local/lib/python3.6/site-packages/tensorflow/python/framework/importer.py”,行501,在 _import_graph_def_internal raise ValueError(str(e)) ValueError: 节点 'gradients/UncertaintyModule/fc_log_sigma_sq/BatchNorm/cond/FusedBatchNorm_1_grad/FusedBatchNormGrad'具有与输出#3 的 GraphDef 不一致的 _output_shapes 属性:两个形状中的维度 0 必须相等,但为 0 和 512。形状为 [0] 和 [512]。

标签: python-3.xtensorflow

解决方案


推荐阅读