亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 CNN-LSTM 模型上應用 model.fit() 函數?

如何在 CNN-LSTM 模型上應用 model.fit() 函數?

POPMUISE 2022-12-20 12:04:10
我試圖用它來將圖像分為兩類。我還應用了 model.fit() 函數,但它顯示錯誤。ValueError:將形狀為 (90, 1) 的目標數組傳遞給形狀為 (None, 10) 的輸出,同時用作損失 binary_crossentropy。這種損失期望目標與輸出具有相同的形狀。import tensorflow as tffrom tensorflow.keras.models import Sequentialfrom tensorflow.keras.layers import Dense, Dropout, Activation, Flatten, Conv2D, MaxPooling2D, LSTMimport pickleimport numpy as npX = np.array(pickle.load(open("X.pickle","rb")))Y = np.array(pickle.load(open("Y.pickle","rb")))#scaling our image dataX = X/255.0model = Sequential()model.add(Conv2D(64 ,(3,3), input_shape = (300,300,1)))# model.add(MaxPooling2D(pool_size = (2,2)))model.add(tf.keras.layers.Reshape((16, 16*512)))model.add(LSTM(128, activation='relu', return_sequences=True))model.add(Dropout(0.2))model.add(LSTM(128, activation='relu'))model.add(Dropout(0.2))model.add(Dense(32, activation='relu'))model.add(Dropout(0.2))model.add(Dense(10, activation='softmax'))opt = tf.keras.optimizers.Adam(lr=1e-3, decay=1e-5)model.compile(loss='binary_crossentropy', optimizer=opt,             metrics=['accuracy'])# model.summary()model.fit(X, Y, batch_size=32, epochs = 2, validation_split=0.1)
查看完整描述

1 回答

?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

如果您的問題是明確的,那么您的問題是您使用的是binary_crossentropy而不是categorical_crossentropy; 確保您確實有分類問題而不是二元分類問題。

另外,請注意,如果你的標簽是簡單的整數格式,比如 [1,2,3,4...] 而不是單熱編碼,你的 loss_function 應該是sparse_categorical_crossentropy,而不是categorical_crossentropy

如果您確實有二進制分類問題,如上述錯誤中所述,請確保:

  1. 損失是 binary_crossentroy +Dense(1,activation='sigmoid')

  2. 損失是 categorical_crossentropy +Dense(2,activation='softmax')


查看完整回答
反對 回復 2022-12-20
  • 1 回答
  • 0 關注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號