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

با تشکر

دسته بندی ها

0 امتیاز

با سلام و احترام
من یک سورس کد دانلود کردم که در آن از keras استفاده کرده و گفته که باید مد theano فعال باشه. اما من چون قبلا کراس و تنسرفلو نصب کردم میخوام با همین تنسرفلو برنامه را اجرا کنم. موقع اجرا خطای زیر میدهد:

ValueError: Negative dimension size caused by subtracting 5 from 1 for 'conv2d_1/convolution' (op: 'Conv2D') with input shapes: [?,1,48,48], [5,5,48,64].

این خطا مربوط به دستور زیر در کد است:

model.add(Convolution2D(64, 5, 5, border_mode='valid', input_shape=(1,img_rows, img_cols)))

میدونم که در تنسرفلو و تیانو جای image.channel فرق می کنه. برای همین در input_shape جای ۱ را تغییر دادم. یعنی نوشتم:

input_shape=(img_rows, img_cols,1)

اما بعد از اجرای مجدد به قسمت reshape ایراد گرفت. که کدش به صورت زیر است:

Train_x, Train_y, Val_x, Val_y = dataprocessing.load_data()
Train_x = Train_x.reshape(Train_x.shape[0],1,img_rows, img_cols)
Val_x = Val_x.reshape(Val_x.shape[0],  1, img_rows, img_cols)

مجددا آرگومانهای تابع reshape رو هم تغییر دادم اما فایده ای نداشت و بازهم خطا میگرفت. اگر راه دیگه ای غیر از نصب theano هست لطفا راهنمایی م کنید. ممنون میشم

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

1 پاسخ

+1 امتیاز

سلام
ترتیب در ثیانو با تنسورفلو فرق میکنه .
شما باید از set_image_data_format استفاده کنید. برای تنسورفلو مقدار channel_last و ثیانو channel_firstباید باشه . (میتونید از متد image_data_format() استفاده کنید تا ببینید مقداردیفالت چیه اگر فراموش کردید)
یعنی اینطور :

import keras as k
#برای گرفتن مقدار ست شده فعلی
k.backend.image_data_format()
#برای ست کردن مقدار جدید مربوط به ثیانو
k.backend.set_image_data_format('channels_first')

برای ورژنهای قدیمیتر کراس هم فکر میکنم باید از set_image_dim_ordering استفاده کنید بصورت زیر

from keras import backend as K
K.set_image_dim_ordering('th')

مقدار tf مربوط به تنسورفلو هست و th مربوط به ثیانو

توسط (4.3k امتیاز)
...