سلام
شما از فایل caffemodel میتونید هم برای فاین تون کردن و هم دسته بندی استفاده کنید
برای دیدن نمونه مثال میتونید classification.ipynb رو اجرا کنید . در این فایل سعی میشه فایل caffemodel دانلود بشه (که روی ایمیج نت تست شده (caffenet )) و بعد عمل دسته بندی رو روش انجام بده .
شما نیازی به دانلود ندارید مسیر خودتون رو جایگزین کنید و اجرا بگیرید همه چیز با کامنت و توضیحات مشخص هست.
در ساده ترین شکل میتونید شبکه رو با دستور net = caffe.Classifier()
مقداردهی کنید (فایل کفی مادل و همینطور فایل deploy و میانگین رو اگر استفاده کردید بعنوان پارامتر براش ارسال کنید و بعد و بعد با net.predict()
یه تصویر ورودی به شبکه بدید و خروجی رو بگیرید .
مثلا اینطور :
تعریف net برای دسته بندی
net = caffe.Classifier(deploy, caffemodel)
گرفتن خروجی
out = net.predict([image_caffe], oversample=False)
label = out[0].argmax()
میتونید همینطور بجای استفاده از classifier خیلی ساده از Net بصورت زیر استفاده کنید :
net = caffe.Net(deploy, caffemodel, caffe.TEST)
برای خروجی هم میتونید خیلی راحت forward استفاده کنید و تصویر مورد نظرتون رو (image_caffe) به شبکه بدید و خروجی رو بگیرید .
out = net.forward(data=np.asarray([ image_caffe ]))
و برای اینکه خروجی رو ببینید چه لیبلی شده :
label = int(out['prob'][0].argmax(axis=0))
که اینجا شما بجای prob باید نام اخرین لایه در فایل deploy رو بزارید(لایه softmax هر اسمی داره)