Chollet ML نشر 4 أغسطس 2021 أرسل تقرير نشر 4 أغسطس 2021 قمت ببناء النموذج التالي في كيراس، لكن يطهر لي الخطأ التالي: backend.set_image_dim_ordering('tf') np.random.seed(7) x_train = x_train.astype('float32')/255.0 x_test = x_test.astype('float32')/255.0 y_train = np_utils.to_categorical(y_train) y_test = np_utils.to_categorical(y_test) model = Sequential() model.add(Convolution2D(16, 3, 3,, W_constraint=maxnorm(3), input_shape=(3, 32, 32), border_mode='same', activation='tanh')) model.add(Dropout(0.3)) model.add(Convolution2D(32, 3, 3,, W_constraint=maxnorm(3), activation='tanh', border_mode='same')) model.add(Flatten()) model.add(Dense(400, activation='relu', W_constraint=maxnorm(3))) model.add(Dropout(0.4)) model.add(Dense(y_test.shape[1], activation='softmax')) model.compile(loss='categorical_crossentropy', optimizer="adam", metrics=['acc']) model.fit(x_train, y_train,batch_size=64, validation_data=(x_test, y_test), nb_epoch=30) model.evaluate(x_test, y_test) ------------------------------------------------------------ ValueError: Error when checking model input: expected convolution2d_input_1 to have shape (None, 3, 32, 32) but got array with shape (50000, 32, 32, 3) اقتباس
1 Ali Haidar Ahmad نشر 4 أغسطس 2021 أرسل تقرير نشر 4 أغسطس 2021 يخبرك الخطأ بأن أبعاد بيانات التدريب لديك (الدخل) هي (50000, 32, 32, 3) بينما أنت قمت بتعريف النموذج على أن تستقبل طبقة الدخل الخاصة به input_shape أبعاد من الشكل (3, 32, 32) أي input_shape=(3, 32, 32) وبالتالي ظهر الخطأ نتيجة عدم توافق الأبعاد. أي أن شكل الإدخال المتوقع والبيانات المعطاة مختلفين. ولحل المشكلة يجب أن تقوم بتعديل أبعاد طبقة الدخل في نموذجك أي input_shape=(32, 32, 3) أو أن تقوم بتغيير أبعاد الدخل يحيث يتوافق مع طبقة الدخل في نموذجك: x_train = x_train.transpose(0,3,1,2) x_test = x_test.transpose(0,3,1,2) اقتباس
1 Ahmed Sharshar نشر 4 أغسطس 2021 أرسل تقرير نشر 4 أغسطس 2021 تكمن المشكلة في تحديدة لشكل البيانات المدخل بطريقة خاطئة هنا: model.add(Convolution2D(16, 3, 3,, W_constraint=maxnorm(3), input_shape=(3, 32, 32), border_mode='same', activation='tanh')) input_shape يمثل شكل البيانات التي تدخل الي اول طبقة في طبقات التعلم، أنت هنا قمت بتحديدها على انها (3,32,32) في حين أن شكل البيانات لديك هو (50000, 32, 32, 3)، لذا عليك ظبط شكل الدخل ليمثال شكل البيانات لديك كالتالي: model.add(Convolution2D(16, 3, 3,, W_constraint=maxnorm(3), input_shape=(50000, 32, 32, 3), border_mode='same', activation='tanh')) اقتباس
السؤال
Chollet ML
قمت ببناء النموذج التالي في كيراس، لكن يطهر لي الخطأ التالي:
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.