ปัญหาเกี่ยวกับการเรียกใช้ object_detection_tutorial TypeError: load () หายไป 2 ต้องระบุอาร์กิวเมนต์ตำแหน่ง


11

ฉันค่อนข้างใหม่กับ tensorflow และฉันพยายามเรียกใช้ object_detection_tutorial ฉันได้รับ TypeErrror และไม่ทราบวิธีการแก้ไข

นี่คือฟังก์ชั่น load_model ซึ่งขาด 2 ข้อโต้แย้ง:

tags: ชุดสตริงแท็กเพื่อระบุ MetaGraphDef ที่ต้องการ สิ่งเหล่านี้ควรสอดคล้องกับแท็กที่ใช้เมื่อบันทึกตัวแปรโดยใช้ 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'

คุณสามารถช่วยฉันแก้ไขและเรียกใช้ตัวตรวจจับวัตถุตัวแรก: D ได้หรือไม่

คำตอบ:


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
ฉันใช้วิธีแก้ไขปัญหาของคุณและได้รับข้อผิดพลาดอื่น ฉันอัปเดตทุกอย่างที่ทำได้และใช้งานได้! ฉันยังมีข้อผิดพลาดกับ pathlib ที่ไม่ได้เป็น istalled
Dominik

@ Dominik คุณสามารถเฉพาะเจาะจงมากขึ้น? บางทีฉันสามารถช่วยได้เพราะการผจญภัยเทนเซอร์กระแสนี้ฉันได้นำฉันไปแก้ปัญหามากมาย: D
Onur Baskin

4
@OnurBaskin มีข้อผิดพลาดในภายหลังใน: อาร์กิวเมนต์ TypeError: int () จะต้องเป็นสตริงวัตถุเช่นไบต์หรือตัวเลขไม่ใช่ 'Tensor'
kaitsu

@Dominik ฉันถือว่าเป็นรุ่น Tensorflow ของคุณ ควรเป็นเวอร์ชัน 2.0 (เสถียร) นี่คือลิงค์สำหรับคำถามที่ฉันถามบางทีคุณอาจจะมีข้อผิดพลาดที่แน่นอน นอกจากนี้ค้นหาการนำเข้าเก่า ๆ ที่ต้องใช้ 'compat.v1' ในภายหลังคุณควรจะมีข้อผิดพลาดเพิ่มเติมจำนวนมาก แต่นี่เป็นวิธีที่คุณย้ายรหัสเก่า
Onur Baskin

@ OnurBaskin ฉันค่อนข้างสับสน ฉันคิดว่า Object Detection API นั้นเข้ากันได้กับรุ่น TensorFlow 1 เท่านั้น
Biiiiiird

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.