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

با تشکر

دسته بندی ها

0 امتیاز

سلام وقت بخیر
همان طور که گفته بودین، نسخه کفی که شامل مثال های ویندوز بود را از برنچ من دانلود کردم. و محتویات پوشه ی mnist در قسمت های data و example و همچنین پوشه ی 3rdparty را به قسمت های مربوطه در فایل کفی آپدیتی که قبلا کامپایل کرده بودم، کپی کردم.
برای آماده سازی دیتابیس طبق همه ی آموزش های موجود در اینترنت ابتدا get_mnist.bat را اجرا کردم، دیتابیس دانلود شد ( 4 فایل مربوط به پایگاه mnist) و سپس سراغ اجرای ( از طریق دابل کلیک) create_mnist.bat اقدام کردم. که متاسفانه با خطا مواجه شدم:

The system cannot find the file specified.

و بار دیگر با نصب wget وgunzip اقدام کردم که مشکل پابرجا مانده بود.
با باز کردن کد های create_mnist.bat متوجه شدم که در قسمتی از آن نیاز است که به پوشه ی Build\x64\Release رجوع کند. درحالی که همان طور که در سایت اشاره شده بود برای کامپایل کفی آن را روی قسمت Debug قرار داده بودیم. با این حال من مجددا آن را روی حالت release قرار داده و کفی را با این حالت بیلد کردم. که خوشبختانه با خطا و اروری مواجه نشد.
این بار سعی کردم که create_mnist.bat (دابل کلیک) اجرا نموده که متاسفانه باز هم مشکل رفع نشد.

  "Creating lmdb..." The system cannot find the file specified. The
  system cannot find the file specified. convert_mnist_data.exe: This
  script converts the MNIST dataset to the lmdb/leveldb format used by
  Caffe to load data. Usage:
  convert_mnist_data [FLAGS] input_image_file input_label_file 
  output_db_file The MNIST dataset could be downloaded at  
  http://yann.lecun.com/exdb/mnist/ You should gunzip them after
  downloading or directly use data/mnist/get_mnist.sh   
  
  No modules matched: use -help convert_mnist_data.exe: This script
  converts the MNIST dataset to the lmdb/leveldb format used by Caffe to
  load data. Usage:
  convert_mnist_data [FLAGS] input_image_file input_label_file output_db_file  
  The MNIST dataset could be downloaded at 
  http://yann.lecun.com/exdb/mnist/ You should gunzip them after 
  downloading  or directly use data/mnist/get_mnist.sh  
  
  
    No modules matched: use -help "Done." Press any key to continue

. . .

شایان ذکر است که convert_mnist_data.exe هم در پوشه ی Build\x64\Release و یا Debug نیز وجود دارد.
به نظر میرسد کد های این قسمت مشکل دارد ...؟
موفق باشید

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

1 پاسخ

+1 امتیاز

سلام.
من یادم نمیاد جایی از سایت گفته باشم از بیلد دیباگ استفاده کنید اتفاقا برعکس! اگر جایی این مساله هست لطفا آدرس بدید تا تصحیح بشه.
برنچ ویندوز مربوط به کفی اخیرا تغییر پیدا کرده و دیگه برنچ مایکروسافت نیست. و برای کامپایل اون از cmake استفاده میشه هرچند solution‌های ویژوال استودیو هنوز هست. با توجه به اینها من نمیدونم بخاطر نوع بیلد این اتفاق افتاده یا شما چیزی رو از قلم انداختید.
لطفا در تلگرام یک پیام به بنده بدید تا با تیم ویوءر من یه نگاهی بندازم .
ضمنا برنچ من ,‌منظور برنچی هست که من ایجاد کردم .'من' اسم یه برنچ نیست.

به هر حال برای خالی نبودن عریضه من یه توضیحی از نحوه ایجاد دیتاست ام نیست میدم
آخرین کدی که برای ایجاد دیتاست ام نیست در برنچ من قرار داده شده کد زیر هست که از اینجا قابل دیدن و دانلود هست (این کد بارها تست شده و اگر کسی از این برنچ استفاد کنه هیچ مشکلی نباید داشته باشه) :‌

ECHO OFF
ECHO                       ATTENTION
ECHO    This script converts the mnist data into lmdb/leveldb format,
ECHO    depending on the value assigned to BACKEND.
ECHO    lmdb sometimes crashes on windows, if this happens, use leveldb
ECHO    and make sure to change your prototxt to address this change (i.e change all lmdbs to leveldb!)
ECHO      

SET currentDirectory=%~dp0
SET ROOT=%currentDirectory:~0,-15%
SET MNIST_DIR=%currentDirectory:~0,-1%
SET DATA=%ROOT%data\mnist
SET BUILD=%ROOT%Build\x64\Release
SET BACKEND=lmdb

echo "Creating %BACKEND%..."

rd /s /q "%MNIST_DIR%\mnist_train_%BACKEND%"
rd /s /q "%MNIST_DIR%\mnist_test_%BACKEND%"

    "%BUILD%\convert_mnist_data.exe" %DATA%\train-images-idx3-ubyte 
%DATA%\train-labels-idx1-ubyte mnist_train_%BACKEND% --backend=%BACKEND%

    "%BUILD%\convert_mnist_data.exe" %DATA%\t10k-images-idx3-ubyte 
%DATA%\t10k-labels-idx1-ubyte mnist_test_%BACKEND% --backend=%BACKEND%

echo "Done."
PAUSE

اما برای اون کسایی که مشکل دارن و یا میخوان بدون استفاده از این اسکریپت دیتاست رو درست کنن میتونن از دستورات زیر استفاده کنن :‌
کلا ما برای تبدیل دیتاست mnist از یک فایل بنام convert_mnist_data.exe‌ استفاده میکنیم که موقع کامپایل caffe‌ این هم ساخته میشه. مثل همین فایل بنام convert_data_cifar.exe‌ وجود داره که برای دیتاست CIFAR10‌ بکار میره . یک فایل دیگه هم هست بنام convert_imageset.exe‌که برای تبدیل دیتاست های ما به فرمت lmdb‌یا leveldb‌ ازش استفاده میکنیم .
نحوه کار به این صورت هست که شما باید به این فایل پارامترهای مورد نیازش رو ارسال کنید تا یک دیتاست با فرمت مورد نظر شما بشما اراپه کنه . اگر اونفایل رو بدون هیچ ارگومانی اجرا کنید با لیستی مواجه میشید که بشما میگیه چه چیزی نیاز هست.
زمانی که شما دیتای ام نیست رو دانلود میکنید ۴ تا فایل بدست میارید . دو فایل مربوط به ترین و دو فایل هم مربوط به تست ست شما هست . که یکی دیتاست و دیگری لیبل مربوط به هر بخش هست.
نحوه فراخونی هم خیلی ساده اس و میتونید بشکل زیر این کار رو انجام بدید . من هر ارگومان رو جداگونه زیر هم مینویسم تا مشخص باشه . شما موقع استفاده همه رو در یک خط بنویسید با یک اسپیس فاصله!.
بخش اول مسیر خود فایل اجرایی ما هست .
بخش دوم فایل حاوی تصاویر آموزشی ما هست . بخش سوم هم لیبل مربوط به تصاویر آموزشی ما هست . بخش چهارم هم نامی هست که دیتاست با اون نام ایجاد میشه. و بخش آخر هم فرمت دیتابیس ما هست در اینجا ما lmdb‌ رو مشخص کردیم . (میتونستیم leveldb‌هم بنویسیم.)

"Build\X64\Release\convert_mnist_data.exe" 
Data\mnist\train-images-idx3-ubyte 
Data\mnist\train-labels-idx1-ubyte 
mnist_train_lmdb
 --backend=lmdb

برای تست ست هم به همین شکل عمل میکنیم .

"Build\X64\Release\convert_mnist_data.exe" 
Data\mnist\t10k-images-idx3-ubyte 
Data\mnist\t10k-labels-idx1-ubyte mnist_test_lmdb --backend=lmdb
توسط (4.3k امتیاز)
با این فایل bat امتحان شد و دیتاست ایجاد شد :
ECHO OFF
ECHO                       ATTENTION
ECHO    This script converts the mnist data into lmdb/leveldb format,
ECHO    depending on the value assigned to BACKEND.
ECHO    lmdb sometimes crashes on windows, if this happens, use leveldb
ECHO    and make sure to change your prototxt to address this change (i.e change all lmdbs to leveldb!)
ECHO      

SET currentDirectory=%~dp0
SET ROOT=%currentDirectory:~0,-15%
SET MNIST_DIR=%currentDirectory:~0,-1%
SET DATA=%ROOT%data\mnist
SET BUILD=%ROOT%Build\x64\Release
SET BACKEND=lmdb


echo "Creating %BACKEND%..."
rd /s /q "%MNIST_DIR%\mnist_train_%BACKEND%"
rd /s /q "%MNIST_DIR%\mnist_test_%BACKEND%"
"C:\Users\KamanGir\Desktop\thesis\deep-learning\tool-requierment\caffe-windows-new\caffe-windows\Build\X64\Release\convert_mnist_data.exe" C:\Users\KamanGir\Desktop\thesis\deep-learning\tool-requierment\caffe-windows-new\caffe-windows\Data\mnist\train-images.idx3-ubyte C:\Users\KamanGir\Desktop\thesis\deep-learning\tool-requierment\caffe-windows-new\caffe-windows\Data\mnist\train-labels.idx1-ubyte mnist_train_lmdb --backend=lmdb
"C:\Users\KamanGir\Desktop\thesis\deep-learning\tool-requierment\caffe-windows-new\caffe-windows\Build\X64\Release\convert_mnist_data.exe" C:\Users\KamanGir\Desktop\thesis\deep-learning\tool-requierment\caffe-windows-new\caffe-windows\Data\mnist\t10k-images.idx3-ubyte C:\Users\KamanGir\Desktop\thesis\deep-learning\tool-requierment\caffe-windows-new\caffe-windows\Data\mnist\t10k-labels.idx1-ubyte mnist_test_lmdb --backend=lmdb

echo "Done."
PAUSE

فایل های زیپ شده قبل از اجرا کردن این اسکریپت باید از حالت فشرده به صورت دستی خارج بشوند. همچنین در نام فایل ها یک دات وجود دارد که باید نوشته شود. مسیر ها اگر کامل نوشته شوند ایراد حل می شود
...