簡體   English   中英

ValueError:檢查目標時出錯:預期dense_2具有形狀(1,)但得到形狀為(50,)的數組

[英]ValueError: Error when checking target: expected dense_2 to have shape (1,) but got array with shape (50,)

這是我的 cnn 模型代碼我在這里使用 flow_from_directory() 我不知道這個錯誤的解決方案。

如果解決方案是我必須使用 One-Hot Encoding 將標簽轉換為一組 50 個數字以輸入到神經網絡中。 你能向我解釋如何在我的代碼中使用它嗎

model = Sequential()
model.add(Conv2D(32,3,3, input_shape = (64,64,3), activation = "sigmoid"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Flatten())

model.add(Dense(output_dim = 512, activation="sigmoid"))
model.add(Dense(output_dim=50, activation="softmax"))

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

from keras.preprocessing.image import ImageDataGenerator

train_datagen = ImageDataGenerator( rescale = 1./255,
                                   shear_range = 0.2,
                                   zoom_range=0.2,
                                   horizontal_flip=True)

test_datagen = ImageDataGenerator(rescale = 1./255)

training_set = train_datagen.flow_from_directory('Datasets/300_train',
                                                 target_size=(64,64),
                                                 batch_size = 32,
                                                 class_mode='categorical')

testing_set = test_datagen.flow_from_directory('Datasets/300_test',
                                               target_size=(64,64),
                                               batch_size = 32,
                                               class_mode='categorical')

from IPython.display import display
from PIL import Image

model.fit_generator(training_set, steps_per_epoch=250,
                    epochs=10,validation_data=testing_set,
                    validation_steps=50)

這是我的錯誤報告:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-5-fcc5eb74d290> in <module>
      6                     epochs=10,
      7                     validation_data=testing_set,
----> 8                     validation_steps=50)
 .....
ValueError: Error when checking target: expected dense_2 to have shape (1,) but got array with shape (50,)

我的問題的解決方案是:將損失函數從sparse_categorical_crossentropycategorical_crossentropy

您可以在以下內容中找到更多信息: sparse_categorical_crossentropycategorical_crossentropy

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM