অপ্রত্যাশিত মূলশব্দ যুক্তি কেরাসে 'র‌্যাগড'


11

নিম্নলিখিত অজগর কোড সহ প্রশিক্ষিত কেরাস মডেল চালানোর চেষ্টা করছেন:

from keras.preprocessing.image import img_to_array
from keras.models import load_model

from imutils.video import VideoStream
from threading import Thread
import numpy as np
import imutils
import time
import cv2
import os

MODEL_PATH = "/home/pi/Documents/converted_keras/keras_model.h5"

print("[info] loading model..")
model = load_model(MODEL_PATH)


print("[info] starting vid stream..")
vs = VideoStream(usePiCamera=True).start()
time.sleep(2.0)

while True:
    frame = vs.Read()
    frame = imutils.resize(frame, width=400)

    image = cv2.resize(frame, (28, 28))
    image = image.astype("float") / 255.0
    image = img_to_array(image)
    image = np.expand_dims(image, axis=0)
    (fuel, redBall, whiteBall, none) = model.predict(image)[0]
    label = "none"
    proba = none

    if fuel > none and fuel > redBall and fuel > whiteBall:
        label = "Fuel"
        proba = fuel
    elif redBall > none and redBall > fuel and redBall > whiteBall:
        label = "Red Ball"
        proba = redBall
    elif whiteBall > none and whiteBall > redBall and whiteBall > fuel:
        label = "white ball"
        proba = whiteBall
    else:
        label = "none"
        proba = none

    label = "{}:{:.2f%}".format(label, proba * 100)
    frame = cv2.putText(frame, label, (10, 25),
                        cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2)
    cv2.imshow("Frame", frame)
    key = cv2.waitKey(1) & 0xFF

    if key == ord("q"):
        break

print("[info] cleaning up..")
cv2.destroyAllWindows()
vs.stop()

আমি যখন পাইথন 3 দিয়ে এটি চালনা করি তখন আমি নিম্নলিখিত ত্রুটিটি পাই: TypeError: __init__() got an unexpected keyword argument 'ragged'

কী কারণে ত্রুটি ঘটছে, এবং আমি কীভাবে এটি ঘটাব?

সংস্করণ: কেরাস ভি 2.3.3.1 টেনসরফ্লো ভি 1.13.1

যুক্ত করতে সম্পাদনা করুন:

Traceback (most recent call last):
  File "/home/pi/Documents/converted_keras/keras-script.py", line 18, in <module>
    model = load_model(MODEL_PATH)
  File "/usr/local/lib/python3.7/dist-packages/keras/engine/saving.py", line 492, in load_wrapper
    return load_function(*args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/keras/engine/saving.py", line 584, in load_model
    model = _deserialize_model(h5dict, custom_objects, compile)
  File "/usr/local/lib/python3.7/dist-packages/keras/engine/saving.py", line 274, in _deserialize_model
    model = model_from_config(model_config, custom_objects=custom_objects)
  File "/usr/local/lib/python3.7/dist-packages/keras/engine/saving.py", line 627, in model_from_config
    return deserialize(config, custom_objects=custom_objects)
  File "/usr/local/lib/python3.7/dist-packages/keras/layers/__init__.py", line 168, in deserialize
    printable_module_name='layer')
  File "/usr/local/lib/python3.7/dist-packages/keras/utils/generic_utils.py", line 147, in deserialize_keras_object
    list(custom_objects.items())))
  File "/usr/local/lib/python3.7/dist-packages/keras/engine/sequential.py", line 301, in from_config
    custom_objects=custom_objects)
  File "/usr/local/lib/python3.7/dist-packages/keras/layers/__init__.py", line 168, in deserialize
    printable_module_name='layer')
  File "/usr/local/lib/python3.7/dist-packages/keras/utils/generic_utils.py", line 147, in deserialize_keras_object
    list(custom_objects.items())))
  File "/usr/local/lib/python3.7/dist-packages/keras/engine/sequential.py", line 301, in from_config
    custom_objects=custom_objects)
  File "/usr/local/lib/python3.7/dist-packages/keras/layers/__init__.py", line 168, in deserialize
    printable_module_name='layer')
  File "/usr/local/lib/python3.7/dist-packages/keras/utils/generic_utils.py", line 147, in deserialize_keras_object
    list(custom_objects.items())))
  File "/usr/local/lib/python3.7/dist-packages/keras/engine/network.py", line 1056, in from_config
    process_layer(layer_data)
  File "/usr/local/lib/python3.7/dist-packages/keras/engine/network.py", line 1042, in process_layer
    custom_objects=custom_objects)
  File "/usr/local/lib/python3.7/dist-packages/keras/layers/__init__.py", line 168, in deserialize
    printable_module_name='layer')
  File "/usr/local/lib/python3.7/dist-packages/keras/utils/generic_utils.py", line 149, in deserialize_keras_object
    return cls.from_config(config['config'])
  File "/usr/local/lib/python3.7/dist-packages/keras/engine/base_layer.py", line 1179, in from_config
    return cls(**config)
  File "/usr/local/lib/python3.7/dist-packages/keras/legacy/interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'ragged'

এইচ 5 ফাইলের লিঙ্ক (গুগল ড্রাইভ)


আপনি যেখানে ত্রুটি পাচ্ছেন সেখানে কোডের কিছু অংশ সহ দয়া করে আপনার সম্পূর্ণ ত্রুটি স্ট্যাক ট্রেস যুক্ত করুন।
বিবেক মেহতা

@ বিবেকমহেতা আমি পুরো কোড এবং ত্রুটির চিহ্নটি যুক্ত করেছি, আমি মনে করি আপনি এটি যা চেয়েছিলেন? সুনিশ্চিত না, দুঃখিত।
zxsq

"/home/pi/Documents/converted_keras/keras_model.h5"এটাই কি পুরো পথ? এটিকে পরম পথ দেওয়ার চেষ্টা করুন।
ডুডফ

@ দৌদনদীম হ্যাঁ, এটিই এর পরম পথ।
zxsq

সম্পূর্ণ কোড এবং স্ট্যাক ট্রেস যোগ করার জন্য ধন্যবাদ। দেখে মনে হচ্ছে জেনেরিক_উটিলে এমন কিছুকে একটি __init __ (র‌্যাগড = 'কিছু') দিয়ে ডাকা হচ্ছে তবে তা কেন হবে তা নিশ্চিত নয়।
রাজা 9

উত্তর:


21

সুতরাং আমি লিঙ্কটি চেষ্টা করেছি যার উপরে আপনি শিক্ষণীয় মেশিনটি উল্লেখ করেছেন যা
এটি রফতানি করা মডেল হিসাবে দেখা যায় আপনি tensorflow.kerasসরাসরি kerasএপিআই থেকে নয় । এই দুটি পৃথক। সুতরাং লোড করার সময় এটি tf.ragged টেনারগুলি ব্যবহার করা হতে পারে যা কেরাস এপিআইয়ের সাথে সামঞ্জস্য নাও করতে পারে।

আপনার ইস্যুতে উত্সাহ:

আপনার মডেলটি টেনসরফ্লোর কেরাস উচ্চ স্তরের এপিআই দিয়ে সংরক্ষণ করা হওয়ায় সরাসরি কেরাস আমদানি করবেন না। আপনার সমস্ত আমদানি tensorflow.keras

পরিবর্তন করুন:

from keras.preprocessing.image import img_to_array
from keras.models import load_model

এটি:

from tensorflow.keras.preprocessing.image import img_to_array
from tensorflow.keras.models import load_model

এটি আপনার সমস্যা সমাধান করবে।

সম্পাদনা:
আপনার সমস্ত আমদানি হয় হয় Kerasবা থেকে হওয়া উচিত tensorflow.keras। যদিও একই এপিআই হওয়া কয়েকটি জিনিস আলাদা যা এই ধরণের সমস্যা তৈরি করে। tensorflowব্যাকএন্ডের জন্যও tf.kerasঅগ্রাধিকার দেওয়া হয়, কারণ কেরাস ২.৩.০ সর্বশেষ বড় রিলিজ যা টেনসরফ্লো ব্যতীত অন্য ব্যাককেন্ডকে সমর্থন করবে।

এই রিলিজটি টেনসরফ্লো ২.০ হিসাবে tf.keras এপিআইয়ের সাথে সিঙ্কে API এনেছে । তবে মনে রাখবেন যে এটি বেশিরভাগ টেনসরফ্লো ২.০ বৈশিষ্ট্যগুলিকে সমর্থন করে না, বিশেষত আগ্রহী মৃত্যুদন্ড কার্যকর করার ক্ষেত্রে। আপনার যদি এই বৈশিষ্ট্যগুলির প্রয়োজন হয় তবে tf.keras ব্যবহার করুন । এটি মাল্টি-ব্যাকএন্ড কেরাসের শেষ বড় রিলিজ। এগিয়ে যাওয়া, আমরা সুপারিশ করি যে ব্যবহারকারীরা টেনসরফ্লো ২.০ তে তাদের কেরাস কোডটি tf.keras এ পরিবর্তন করতে বিবেচনা করুন ।


এটি আমার সমস্যাটি স্থির করেছে। আপনাকে অনেক ধন্যবাদ :)
মান্থান_আডমান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.