源码
import tensorflow as tf
print ( "*********************************start!*********************************" )
meta_path = "E:/0922/detect.meta"
config = tf. ConfigProto( )
config. gpu_options. allow_growth = True
sess = tf. Session( graph= tf. Graph( ) , config= config)
with sess. graph. as_default( ) :
saver = tf. train. import_meta_graph( meta_path)
graph_def = tf. get_default_graph( ) . as_graph_def( add_shapes= True )
node_list = [ n. name for n in graph_def. node]
for node in node_list:
print ( "node_name is: " , node)
print ( "finish!" )
错误描述
Traceback ( most recent call last) :
File "E:/learn/meta_node_print.py" , line 15 , in < module>
saver = tf. train. import_meta_graph( meta_path)
File "D:\software\miniconda3\envs\tf\lib\site-packages\tensorflow\python\training\saver.py" , line 1838 , in import_meta_graph
** kwargs)
File "D:\software\miniconda3\envs\tf\lib\site-packages\tensorflow\python\framework\meta_graph.py" , line 660 , in import_scoped_meta_graph
producer_op_list= producer_op_list)
File "D:\software\miniconda3\envs\tf\lib\site-packages\tensorflow\python\util\deprecation.py" , line 316 , in new_func
return func( * args, ** kwargs)
File "D:\software\miniconda3\envs\tf\lib\site-packages\tensorflow\python\framework\importer.py" , line 433 , in import_graph_def
_RemoveDefaultAttrs( op_dict, producer_op_list, graph_def)
File "D:\software\miniconda3\envs\tf\lib\site-packages\tensorflow\python\framework\importer.py" , line 211 , in _RemoveDefaultAttrs
op_def = op_dict[ node. op]
KeyError: 'FusedBatchNormV3'
原因分析
从错误提示信息中可以得知,访问字典的时候找不到 key
,即找不到 FusedBatchNormV3
,这说明当前环境中的TensorFlow版本没有这个算子 ,需要更换版本。。。 这种情况有时会由于版本不匹配而发生。 结合我自己的代码使用情况,具体原因是我使用 Tensorflow 1.5.1 训练并导出了模型,并试图在 Tensorflow 1.3.1上加载模型。 tensorflow比较烦的一件事情就是这个版本匹配的问题。。特别是大版本之间的,TensorFlow1和2之间的差异更大。。如果版本一不对应,分分钟会出各种小问题。
解决方案
使用匹配的TensorFlow版本即可,在这里我就是需要安装1.5.1版本的即可。 1.13.1版本也可以 快速安装tensorflow可以参考这篇博文:pip更换国内的安装源 / 镜像 这里直接给出安装命令:pip install tensorflow==1.5.1 -i https://pypi.douban.com/simple/
-i
是指定依赖包的安装源(国内),起到加速的作用,谁试谁知道,贼快~ 下面是安装的过程及结果:
可以看到速度是非常快的~ 包越大下载速度提的越快~ 最高网速和网络带宽也有关~
( tf1. 5.1 ) E: \demo4learn> pip install tensorflow== 1.5 .1 - i https: // pypi. douban. com/ simple/
Looking in indexes: https: // pypi. douban. com/ simple/
Collecting tensorflow== 1.5 .1
Using cached https: // pypi. doubanio. com/ packages/ 9c/ 7c/ 0c37da035ca2348d17f7747d7388d567ab1c53b626a9071b9767c9201272/ tensorflow- 1.5 .1 - cp36- cp36m- win_amd64. whl ( 31.1 MB)
Collecting numpy>= 1.12 .1
Using cached https: // pypi. doubanio. com/ packages/ ea/ bc/ da526221bc111857c7ef39c3af670bbcf5e69c247b0d22e51986f6d0c5c2/ numpy- 1.19 .5 - cp36- cp36m- win_amd64. whl ( 13.2 MB)
Collecting protobuf>= 3.4 .0
Downloading https: // pypi. doubanio. com/ packages/ 56 / 7e/ 4dc12fe564932550107dccb201db0a5c36df66fb89be6bc495af3f23abcb/ protobuf- 3.19 .5 - cp36- cp36m- win_amd64. whl ( 897 kB)
| ████████████████████████████████| 897 kB 6.4 MB/ s
Collecting tensorflow- tensorboard< 1.6 .0 , >= 1.5 .0
Downloading https: // pypi. doubanio. com/ packages/ cc/ fa/ 91c06952517b4f1bc075545b062a4112e30cebe558a6b962816cb33efa27/ tensorflow_tensorboard- 1.5 .1 - py3- none- any . whl ( 3.0 MB)
| ████████████████████████████████| 3.0 MB 930 kB/ s
Collecting six>= 1.10 .0
Using cached https: // pypi. doubanio. com/ packages/ d9/ 5a/ e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/ six- 1.16 .0 - py2. py3- none- any . whl ( 11 kB)
Requirement already satisfied: wheel>= 0.26 in d: \software\miniconda3\envs\tf1. 5.1 \lib\site- packages ( from tensorflow== 1.5 .1 ) ( 0.29 .0 )
Collecting absl- py>= 0.1 .6
Using cached https: // pypi. doubanio. com/ packages/ a5/ b8/ fc74a554a6fc7f26744c883ebfe405cf49c1f1320f13ee874aee47c70e1d/ absl_py- 1.2 .0 - py3- none- any . whl ( 123 kB)
Collecting werkzeug>= 0.11 .10
Downloading https: // pypi. doubanio. com/ packages/ f4/ f3/ 22afbdb20cc4654b10c98043414a14057cd27fdba9d4ae61cea596000ba2/ Werkzeug- 2.0 .3 - py3- none- any . whl ( 289 kB)
| ████████████████████████████████| 289 kB 6.4 MB/ s
Collecting bleach== 1.5 .0
Downloading https: // pypi. doubanio. com/ packages/ 33 / 70 / 86c5fec937ea4964184d4d6c4f0b9551564f821e1c3575907639036d9b90/ bleach- 1.5 .0 - py2. py3- none- any . whl ( 17 kB)
Collecting markdown>= 2.6 .8
Downloading https: // pypi. doubanio. com/ packages/ f3/ df/ ca72f352e15b6f8ce32b74af029f1189abffb906f7c137501ffe69c98a65/ Markdown- 3.3 .7 - py3- none- any . whl ( 97 kB)
| ████████████████████████████████| 97 kB 6.4 MB/ s
Collecting html5lib== 0.9999999
Downloading https: // pypi. doubanio. com/ packages/ ae/ ae/ bcb60402c60932b32dfaf19bb53870b29eda2cd17551ba5639219fb5ebf9/ html5lib- 0.9999999 . tar. gz ( 889 kB)
| ████████████████████████████████| 889 kB 234 kB/ s
Preparing metadata ( setup. py) . . . done
Collecting importlib- metadata>= 4.4
Downloading https: // pypi. doubanio. com/ packages/ a0/ a1/ b153a0a4caf7a7e3f15c2cd56c7702e2cf3d89b1b359d1f1c5e59d68f4ce/ importlib_metadata- 4.8 .3 - py3- none- any . whl ( 17 kB)
Collecting dataclasses
Downloading https: // pypi. doubanio. com/ packages/ fe/ ca/ 75fac5856ab5cfa51bbbcefa250182e50441074fdc3f803f6e76451fab43/ dataclasses- 0.8 - py3- none- any . whl ( 19 kB)
Collecting zipp>= 0.5
Downloading https: // pypi. doubanio. com/ packages/ bd/ df/ d4a4974a3e3957fd1c1fa3082366d7fff6e428ddb55f074bf64876f8e8ad/ zipp- 3.6 .0 - py3- none- any . whl ( 5.3 kB)
Collecting typing- extensions>= 3.6 .4
Downloading https: // pypi. doubanio. com/ packages/ 45 / 6b/ 44f7f8f1e110027cf88956b59f2fad776cca7e1704396d043f89effd3a0e/ typing_extensions- 4.1 .1 - py3- none- any . whl ( 26 kB)
Building wheels for collected packages: html5lib
Building wheel for html5lib ( setup. py) . . . done
Created wheel for html5lib: filename= html5lib- 0.9999999 - py3- none- any . whl size= 111329 sha256= 8eeac1a0f65e0e613279846cd71ba3a8e62ef2e1e35d59b23415bb1b3b7c6800
Stored in directory: c: \users\super \appdata\local\pip\cache\wheels\52 \96 \da\19831c1c7a88361b3b5caf699f1fd6c9bbcb6db1de11592fb9
Successfully built html5lib
Installing collected packages: zipp, typing- extensions, six, importlib- metadata, html5lib, dataclasses, werkzeug, protobuf, numpy, markdown, bleach, tensorflow- tensorboard, absl- py, tensorflow
Successfully installed absl- py- 1.2 .0 bleach- 1.5 .0 dataclasses- 0.8 html5lib- 0.9999999 importlib- metadata- 4.8 .3 markdown- 3.3 .7 numpy- 1.19 .5 protobuf- 3.19 .5 six- 1.16 .0 tensorflow- 1.5 .1 tensorflow- tensorboard- 1.5 .1 typing- extensions- 4.1 .1 werkzeug- 2.0 .3 zipp- 3.6 .0
曲折过程
其中更换过TensorFlow为1.11.0,出错 AttributeError: module ‘tensorflow’ has no attribute ‘ConfigProto’: 这是另一个错误了,也是关于版本匹配的问题,使用TensorFlow就得有这些心里准备~
( tf1.13.1) E:\ demo4learn> conda activate tf11.1 & pip list | grep tensorflow
tensorflow 1.11 .0
tensorflow-estimator 1.15 .1
( tf11.1) E:\ demo4learn> python meta_import_test.py
Traceback ( most recent call last) :
File "meta_import_test.py" , line 7 , in < module>
config = tf.ConfigProto( )
AttributeError: module 'tensorflow' has no attribute 'ConfigProto'