Sự cố khi chạy object_detection_tutorial TypeError: load () thiếu 2 đối số vị trí bắt buộc


11

Tôi khá mới đối với tenorflow và tôi đang cố chạy object_detection_tutorial. Tôi đang bị TypeErrror và không biết cách khắc phục.

Đây là hàm load_model bỏ lỡ 2 đối số:

tags: Đặt các thẻ chuỗi để xác định MetaGraphDef cần thiết. Các thẻ này phải tương ứng với các thẻ được sử dụng khi lưu các biến bằng API SavingModel save ().

export_dir: Thư mục chứa bộ đệm giao thức SavingModel và các biến được tải.

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'

Bạn có thể giúp tôi sửa lỗi này và chạy trình phát hiện đối tượng đầu tiên của tôi: D?

Câu trả lời:


14

Tôi đã có cùng một vấn đề và tôi đang cố gắng giải quyết vấn đề này trong 1 tuần nay. Tôi đoán giải pháp nên là thế này;

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

Chi tiết hơn sẽ là (từ trang web chính thức );

Tải một SavingModel từ export_dir.

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

Bí danh:

tf.compat.v1.saved_model.load_v2

tf.compat.v2.saved_model.load

1
Tôi đã sử dụng giải pháp của bạn và nhận được một lỗi khác. Tôi đã cập nhật mọi thứ tôi có thể và nó hoạt động! Tôi cũng đã có một lỗi với pathlib không được kết tinh.
Dominik

@Dominik bạn có thể cụ thể hơn? có lẽ tôi có thể giúp vì cuộc phiêu lưu kéo căng này tôi đã dẫn tôi giải quyết rất nhiều vấn đề: D
Onur Baskin

4
@OnurBaskin Sau này có lỗi: Đối số TypeError: int () phải là một chuỗi, một đối tượng giống như byte hoặc một số, không phải là 'Tensor'
kaitsu

@Dominik Tôi giả sử đó là phiên bản Tensorflow của bạn. Nó phải là phiên bản 2.0 (ổn định). Đây là đường dẫn cho câu hỏi tôi đã hỏi có lẽ bạn đang gặp lỗi chính xác. Ngoài ra, tìm kiếm mọi nhập khẩu cũ yêu cầu 'compat.v1'. sau này bạn sẽ có nhiều lỗi hơn nhưng đây là cách bạn di chuyển một mã cũ.
Onur Baskin

@OnurBaskin Tôi khá bối rối. Tôi nghĩ API phát hiện đối tượng chỉ tương thích với các phiên bản TensorFlow 1.
Biiiiiird

0

Tôi đoán đó là một sự cố chi nhánh và sử dụng nhánh tf_2_1_Vference đã thực hiện thủ thuật cho tôi:

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

Sau đó thực hiện từng ô jupiter của hướng dẫn như một người mới tốt!

Đây là chi nhánh tôi đã sử dụng: https://github.com/tensorflow/models/tree/tf_2_1_Vference

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.