#pandas #machine-learning #deep-learning #neural-network #conv-neural-network
#панды #машинное обучение #глубокое обучение #нейронная сеть #conv-нейронная сеть
Вопрос:
Ввод:
x_train shape: (6000, 16, 16, 1) x_test shape: (5000, 16, 16, 1) y_test shape: (5000, 11, 2) y_test shape: (5000, 16, 16, 1) 6000 train samples 5000 test samples
Нейронная сеть :-
batch_size = 128 num_classes = 10 epochs = 10 model = Sequential() model.add(Conv2D(32, kernel_size=(3, 3),activation='relu',input_shape=input_shape)) model.add(Conv2D(64, (3, 3), activation='relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) model.add(Flatten()) model.add(Dense(256, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(num_classes, activation='softmax')) model.compile(loss='categorical_crossentropy', optimizer=tf.keras.optimizers.Adadelta(),metrics=['accuracy'])
Ошибка:-
Epoch 1/10 --------------------------------------------------------------------------- ValueError Traceback (most recent call last) lt;ipython-input-47-628ddb8c3023gt; in lt;modulegt;() ----gt; 1 hist = model.fit(x_train, y_train,batch_size=batch_size,epochs=epochs,verbose=1,validation_data=(x_test, y_test)) 2 print("The model has successfully trained") 3 model.save('mnist.h5') 4 print("Saving the model as mnist.h5") 1 frames /usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/func_graph.py in autograph_handler(*args, **kwargs) 1127 except Exception as e: # pylint:disable=broad-except 1128 if hasattr(e, "ag_error_metadata"):
-gt; 1129 поднять e.ag_error_metadata.to_exception(e) 1130 еще: 1131 повышение
ValueError: in user code:
Я изо всех сил старался объяснить свою проблему, если возникнет какая-либо путаница, то мои извинения, дайте мне знать, и я добавлю это.
Ответ №1:
Как говорится в сообщении об ошибке, в то время как ваша модель выдает прогноз более 10 классов на выборку, вы передали «истинные метки» каким-то несовместимым способом, почему ваши метки трехмерны? У вас есть тензор 11x2x2 на образец, а не номер класса с одним горячим кодом.
Комментарии:
1. Не могли бы вы, пожалуйста, сказать мне, правильно ли я изменяю его?
x_train = x_train.reshape(x_train.shape[0], 16, 16, 1) x_test = x_test.reshape(x_test.shape[0], 16, 16, 1) input_shape = (16, 16, 1) # convert class vectors to binary class matrices y_train = keras.utils.np_utils.to_categorical(y_train) y_test = keras.utils.np_utils.to_categorical(y_test)
2. Я не знаю, каковы ваши данные, но если предположить, что ваши данные представляют собой изображения в оттенках серого 16×16, это выглядит нормально