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

با تشکر

دسته بندی ها

0 امتیاز

با سلام..
آیا معماری الکس نت در کفه هست؟ آیا باید فولدر imagenet در examples را اجرا کرد؟
لطفا در مورد دانلود و گرفتن دیتابیس و همین طور اجرای این معماری هم مشابه mnist توضیح بفرمایید..
قبلا از راهنماییهاتون بسیار متشکرم..

آپدیت : اطلاعات اضافی :
من ابتدا یک کپی از فایل train_val.prototxt و solver.prototxt گرفتم و نامشو کمی تغییر دادم و در همون مسیر سیو کردم و به جای این قسمت در فایل train_val.prototxt

transform_param {
    mirror: true
    crop_size: 227
    mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"
  }
  data_param {
    source: "examples/imagenet/ilsvrc12_train_lmdb"
    batch_size: 256
    backend: LMDB
  }
}

این کد زیر رو جایگزین کردم..

transform_param {
      scale: 0.00390625
    }
  data_param {
      source: "examples/mnist/mnist_train_lmdb"
      backend: LMDB
      batch_size: 64
    }
    }

و در فایل solver.prototxt نیز این قسمت رو به نامی که خودم سیو کردم قرار دادم:

net: "models/bvlc_alexnet/train_val.prototxt"

ولی قسمت snapshot رو تغییری ندادم:
snapshot_prefix: "models/bvlc_alexnet/caffe_alexnet_train" و همین رو گذاشتم.. در ترمینال اوبونتو و در روت کفه به این صورت اجرا میکنم:

./build/tools/caffe train --solver=models/blvc_alexnet/solver mnist.prototxt

که در اون solver mnist همون سالور الکس نت هست که یک کپی ازش گرفتم که در اجرا این میاد:

caffe: command line brew
usage: caffe <command> <args>

commands:
  train           train or finetune a model
  test            score a model
  device_query    show GPU diagnostic information
  time            benchmark model execution time

  Flags from tools/caffe.cpp:
    -gpu (Optional; run in GPU mode on given device IDs separated by ','.Use
      '-gpu all' to run on all available GPUs. The effective training batch
      size is multiplied by the number of devices.) type: string default: ""
    -iterations (The number of iterations to run.) type: int32 default: 50
    -level (Optional; network level.) type: int32 default: 0
    -model (The model definition protocol buffer text file.) type: string
      default: ""
    -phase (Optional; network phase (TRAIN or TEST). Only used for 'time'.)
      type: string default: ""
    -sighup_effect (Optional; action to take when a SIGHUP signal is received:
      snapshot, stop or none.) type: string default: "snapshot"
    -sigint_effect (Optional; action to take when a SIGINT signal is received:
      snapshot, stop or none.) type: string default: "stop"
    -snapshot (Optional; the snapshot solver state to resume training.)
      type: string default: ""
    -solver (The solver definition protocol buffer text file.) type: string
      default: "" currently: "models/blvc_alexnet/solver"
    -stage (Optional; network stages (not to be confused with phase), separated
      by ','.) type: string default: ""
    -weights (Optional; the pretrained weights to initialize finetuning,
      separated by ','. Cannot be set simultaneously with snapshot.)
توسط (155 امتیاز)
ویرایش شده توسط

1 پاسخ

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

سلام
بله معماری الکس نت در Caffe وجود داره و به دو صورت میتونید بدست بیارید
1. از پوشه models و بعد پوشه blvc_alexnet در روت کفی
2. از پوشه data پوشه ilsvrc12 و اجرای اسکریپتی که اونجا هست یا بصورت مستقیم دانلود از این لینک و اکسترکت اون

دقت کنید که این فایلها بیشتر برای فاین تون یا استفاده در دیتاست های مختلف قرار داده شده و برخلاف mnist و cifar10 و یا cifar100 دیتاستی ایجاد یا دانلود نمیشه . چرا که حجم دیتاست ایمیجنت جمعا بالای 150 گیگابایت هست.
در هر صورت زمانی که شما معماری و فایل سالور رو بدست اوردید از طریق یکی از راه های گفته شده بالا براحتی میتونید لایه Data اون رو تغییر بدید و با دیتاست های مختلف من جمله Mnist یا cifar10 و یا هر دیتاست دیگه ای که دوست دارید استفاده اش کنید چون شیوه آموزش هیچ تفاوتی نمیکنه . تنها فرق الکس نت با mnist (معماری LeNet5 و یا cifar10) معماری اون هست .

برای بخش دوم سوالتون فکر میکنم مشکل از

./build/tools/caffe train --solver=models/blvc_alexnet/solver mnist.prototxt

اسم سالور شما نباید space داشته باشه . این رو اکی کنید و خبر بدید .

توسط (4.3k امتیاز)
ویرایش شده توسط
بسیار ممنون از توضیح واضحتون..
ولی لطفا بگید که چه تغییری باید در snapshot انجام شود..من میخوام با دیتابیس mnist معماری الکس نت رو اجراکنم ولی میگه که   
Cannot be set simultaneously with snapshot ممنون میشم راهنمایی کنید.. تشکر!
سلام . لطفا تغییراتی که دادید(معماری شبکه) رو با محتویات سالور به متن سوال اضافه کنید تا دقیقتر بشه راهنمایی کرد
من همانطور که گفتید فقط قسمت data رو مطابق آنچه در mnist بود تغییر دادم در فایل train_val.prototxt و به این صورت اجرا کردم:
و  ./build/tools/caffe train --solver=models/bvlc_alexnet/solver.prototxt
اما در snapshot چیزی رو تغییر ندادم چون نمیدونستم باید نام کدوم فایل رو بنویسم!!
لطفا کمکم کنید تا بدونم این قسمت رو چه تغییری باید بدهم..
چون شما گفتید با هر دیتابیسی میشه الکس نت رو اجرا کرد تنها معماری اون متفاوته..
سلام.بله هنوز هم میگم. عرض کردم هرکاری کردید کل محتویات فایلها رو به متن سوالتون اضافه کنید.هم شبکه و هم سالور. هرچی هست در متن سوال بیارید و هرطور سعی کردید اجراشون هم کنید دقیقا قید کنید و خطایی هم که میگیرید عینا کل خطای اون صفحه رو کپی کنید
اطلاعات در پست اصلی بروز شد!
جواب شما رو دادم .
لطفا همینطور که من پست اصلی رو ویرایش کردم سعی کنید مطالب رو بعدا اضافه کنید.
ضمنا من منظورم این بود کل تعریف شبکه رو قرار بدید نه یک تکه. تا اینطور مثلا من نوعی بتونم خودمم تست کنم . البته با توضیحاتی که دادید مشخصکه کجا رو اشتباه رفتید ولی سعی کنید طبق چیزی که عرض کردم عمل کنید تا بهتر بشه راهنمایی کرد.
بسیار ممنون از وقتی که میذارید..
من بقیه شبکه رو هیچ تغییری ندادم واسه همینم دیگه اینجا نذاشتمش..من فاصله موجود در نام سالور رو درست کردم و بعد از اجرا به این صورت خطا داد:
F1226 23:36:43.101327  7529 io.cpp:36] Check failed: fd != -1 (-1 vs. -1) File not found: models/blvc_alexnet/solvermnist.prototxt
*** Check failure stack trace: ***
    @     0x7f031f8705cd  google::LogMessage::Fail()
    @     0x7f031f872433  google::LogMessage::SendToLog()
    @     0x7f031f87015b  google::LogMessage::Flush()
    @     0x7f031f872e1e  google::LogMessageFatal::~LogMessageFatal()
    @     0x7f031fe76508  caffe::ReadProtoFromTextFile()
    @     0x7f031fe8a1b6  caffe::ReadSolverParamsFromTextFileOrDie()
    @           0x40abea  train()
    @           0x4077c8  main
    @     0x7f031e007830  __libc_start_main
    @           0x408099  _start
    @              (nil)  (unknown)
Aborted (core dumped)
آخه یک فایل دیگه ای هم هست به نام deploy.prototxt که به نظرم باید این هم تغییراتی توش داده بشه.. فکر کنم تنها با تغییر لایه data نشه به جواب رسید!!!
نه ربطی نداره. فایل deploy مختص زمان تست و دیپلوی هست. خطای شما هم کاملا مشخصه
File not found: models/blvc_alexnet/solvermnist.prototxt
فایل سالور شما رو پیدا نمیکنه . دقت کنید مسیر رو صحیح وارد کنید .
بله ممنون.. یه اشتباه تایپی بود تو نام فولدر الکس نت!!!
ولی فقط آموزش رو شروع کرد و تمام لایه ها رو هم اجرا کرد ولی همین که به قسمت fc6 رسید اینطوری داد:
I1227 00:18:34.111390  7818 net.cpp:100] Creating Layer fc6
I1227 00:18:34.111392  7818 net.cpp:434] fc6 <- pool5
I1227 00:18:34.111397  7818 net.cpp:408] fc6 -> fc6
F1227 00:18:34.111418  7818 blob.cpp:115] Check failed: data_
*** Check failure stack trace: ***
    @     0x7f4f432ad5cd  google::LogMessage::Fail()
    @     0x7f4f432af433  google::LogMessage::SendToLog()
    @     0x7f4f432ad15b  google::LogMessage::Flush()
    @     0x7f4f432afe1e  google::LogMessageFatal::~LogMessageFatal()
    @     0x7f4f43a5bd3b  caffe::Blob<>::mutable_cpu_data()
    @     0x7f4f4393a33a  caffe::GaussianFiller<>::Fill()
    @     0x7f4f4393ae27  caffe::InnerProductLayer<>::LayerSetUp()
    @     0x7f4f439057e2  caffe::Net<>::Init()
    @     0x7f4f43907071  caffe::Net<>::Net()
    @     0x7f4f439184aa  caffe::Solver<>::InitTrainNet()
    @     0x7f4f43919817  caffe::Solver<>::Init()
    @     0x7f4f43919bba  caffe::Solver<>::Solver()
    @     0x7f4f43a4fc83  caffe::Creator_SGDSolver<>()
    @           0x40afb9  train()
    @           0x4077c8  main
    @     0x7f4f41a44830  __libc_start_main
    @           0x408099  _start
    @              (nil)  (unknown)
Aborted (core dumped)
کل خروجی رو بزارید لطفا ( از  http://pastebin.com/ استفاده کنید و لینک بدید ).
(این خطا به احتمال 99 درصد بخاطر سایز تصویر ورودی شما هست. اندازه کرنل اولیه رو تغییر بدید باید مشکلتون برطرف بشه.)
ممنون.. حتما تغییر میدم!!
لینک خروجی برنامه  http://pastebin.com/SyQT9Vxq
بسیار بسیار ممنون از کمک بزرگی که کردید.. انشالله هرچی از خدا میخواین بهتون بده..
بله مشکل شما دقیقا همون چیزی هست که عرض کردم .
این خط
Top shape: 64 256 0 0 (0)
نشون میده که دیگه داده ای وجود نداره برای fc6 و دلیلش هم اندازه ورودی کوچکتر شما نسبت به ورودی در معماری الکسنت هست. چون تصاویر در الکس نت 224 در 224 بودن با اون اندازه کرنل و استراید ها ست هست اما تصاویر شما در دیتاست ام نیست 28 در 28 پیکسله برای همین به این مشکل خوردید. لایه اول کانولوشن رو تغییر بدید به احتمال زیاد مشکلتون برطرف میشه.
ضمنا فکر میکنم این بخش رو بعنوان یک سوال جداگانه مطرح کنید خیلی بهتر باشه /
...