創建 CNN 模型的卷積層時發生錯誤。我不知道錯誤的原因以及如何處理它。我正在使用 keras 和 cifar10 實現 CNN,以使用 Python 3.5 進行機器學習。我在學習階段收到以下錯誤:檢查目標時出錯:預期dense_46 具有形狀(10,) 但得到形狀為(1,) 的數組它不適用于重塑標簽數組 (y_train)。#importimport tensorflow as tfimport kerasimport numpy as npimport matplotlib.pyplot as plt#get datafrom keras.datasets import cifar10(x_train, y_train), (x_test, y_test) = cifar10.load_data()#Image normalizationx_train = x_train / 255.0x_test = x_test / 255.0#Build a CNN modedef CNN_model(): model = keras.models.Sequential() #1st convolutional layer model.add(keras.layers.Conv2D(96, 11, strides=(4, 4), padding='valid', data_format='channels_last', activation='relu', bias_initializer='ones', input_shape=(32,32,3))) model.add(keras.layers.normalization.BatchNormalization(axis=1)) model.add(keras.layers.MaxPooling2D(pool_size=(3, 3), strides=(2, 2), padding='valid', data_format='channels_last')) #2nd convolutional layer model.add(keras.layers.Conv2D(256, 2, strides=(4, 4), padding='valid', data_format='channels_last', activation='relu', bias_initializer='zeros')) model.add(keras.layers.normalization.BatchNormalization(axis=1)) model.add(keras.layers.MaxPooling2D(pool_size=(1, 1), strides=(2, 2), padding='valid', data_format='channels_last')) #3rd layer model.add(keras.layers.Flatten()) model.add(keras.layers.Dense(4096)) model.add(keras.layers.Dropout(0.5)) model.add(keras.layers.Dense(4096)) model.add(keras.layers.Dropout(0.5)) #4th Softmax layer model.add(keras.layers.Dense(10, activation='softmax')) #compile model.compile(optimizer=keras.optimizers.SGD(lr=0.01), loss='categorical_crossentropy', metrics=['accuracy']) return model#Summarymodel = CNN_model()model.summary()
我在 keras 實現的 CNN 優化(學習)中出錯,但我不知道解決方案
慕的地8271018
2021-12-29 20:32:13