Object_detection_tutorial TypeError çalıştırırken sorun: load () eksik 2 gerekli konum bağımsız değişkeni


11

Tensorflow için oldukça yeniyim ve object_detection_tutorial'ı çalıştırmaya çalışıyorum. TypeErrror alıyorum ve nasıl düzeltileceğini bilmiyorum.

Bu, 2 bağımsız değişkeni özleyen load_model işlevidir:

tags: Gerekli MetaGraphDef'i tanımlamak için dize etiketleri kümesi. Bunlar, RegistersModel save () API'sini kullanarak değişkenler kaydedilirken kullanılan etiketlere karşılık gelmelidir.

export_dir: RegisteredModel protokol arabelleğinin ve yüklenecek değişkenlerin bulunduğu dizin.

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))
  model = model.signatures['serving_default']

  return model
WARNING:tensorflow:From <ipython-input-9-f8a3c92a04a4>:11: load (from tensorflow.python.saved_model.loader_impl) is deprecated and will be removed in a future version.
Instructions for updating:
This function will only be available through the v1 compatibility library as tf.compat.v1.saved_model.loader.load or tf.compat.v1.saved_model.load. There will be a new function for importing SavedModels in Tensorflow 2.0.

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-12-e10c73a22cc9> in <module>
      1 model_name = 'ssd_mobilenet_v1_coco_2017_11_17'
----> 2 detection_model = load_model(model_name)

<ipython-input-9-f8a3c92a04a4> in load_model(model_name)
      9   model_dir = pathlib.Path(model_dir)/"saved_model"
     10 
---> 11   model = tf.saved_model.load(str(model_dir))
     12   model = model.signatures['serving_default']
     13 

~/.local/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py in new_func(*args, **kwargs)
    322               'in a future version' if date is None else ('after %s' % date),
    323               instructions)
--> 324       return func(*args, **kwargs)
    325     return tf_decorator.make_decorator(
    326         func, new_func, 'deprecated',

TypeError: load() missing 2 required positional arguments: 'tags' and 'export_dir'

Bunu düzeltmeme ve ilk nesne dedektörümü çalıştırmama yardım edebilir misin: D?

Yanıtlar:


14

Aynı problemim vardı ve bunu 1 hafta boyunca çözmeye çalışıyorum. Sanırım çözüm bu olmalı;

model = tf.compat.v2.saved_model.load(str(model_dir), None)

Daha fazla ayrıntı olurdu ( resmi web sitesinden) ) olacaktır;

Export_dir dizininden bir SavedModel yükleyin.

tf.saved_model.load(
    export_dir,
    tags=None
)

Takma adlar:

tf.compat.v1.saved_model.load_v2

tf.compat.v2.saved_model.load

1
Çözümünüzü kullandım ve başka bir hata aldım. Yapabildiğim her şeyi güncelledim ve işe yarıyor! Ayrıca pathlib istalled ile ilgili bir hata vardı.
Dominik

@Dominik daha spesifik olabilir misiniz? belki yardım edebilirim çünkü bu tensorflow macerası beni birçok sorunu çözmem için yönlendirdi: D
Onur Baskin

4
@OnurBaskin Daha sonra bir hata oluştu: TypeError: int () argümanı bir dizgi, bayt benzeri bir nesne veya bir sayı olmalı, 'Tensor' değil
kaitsu

@Dominik Bunun Tensorflow sürümünüz olduğunu varsayıyorum. Sürüm 2.0 (kararlı) olmalıdır. İşte ben sordum soru için bağlantı belki tam hata yaşıyorsanız. Ayrıca, 'compat.v1' gerektiren tüm eski içe aktarmaları arayın. daha sonra daha fazla hataya sahip olmalısınız, ancak eski bir kodu bu şekilde taşıyorsunuz.
Onur Baskin

@OnurBaskin Kafam çok karıştı. Object Detection API'nin sadece TensorFlow 1 sürümleriyle uyumlu olduğunu düşündüm.
Biiiiiird

0

Bir şube sorunu olduğunu tahmin ve tf_2_1_reference şube kullanarak benim için hile yaptı:

igian@iGians-MBP models % git checkout tf_2_1_reference
M   research/object_detection/object_detection_tutorial.ipynb
Branch 'tf_2_1_reference' set up to track remote branch 'tf_2_1_reference' from 'origin'.
Switched to a new branch 'tf_2_1_reference'
igians@iGians-MBP models % jupyter notebook

Sonra öğretici her jüpiter hücre iyi bir acemi gibi idam!

Kullandığım şube bu: https://github.com/tensorflow/models/tree/tf_2_1_reference

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.