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


老是碰見這種問題,解決方法是:

如果數據集加載了 image_dataset_from_directory, use label_mode='categorial'

train_ds = tf.keras.preprocessing.image_dataset_from_directory(
  path,
  label_mode='categorial' )
或加載 flow_from_directoryflow_from_dataframe then use class_mode='categorical'
train_ds = ImageDataGenerator.flow_from_directory(
  path,
  class_mode='categorical' )

范疇交叉熵(Categorical Cross entropy):

model = Sequential([
    Conv2D(32,3, activation='relu', input_shape=(48,48,1)), BatchNormalization(), MaxPooling2D(pool_size=(3, 3)), Flatten(), Dense(512, activation='relu'), Dense(2,activation='softmax') # activation change ]) model.compile(optimizer='adam', loss='categorical_crossentropy', # Loss metrics=['accuracy'])

二元交叉熵(Binary Crossentropy)

model = Sequential([
    Conv2D(32,3, activation='relu', input_shape=(48,48,1)), BatchNormalization(), MaxPooling2D(pool_size=(3, 3)), Flatten(), Dense(512, activation='relu'), Dense(1,activation='sigmoid') #activation change ]) model.compile(optimizer='adam', loss='binary_crossentropy', # Loss metrics=['accuracy'])

 參考:https://stackoverflow.com/questions/61742556/valueerror-shapes-none-1-and-none-2-are-incompatible?noredirect=1

 

我的訓練時因為加了下面兩句話才開始正常訓練的

MaxPooling2D(pool_size=(3, 3)),
Flatten(),

 訓練如下所示:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM