به بخش پرسش و پاسخ یادگیری عمیق خوش آمدید,
این نسخه آزمایشی سایت است.
لطفا به نکات زیر توجه کنید:
  • برای ارتباط با مدیران میتوانید از صفحه مدیران اقدام کنید.
  • سوال و جواب ها باید به زبان فارسی باشند. استفاده از زبان انگلیسی یا فینگلیش برای پاسخ دادن مجاز نیست.
  • لطفا بعد از پرسش سوال لینک سوال خود را در گرو تلگرام (Iran Deep Learning Group) معرفی کنید تا سریعتر به جواب برسید. برای دسترسی به آخرین لینک از منابع یادگیری استفاده کنید
  • لطفا بجای عکس از متن استفاده کنید. اگر متون طولانی هستند از سایت pastebin.com برای اپلود استفاده کرده و لینک حاصل را در سوال خود قرار دهید. برای قرار دادن تصویر ، از بخش ارسال تصویر ادیتور سایت استفاده کنید.
  • بعد از دریافت پاسخ، بهترین پاسخ را از طریق کلیک بر روی علامت تیک انتخاب کنید
  • اگر با خطا و یا مشکلی مواجه شدید از بخش تماس با ما در انتهای صفحه و یا ایمیل Coderx7@gmail.com موضوع را اطلاع دهید.

با تشکر

دسته بندی ها

0 امتیاز

سلام

در اجرای تمرین هفته سوم (تشخیص خودرو با استفاده از امعماری Yolo) در هنگام اجرای Predict با خطای زیر مواجه میشم

Found 7 boxes for test.jpg
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-246-4ee1c01d4438> in <module>()
----> 1 out_scores, out_boxes, out_classes = predict(sess, "test.jpg")

<ipython-input-245-d5991baadca6> in predict(sess, image_file)
     29     colors = generate_colors(class_names)
     30     # Draw bounding boxes on the image file
---> 31     draw_boxes(image, out_scores, out_boxes, out_classes, class_names, colors)
     32     # Save the predicted bounding box on the image
     33     image.save(os.path.join("out", image_file), quality=90)

/home/jovyan/work/week3/Car detection for Autonomous Driving/yolo_utils.py in draw_boxes(image, out_scores, out_boxes, out_classes, class_names, colors)
     54 
     55     for i, c in reversed(list(enumerate(out_classes))):
---> 56         predicted_class = class_names[c]
     57         box = out_boxes[i]
     58         score = out_scores[i]

TypeError: list indices must be integers or slices, not numpy.float32

با توجه به توضیحات موجود در کورس خروجی شبکه به صورت زیر هست:

It outputs your predictions: scores, boxes, classes

من session رو اجرا میکنم و با موفقیت اجرا میشه اما هنگام رسم باکس ها خطای بالا رو میده ، کسی این قسمت رو انجام داده؟

کد اجرای sess (آیا مشکل داره؟)

 out_scores, out_boxes, out_classes = sess.run([scores, boxes, classes],feed_dict={yolo_model.input:image_data, K.learning_phase(): 0})
توسط (104 امتیاز)

1 پاسخ

+1 امتیاز
 
بهترین پاسخ

اگه session رو به این صورتی که بالا نوشتین ،اجرا کنید ، این مشکل در واقع به خاطر مقادیر موجود در تنسور out_classes اتفاق میفته. مقادیر پیشبینی کلاس ها ازنوع float هستش و تابع draw_boxes با خطا روبرو میشه. برای حل این مشکل میتونید قبل از ارسال پارامتر ها به این تابع مقادیر این تنسور رو به صورت زیر به int تبدیل کنید:

out_classes=np.squeeze(out_classes).astype(np.int32)

کد بالا مشکل رو حل خواهد کرد اما خروجی کلاس نادرست پیش بینی میشه .
احتمالا در محاسبه خروجی کلاس ها در توابع قبل اشتباه کردین ، دوباره کد رو چک کنید . Session به صورت زیر تغییر بدید :

  out_scores, out_boxes, out_classes = sess.run(yolo_eval(yolo_outputs),feed_dict={yolo_model.input:image_data, K.learning_phase(): 0})

و خروجی!

توسط (415 امتیاز)
انتخاب شده توسط
...