اذهب إلى المحتوى
  • 0

ظهور الخطأ ValueError: Shapes (None, 1) and (None, 4) are incompatible أثناء بناء نموذج لتصنيف الأصوات audio

Meezo ML

السؤال

قمت ببناء نموذج Baseline لتصنيف الأصوات، الداتاسيت التي أعمل عليها هي مجموعة بيانات صوتية، أبعادها (400,50,95)

# النموذج
model = Sequential()
model.add(LSTM(64, input_shape = (50,95,1), return_sequences=True))
model.add(LSTM(32,activation='relu'))
model.add(Dense(4, activation='softmax'))
model.compile(optimizer='rmsprop',loss='categorical_crossentropy', metrics=["acc"])
model.summary()
model.fit(X_train, y_train, batch_size=64, nb_epoch=20, validation_data=(X_test, y_test))

لكن يظهر لي الخطأ: 

ValueError: Shapes (None, 1) and (None, 4) are incompatible

 

تم التعديل في بواسطة Meezo ML
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 3

بما أنه لديك 3 أصناف فيجب أن تقوم بتحويل ال y_train و y_test إلى الترميز الفئوي أي One-Hot أي:

from keras.utils import to_categorical
y_test = to_categorical(y_test, 4)
y_train = to_categorical(y_train, 4)

وأيضاً يجب أن تتحقق من أبعاد المدخلات لديك في طبقة LSTM حيث أن الدخل المتوقع لهذه الطبقة يجب أن يكون:

(batch_size, timesteps, input_dim) # 3D tensor

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

هو نفس فكرة الخطأ الذي قمت بشرحه هنا وهو يعني عدم تطابق البيانات المدخلة للنموذج مع القيم المتوقعة، في كل عمليات التصنيف يجب تحويل قيم y إلى الترميز المناسب لها حسب دالة حساب الخطأ loss function والتي تقوم بحساب التطابق بين البيانات الحقيقية و المتوقعة من النموذج.

يمكنك ترميز البيانات بإستخدام one hot encoding بإستخدام الدالة to_categorical والتي تحول البيانات من بعد واحد لبعدين، مثلا [0,1] تتحول إلى [[1,0],[0,1]] لاحظ أن الأن أصبح لدينا عمودين. في هذه الحالة سيتم إستخدام categorical_crossentropy كدالة لحساب الخسارة loss function و تحديد نفس عدد الأعمدة في أخر طبقة في النموذج.

يمكنك تحويل قيم y قبل التقسيم أو بعده كما ذكر @Ali Haidar Ahmad.

y = to_categorical(y)

و إما إن كانت قيم الy أصلا مقسمة إلى قيم رقمية صحيحة مثلا الارقام من 0 إلى 9 يمكننا إستخدام sparse_categorical_crossentropy.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...