

Tensorflow API 物体検出（Quick Start）の質問をします。  
Jupyter
notebookで実行していたところ、モデルのダウンロードのところで以下のエラーを吐き出してしまいました。もしこのような問題を解決する方法をご存じでしたら、ご教授をお願いします。  
よろしくお願いいたします。  
（なお、初投稿なので質問の仕方で至らない点があるかもしれません。申し訳ございません。）

エラー

[code]

    IOError
    Traceback (most recent call last) <ipython-input-7-f921d2932261> in <module>()
          1 opener = urllib.request.URLopener()
    ----> 2 opener.retrieve(DOWNLOAD_BASE + MODEL_FILE, MODEL_FILE)
          3 tar_file = tarfile.open(MODEL_FILE)
          4 for file in tar_file.getmembers():
          5   file_name = os.path.basename(file.name)
    
    /usr/lib/python2.7/urllib.pyc in retrieve(self, url, filename, reporthook, data)
        242             headers = fp.info()
        243             if filename:
    --> 244                 tfp = open(filename, 'wb')
        245             else:
        246                 import tempfile
    
    IOError: [Errno 13] Permission denied: 'ssd_mobilenet_v1_coco_2017_11_17.tar.gz'
    
[/code]

ソースコード

[code]

    opener = urllib.request.URLopener()
    opener.retrieve(DOWNLOAD_BASE + MODEL_FILE, MODEL_FILE)
    tar_file = tarfile.open(MODEL_FILE)
    for file in tar_file.getmembers():
      file_name = os.path.basename(file.name)
      if 'frozen_inference_graph.pb' in file_name:
        tar_file.extract(file, os.getcwd())
    
[/code]

参考  
<https://github.com/tensorflow/models/blob/master/research/object_detection/object_detection_tutorial.ipynb>

環境  
Ubuntu14.04LTS  
Python 2.7.6  
Python 3.4.3  
tensorflow 1.4.0(CPU版)  
jupyter notebook 5.2.1


CC BY-SA 3.0
2017-12-05T12:12:12.240
40060
2020-11-18T05:35:37.130
2017-12-05T14:21:19.410
19110
26518
question
python tensorflow
物体検出のためのモデルがダウンロードできない


コメントで「ダウンロードは正常に実行できていますか？」と指摘をもらったことをヒントに、Python で `oppener.retrieve`
できず、原因を探っていたところ、ディレクトリが権限を持っていないことに気づきました。

* * *

_この投稿は[@bluekye62
さんのコメント](https://ja.stackoverflow.com/questions/40060/%e7%89%a9%e4%bd%93%e6%a4%9c%e5%87%ba%e3%81%ae%e3%81%9f%e3%82%81%e3%81%ae%e3%83%a2%e3%83%87%e3%83%ab%e3%81%8c%e3%83%80%e3%82%a6%e3%83%b3%e3%83%ad%e3%83%bc%e3%83%89%e3%81%a7%e3%81%8d%e3%81%aa%e3%81%84#comment40663_40060)
の内容を元に コミュニティwiki として投稿しました。_


CC BY-SA 4.0
2020-09-05T07:21:30.743
70155
2020-09-05T07:21:30.743
3060
40060
answer


2020/11/18時点では、以下の方法で実行できることを確認しています。

[code]

    import tensorflow as tf
    import pathlib
    
    def load_model(model_name):
        base_url = 'http://download.tensorflow.org/models/object_detection/'
        model_file = model_name + '.tar.gz'
        model_dir = tf.keras.utils.get_file(
            fname=model_name,
            origin=base_url + model_file,
            untar=True)
    
        model_dir = pathlib.Path(model_dir)/"saved_model"
    
        model = tf.saved_model.load(str(model_dir))
    
        return model
    
    
    model_name = 'ssd_mobilenet_v1_coco_2017_11_17'
    detection_model = load_model(model_name)
    
[/code]

参考:
<https://github.com/tensorflow/models/blob/master/research/object_detection/colab_tutorials/object_detection_tutorial.ipynb>


CC BY-SA 4.0
2020-11-18T05:35:37.130
72029
2020-11-18T05:35:37.130
40060
answer