簡體   English   中英

如何在 Colab 中將 Inception V4 從 .ckpt 轉換為 .pb?

[英]How to convert Inception V4 from .ckpt to .pb in Colab?

我正在使用 Coral 開發板和 Jetson T2 開發板。 為了向他們發送模型,模型必須具有擴展名 .pb

是否有模型已經具有 .pb 擴展名的鏈接? 目前我正在使用這個鏈接: TF_slim

所有模型都有擴展名 .ckpt,僅此而已。 沒有 .meta 或其他任何東西。 我不知道如何轉換為 .pb。

我在 Colab 工作。 這是我的代碼:

# Now let's download the pretrained model from tensorflow's model zoo.
!mkdir /content/pretrained_model
%cd /content/pretrained_model
!wget http://download.tensorflow.org/models/inception_v4_2016_09_09.tar.gz
!tar xvf inception_v4_2016_09_09.tar.gz


#Exporting the inference graph
!python /content/models/research/slim/export_inference_graph.py \
--alsologtostderr \
--model_name=inception_v4.ckpt \
--output_file=/content/pretrained_model/inception_v4_inf_graph.pb

這是我得到的錯誤:

Traceback (most recent call last):
  File "/content/models/research/slim/export_inference_graph.py", line 162, in <module>
    tf.app.run()
  File "/tensorflow-1.15.2/python3.6/tensorflow_core/python/platform/app.py", line 40, in run
    _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
  File "/usr/local/lib/python3.6/dist-packages/absl/app.py", line 299, in run
    _run_main(main, args)
  File "/usr/local/lib/python3.6/dist-packages/absl/app.py", line 250, in _run_main
    sys.exit(main(argv))
  File "/content/models/research/slim/export_inference_graph.py", line 128, in main
    FLAGS.dataset_dir)
  File "/content/models/research/slim/datasets/dataset_factory.py", line 59, in get_dataset
    reader)
  File "/content/models/research/slim/datasets/imagenet.py", line 187, in get_split
    labels_to_names = create_readable_names_for_imagenet_labels()
  File "/content/models/research/slim/datasets/imagenet.py", line 93, in create_readable_names_for_imagenet_labels
    filename, _ = urllib.request.urlretrieve(synset_url)
  File "/usr/lib/python3.6/urllib/request.py", line 248, in urlretrieve
    with contextlib.closing(urlopen(url, data)) as fp:
  File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.6/urllib/request.py", line 532, in open
    response = meth(req, response)
  File "/usr/lib/python3.6/urllib/request.py", line 642, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python3.6/urllib/request.py", line 564, in error
    result = self._call_chain(*args)
  File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.6/urllib/request.py", line 756, in http_error_302
    return self.parent.open(new, timeout=req.timeout)
  File "/usr/lib/python3.6/urllib/request.py", line 532, in open
    response = meth(req, response)
  File "/usr/lib/python3.6/urllib/request.py", line 642, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python3.6/urllib/request.py", line 570, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.6/urllib/request.py", line 650, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found

謝謝

tensorflow/models 中的這個 URL似乎有錯誤。 我提交了一個 PR tensorflow/models#9207

- base_url = 'https://raw.githubusercontent.com/tensorflow/models/master/research/inception/inception/data/'
+ base_url = 'https://raw.githubusercontent.com/tensorflow/models/master/research/slim/datasets'

進行此更改將修復 404 錯誤。


請參閱https://github.com/tensorflow/models/tree/master/research/slim#exporting-the-inference-graph 上的說明

導出推理圖

保存包含模型架構的 GraphDef。

要將其與 slim 定義的模型名稱一起使用,請運行:

 $ python export_inference_graph.py \\ --alsologtostderr \\ --model_name=inception_v3 \\ --output_file=/tmp/inception_v3_inf_graph.pb $ python export_inference_graph.py \\ --alsologtostderr \\ --model_name=mobilenet_v1 \\ --image_size=224 \\ --output_file=/tmp/mobilenet_v1_224.pb

凍結導出的圖形 如果您想將結果模型與您自己的或預訓練的檢查點一起用作

模型,您可以運行 freeze_graph 來獲得一個圖形 def,其中使用以下方法將變量內聯為常量:

 bazel build tensorflow/python/tools:freeze_graph bazel-bin/tensorflow/python/tools/freeze_graph \\ --input_graph=/tmp/inception_v3_inf_graph.pb \\ --input_checkpoint=/tmp/checkpoints/inception_v3.ckpt \\ --input_binary=true --output_graph=/tmp/frozen_inception_v3.pb \\ --output_node_names=InceptionV3/Predictions/Reshape_1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM