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

با تشکر

دسته بندی ها

0 امتیاز

سلام
چندتا سوال داشتم ممنون میشم راهنماییم کنید
1- من فقط دو تا فایل caffemodel و deploy.prototxt دارم میخام روی یک تصویر تست کنم مراحلش چجوریه ؟

input: "data"
input_shape {
  dim: 1000
  dim: 3
  dim: 224
  dim: 224
}

در فایل deploy.prototxt اولش اینجوری نوشته اون 1000 چی هست ؟بچ سایز؟
2- فایل statesolver برای اینکه یک مدلی رو فاین تیون کنیم به درد میخورد ؟ میشه با همون دو تا فایل بالا شبکه رو فاین تیون کرد ؟ یا با اصطلاح resume انجام داد ؟

توسط (389 امتیاز)

1 پاسخ

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

سلام
اولی بچ سایز هست
نمونه مثال classification.ipnb رو از پوشه examples باز کنید همه چیز مشخص و سر راسته
statesolver اطلاعات ترینینگ رو داره. اگه بخوایید resume کنید اون باید وجود داشته باشه وگرنه برای فاین تون کردن از همون caffemodel استفاده میشه.

آپدیت :
در مورد تبدیل میانگین به فرمت .npy هم که در کامنت گفته شد از این کد استفاده کن:

import caffe
import numpy as np
import sys

if len(sys.argv) != 3:
    print "Usage: python convert_protomean.py mean.binaryproto mean.npy"
    sys.exit()

# # Read the data into an array
# if return_diff:
#     data = np.array(blob.diff)
# else:
blob = caffe.proto.caffe_pb2.BlobProto()
data = open( sys.argv[1] , 'rb' ).read()
blob.ParseFromString(data)
data = np.array(blob.data)
arr = np.array( caffe.io.blobproto_to_array(blob) )
out = arr[0]
np.save( sys.argv[2] , out )
توسط (4.3k امتیاز)
انتخاب شده توسط
mu = np.load(caffe_root + 'python/caffe/imagenet/ilsvrc_2012_mean.npy')
mu = mu.mean(1).mean(1)  # average over pixels to obtain the mean (BGR) pixel values
تو این مثال ilsvrc_2012_mean.npy  رو از یه جایی لود کرده این چی هست ؟ من برای مدل خودم این رو ندارم چیکار میشه کرد؟
اون همون میانگین هست که به فرمت نامپای برده . همینجا من کد تبدیلش رو قبلا گذاشتم یه سرچ کن هست.
با استفاده از اون کد ، فایل میانگین معمولی رو بعنوان پارامتر بهش بده خروجی این فایلو بگیر استفاده کن
به جواب اضافه کردم از همین استفاده کن.
عذر میخام من چون تازه کارم یخورده گیج شدم
یعنی ابتدا تصویری که دارم با این کد به npy تبدیل کنم بعد اون فایل npy ایجاد شده رو بدم به اون مثال classification.ipynp ؟
این دستور برای چی هست
if len(sys.argv) != 3:
    print "Usage: python convert_protomean.py mean.binaryproto mean.npy"
    sys.exit()
سلام . نه . تصویر رو که معمولی میدی . اون فایل میانگین هست که باید تبدیلش کنی . مشخصه همه چیز. یکم بیشتر دقت کن.
آقای حسن پور خواهشا یکم واضح تر و بیشتر توضیح دهید
اون کد که گفتین از چی میانگین میگیره ؟ از تصویر ؟ درسته در کدهای پایین تصویر رو بصورت معمولی بهش میدیم پس این فایل میانگین از چی هست ؟ و این کد رو کجای اون کدهای classification.ipynp استفاده کنم ؟
من فکر کردم واضحه برای همین توضیح ندادم . ببین محمد جان شما یک فایل میانگین داری که از دیتاستت بدست میاد این میانگین رو موقع ترین و تست از تصاویرت کم میکنی (برای نرمالسازی). اینجا چون با پایتون کار میکنیم اونو اول به یه ارایه نامپای تبدیل میکنیم بعد میاییم میانگین رو برای هر کانال حساب میکنیم و بعد از اون استفاده میکنیم.
شما برای کارت به یک میانگین نیازی داری. البته اگه موقع ترینینگ از میانگین استفاده کرده باشی اگر نه که هیچی. اگر از مدل از پیش ترین شده داری استفاده میکنی که میتونی از همون میانگین ایمیج نت استفاده کنی. اگر هم خودت دیتاست داشتی و ترین کردی که از میانگین خودت استفاده کن.
فایل کلسیفیکیشن رو که باز کنی توضیحات همه هست. تنها نکته اش یکی اون بحث میانگین بود که گفتم که میانگین رو مشخص میکنی و که کافیه مسیر فایل جدیدی که با کد بالا بدست اومده رو بدی (فرمت میانگین کفی به صورت mean.binaryproto هست این فایل رو به برنامه پایتونی که بالا نوشتم میدی و خروجی یه فایل mean.npy میگیری. بعد مسیر این فایل رو استفاده میکنی)
ممنون از شما
پس با این حساب برای اینکه من از دیتاست خودم استفاده کنم نیازی هست ابتدا به فایل binaryproto تبدیل کنم دیگه درسته ؟ حالا برای تبدیل این هم شما کدی دارید بیزحمت اینجا قرار دهید ؟ یعنی دیتاستم رو به binaryproto تبدیل کنم
سلام. دیتاست به binaryproto که تبدیل نمیشه! از دیتاست شما یک میانگین گرفته میشه. یک تصویر میانگین تولید میشه. برای تولید این میانگین هم کافیه از فایل compute_image_mean استفاده کنی.
مگه قرار نبود تست کنی ؟ دیگه دیتاست میخوای چیکار؟ میخوای ترین کنی ؟ فاین تون کنی چیکار میخوای بکنی؟
قراره تست کنم حقیقتش من یک مدلی رو از اینترنت گرفتم که دو تا فایل های caffemodel , deploy.prototxt رو داره و دیتاستشم دارم (امیج نت نیست) حالا میخاستم این دو تا فایل رو جایگزین در calssification.ipynp بکنم اونجا هم فایل npy رو خواسته که من باز اون رو ندارم بخاطر همین باید برای این دیتاست ابتدا binaryproto رو بسازم بعدش npy ایجاد کنم تا بتونم از اون قالب کد ipynp استفاده کنم درسته ؟
سلام. اره میشه اینکارو کرد ولی میتونی خودت میانگین رو به ازای هر سه کانال مشخص کنی و سریع بری سر اصل داستان و دیگه درگیر ساخت دیتاست و بعد ساخت میانگین ازش و بعد تبدیل میانگین .... نشی
هرچند گزینه اول رو هم میتونی انجام بدی با خودته انتخاب. ضمنا میتونی سرچ کنی کسی میانگین اون دیتاستت رو قبلا گرفته یا نه و بری ببینی اگر هست استفاده کنی. تو گیت هاب و اینجور جاها سر بزنی خوبه خصوصا از جایی که مدل یا دیتاست رو دانلود کردی
به نظر من میشه دیگه از همون میانگین امیج نت استفاده کرد فک نکنم چندان تفاوتی داشته باشه
سلام . بالا گفتم اگه مدل روی ایمیج نت پری ترین شده باشه اره از همون میانگین استفاده میتونی بکنی . اگه نشده باشه و ماهیت دیتاست متفاوت باشه خیلی، اینکارو نکن کارو خراب میکنه.
...