iT邦幫忙

0

pb 轉 pbtxt 遇到的問題

大家好, 我想把 .pb 轉成 .pbtxt, 程式碼如下:

import tensorflow as tf
from tensorflow.python.platform import gfile

def convert_pb_to_pbtxt(filename):
    with tf.io.gfile.GFile(filename, 'rb') as f:
        graph_def = tf.compat.v1.GraphDef()
        graph_def.ParseFromString(f.read())
        tf.import_graph_def(graph_def, name='')
        tf.train.write_graph(graph_def, './', 'protobuf.pbtxt', as_text=True)
    return
    

filename = 'efficientnet-lite4-11.pb'
convert_pb_to_pbtxt(filename);

運行時遇到如下的問題:

D:\download\onnx\onnx_2_pb\efficientNet>python convert_to_bptxt.py
2021-02-22 11:44:21.746474: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudart64_100.dll'; dlerror: cudart64_100.dll not found
2021-02-22 11:44:21.748660: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
Traceback (most recent call last):
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_core\python\framework\importer.py", line 501, in _import_graph_def_internal
    graph._c_graph, serialized, options)  # pylint: disable=protected-access
tensorflow.python.framework.errors_impl.InvalidArgumentError: Node 'Softmax:0': Node name contains invalid characters

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "convert_to_bptxt.py", line 15, in <module>
    convert_pb_to_pbtxt(filepath);
  File "convert_to_bptxt.py", line 9, in convert_pb_to_pbtxt
    tf.import_graph_def(graph_def, name='')
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_core\python\util\deprecation.py", line 507, in new_func
    return func(*args, **kwargs)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_core\python\framework\importer.py", line 405, in import_graph_def
    producer_op_list=producer_op_list)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_core\python\framework\importer.py", line 505, in _import_graph_def_internal
    raise ValueError(str(e))
ValueError: Node 'Softmax:0': Node name contains invalid characters

D:\download\onnx\onnx_2_pb\efficientNet>

主要是:ValueError: Node 'Softmax:0': Node name contains invalid characters
我的python 版本是:
D:\download\onnx\onnx_2_pb\efficientNet>python --version
Python 3.7.8

tensorflow 版本是:
D:\download\onnx\onnx_2_pb\efficientNet>pip show tensorflow
Name: tensorflow
Version: 1.15.0
Summary: TensorFlow is an open source machine learning framework for everyone.
Home-page: https://www.tensorflow.org/
Author: Google Inc.
Author-email: packages@tensorflow.org
License: Apache 2.0
Location: c:\users\user\appdata\local\programs\python\python37\lib\site-packages
Requires: grpcio, google-pasta, opt-einsum, astor, termcolor, wrapt, gast, protobuf, numpy, absl-py, six, keras-applications, tensorflow-estimator, tensorboard, wheel, keras-preprocessing
Required-by:

想請教各問先進 這是什麼問題呢? 有什麼解決的方法呢?

Regards,

尚未有邦友回答

立即登入回答