रनिंग ऑब्जेक्ट के साथ समस्या_डिटेशन_टाइम्स टाइप करें: लोड () में 2 आवश्यक स्थिति संबंधी तर्क गायब हैं


11

मैं टेंसरफ़्लो के लिए बहुत नया हूँ और मैं object_detection_tutorial चलाने की कोशिश कर रहा हूं। मुझे TypeErrror मिल रहा है और इसे ठीक करने का तरीका नहीं पता।

यह load_model फ़ंक्शन है जो 2 तर्क याद करता है:

टैग: आवश्यक मेटाटैफ़ड की पहचान करने के लिए स्ट्रिंग टैग का सेट। ये SavedModel save () API का उपयोग करके चर को सहेजते समय उपयोग किए जाने वाले टैग के अनुरूप होना चाहिए।

Export_dir: निर्देशिका जिसमें SavedModel प्रोटोकॉल बफर और लोड किए जाने वाले चर स्थित हैं।

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'

क्या आप मुझे इसे ठीक करने और मेरा पहला ऑब्जेक्ट डिटेक्टर चलाने में मदद कर सकते हैं: डी?

जवाबों:


14

मैं एक ही समस्या थी और मैं इसे 1 सप्ताह के लिए हल करने की कोशिश कर रहा हूं। मुझे लगता है कि समाधान यह होना चाहिए;

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

अधिक विवरण ( आधिकारिक वेबसाइट से ) होगा;

एक SavedModel को export_dir से लोड करें।

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

उपनाम:

tf.compat.v1.saved_model.load_v2

tf.compat.v2.saved_model.load

1
मैंने आपके समाधान का उपयोग किया और एक और त्रुटि मिली। मैंने वह सब कुछ अपडेट किया जो मैं कर सकता था और यह काम करता है! मुझे यह भी पता था कि पैथलिब को आइसल्ट नहीं किया जा रहा है।
डोमिनिक

@Dominik क्या आप अधिक विशिष्ट हो सकते हैं? शायद मैं मदद कर सकता हूं क्योंकि इस टेंसोफ़्लो साहसिक कार्य ने मुझे बहुत सारे मुद्दों को हल करने के लिए प्रेरित किया है: डी
ओनुर बास्किन

4
@OnurBaskin पर बाद में एक त्रुटि है: TypeError: int () तर्क एक स्ट्रिंग, एक बाइट्स जैसी ऑब्जेक्ट या एक संख्या होना चाहिए, न कि 'Tensor'
kaitsu

@ डॉमिनिक मैं मानता हूं कि यह आपका टेंसोफ़्लो संस्करण है। यह संस्करण 2.0 (स्थिर) होना चाहिए। यहाँ प्रश्न के लिए लिंक है जो मैंने पूछा है कि शायद आपको सटीक त्रुटि हो रही है। इसके अलावा, किसी भी पुराने इंपोर्ट की तलाश करें जिसके लिए 'कंपेटर्स.v1' की जरूरत हो। बाद में आपके पास बहुत अधिक त्रुटियां होनी चाहिए लेकिन यह है कि आप एक पुराने कोड को कैसे स्थानांतरित करते हैं।
ओनुर बैस्किन

@OnurBaskin मैं काफी भ्रमित हूं। मुझे लगा कि ऑब्जेक्ट डिटेक्शन एपीआई केवल TensorFlow 1 संस्करणों के साथ संगत था।
बायिअर्ड

0

मैंने अनुमान लगाया कि यह एक शाखा समस्या थी और tf_2_1_reference शाखा का उपयोग करके मेरे लिए चाल चली गई :

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

फिर एक अच्छे नौसिखिया की तरह ट्यूटोरियल के प्रत्येक बृहस्पति सेल को निष्पादित किया!

यह मेरे द्वारा उपयोग की जाने वाली शाखा है: https://github.com/tensorflow/models/tree/tf_2_1_reference

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.