## Issue

I used stock data with 4057 samples, made it into 28 time steps, with 25 features.

```
TrainX shape: (4057, 28, 25)
```

The Target consists of 5 categories of interger

```
[0,1,2,3,4]
```

and reshape into:

```
trainX_reshape= trainX.reshape(4057,1, 28,25,1)
testX_reshape= testX.reshape(1334,1, 28,25,1)
```

trying to fit the model:

```
seq =Sequential([
ConvLSTM2D(filters=40, kernel_size=(3, 3),input_shape=(1, 28, 25, 1),padding='same', return_sequences=True),
BatchNormalization(),
ConvLSTM2D(filters=40, kernel_size=(3, 3),padding='same', return_sequences=True),
BatchNormalization(),
ConvLSTM2D(filters=40, kernel_size=(3, 3),padding='same', return_sequences=True),
BatchNormalization(),
ConvLSTM2D(filters=40, kernel_size=(3, 3),padding='same', return_sequences=True),
BatchNormalization(),
Conv3D(filters=5, kernel_size=(3, 3, 3),activation='sigmoid',padding='same', data_format='channels_last')
])
```

compile with

```
seq.compile(loss='sparse_categorical_crossentropy', optimizer='rmsprop')
history = seq.fit(trainX_reshape, trainY, epochs=10,
batch_size= 128, shuffle=False, verbose = 1,
validation_data=(testX_reshape, testY),
# validation_split=0.2)
```

and it gives ERROR:

```
InvalidArgumentError: Graph execution error:
```

How to fix it? Ive tried many methods, but had no clue.

the code and data are at:

https://drive.google.com/drive/folders/1WDa_CUO1Mr7wZTqE3wHsR0Tp_3NRMcZ6?usp=sharing

works on colab

## Solution

Your model’s output does not make any sense, if you are working with sparse integer labels. It is 5D and your labels are 2D (including batch size). Try:

```
seq =Sequential([
ConvLSTM2D(filters=40, kernel_size=(3, 3),input_shape=(1, 28, 25, 1),padding='same', return_sequences=True),
BatchNormalization(),
ConvLSTM2D(filters=40, kernel_size=(3, 3),padding='same', return_sequences=True),
BatchNormalization(),
ConvLSTM2D(filters=40, kernel_size=(3, 3),padding='same', return_sequences=True),
BatchNormalization(),
ConvLSTM2D(filters=40, kernel_size=(3, 3),padding='same', return_sequences=True),
BatchNormalization(),
Conv3D(filters=5, kernel_size=(3, 3, 3),padding='same', data_format='channels_last'),
GlobalMaxPooling3D(),
Dense(5, activation='softmax')
])
```

Note, in your solution, the output of your model is reshaped to a 2D tensor to be compatible with `sparse_categorical_crossentropy`

, but this reshaping is destroying the batch size. So you get the logits shape `[89600,5]`

and labels shape `[128]`

, although it should be `[128, 5]`

and `[128]`

. If your model’s output were, for example, `[128, 1, 1, 1, 5]`

, it would probably be possible.

Answered By – AloneTogether