Ошибка при обучении сверточной нейросети Keras

Я только начинаю изучать нейросети и у меня появился задача( предсказание временного ряда ) под которую нужно обучить сверточную нейросеть. Привожу пример кода, размерности такие же как и в моей модели, но запустить никак не получается, не пойму в чем я ошибаюсь

import random
import numpy as np
import tensorflow as tf
import pandas as pd
from tensorflow import keras
from tensorflow.keras.layers import Dense, BatchNormalization, LeakyReLU
from tensorflow.keras.layers import Activation, Input, MaxPooling1D, Dropout
from tensorflow.keras.layers import AveragePooling1D, Conv1D, Flatten
from tensorflow.keras.models import Sequential, Model
from tensorflow.keras.optimizers import Adam, RMSprop, SGD


a = np.random.uniform(1, 2, (1000, 60, 1))
c = np.random.uniform(90, 120, (1000, 60, 1))
X_train = np.concatenate([a, c], axis = 2)
y_train = np.random.randint(0, 10, (1000, 60, 1))

model = Sequential()
model.add( Conv1D( filters=32, kernel_size=5, padding="same", strides=1,
                   input_shape= X_train.shape[1:]))
model.add(MaxPooling1D(pool_size=2, strides=2))
model.add(Flatten())
model.add(   Dense(128, activation='relu'))
model.add(   Dense(60,  activation='softmax'))

model.compile(optimizer='adam',
             loss='categorical_crossentropy',
             metrics=['accuracy'])
model.fit(X_train, y_train, batch_size=60, epochs=5, validation_split=0.2)

Ответы (1 шт):

Автор решения: CrazyElf

Если убрать в y_train лишнее измерение, то ругаться перестанет. Хотя смысл происходящего, что вы вообще делаете, я всё-равно не очень понимаю:

y_train = np.random.randint(0, 10, (1000, 60))

Вывод:

Epoch 1/5
14/14 [==============================] - 1s 29ms/step - loss: 35250.2271 - accuracy: 0.0826 - val_loss: 129340.7266 - val_accuracy: 0.1300
Epoch 2/5
14/14 [==============================] - 0s 10ms/step - loss: 173555.8661 - accuracy: 0.0947 - val_loss: 343351.0000 - val_accuracy: 0.1300
Epoch 3/5
14/14 [==============================] - 0s 9ms/step - loss: 417384.6271 - accuracy: 0.0796 - val_loss: 683126.2500 - val_accuracy: 0.1300
Epoch 4/5
14/14 [==============================] - 0s 10ms/step - loss: 791558.7750 - accuracy: 0.0856 - val_loss: 1193625.6250 - val_accuracy: 0.1300
Epoch 5/5
14/14 [==============================] - 0s 9ms/step - loss: 1349708.7083 - accuracy: 0.0766 - val_loss: 1910949.5000 - val_accuracy: 0.1300
<tensorflow.python.keras.callbacks.History at 0x7f5e8c63e310>

Размер выходного слоя у вашей модели 60, куда девать лишнее измерение (60,1) модели просто было непонятно.

→ Ссылка