ValueError: Shapes (None, 1) and (None, 19) are incompatible

не подскажите в чем суть ошибки?

from keras.datasets import mnist # subroutines for fetching the MNIST dataset
from keras.models import Model # basic class for specifying and training a neural network
from keras.layers import Input, Dense, Flatten, Convolution2D, MaxPooling2D, Dropout
from keras.utils import np_utils #
# Build VT-CNN2 Neural Net model using Keras primitives -- 
#  - Reshape [N,2,128] to [N,1,2,128] on input
#  - Pass through 2 2DConv/ReLu layers
#  - Pass through 2 Dense layers (ReLu and Softmax)
#  - Perform categorical cross entropy optimization

dr = 0.5 # dropout rate (%)

model = models.Sequential()
model.add(Reshape([1]+in_shp, input_shape=in_shp))
model.add(ZeroPadding2D((0, 2)))
model.add(Convolution2D(256, 1, 3, padding ='valid', activation="relu", name="conv1",kernel_initializer = 'glorot_uniform'))
model.add(Dropout(dr))
model.add(ZeroPadding2D((0, 2)))
model.add(Convolution2D(80, 2, 3, padding ="valid", activation="relu", name="conv2", kernel_initializer ='glorot_uniform', data_format='channels_first'))
model.add(Dropout(dr))
model.add(Flatten())
model.add(Dense(256, activation='relu', kernel_initializer ='he_normal', name="dense1"))
model.add(Dropout(dr))
model.add(Dense( 19, kernel_initializer ='he_normal', name="dense2" ))
model.add(Activation('softmax'))
model.add(Reshape([19]))
model.compile(loss='categorical_crossentropy', optimizer='adam')
model.summary()

Model: "sequential_26"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
reshape_39 (Reshape)         (None, 1, 2, 1024)        0         
_________________________________________________________________
zero_padding2d_49 (ZeroPaddi (None, 1, 6, 1024)        0         
_________________________________________________________________
conv1 (Conv2D)               (None, 1, 2, 256)         262400    
_________________________________________________________________
dropout_58 (Dropout)         (None, 1, 2, 256)         0         
_________________________________________________________________
zero_padding2d_50 (ZeroPaddi (None, 1, 6, 256)         0         
_________________________________________________________________
conv2 (Conv2D)               (None, 80, 2, 85)         400       
_________________________________________________________________
dropout_59 (Dropout)         (None, 80, 2, 85)         0         
_________________________________________________________________
flatten_17 (Flatten)         (None, 13600)             0         
_________________________________________________________________
dense1 (Dense)               (None, 256)               3481856   
_________________________________________________________________
dropout_60 (Dropout)         (None, 256)               0         
_________________________________________________________________
dense2 (Dense)               (None, 19)                4883      
_________________________________________________________________
activation_15 (Activation)   (None, 19)                0         
_________________________________________________________________
reshape_40 (Reshape)         (None, 19)                0         
=================================================================
Total params: 3,749,539
Trainable params: 3,749,539
Non-trainable params: 0

# perform training ...
#   - call the main training loop in keras for our network+dataset
filepath = '/content/drive/MyDrive/PYTHON/lalala_w.h5'

history = model.fit(X_train,
    y_train,
    batch_size=batch_size,
    epochs = epochs,
    verbose=2,
    validation_data=(X_holdout, y_holdout),
    callbacks = [
        keras.callbacks.ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=True, mode='auto'),
        keras.callbacks.EarlyStopping(monitor='val_loss', patience=5, verbose=0, mode='auto')
    ])
# we re-load the best weights once training is finished
model.load_weights(filepath)

И выходит такая ошибка:

Epoch 1/100
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-42-7750f5559e7d> in <module>()
     11     callbacks = [
     12         keras.callbacks.ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=True, mode='auto'),
---> 13         keras.callbacks.EarlyStopping(monitor='val_loss', patience=5, verbose=0, mode='auto')
     14     ])
     15 # we re-load the best weights once training is finished

9 frames
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/func_graph.py in wrapper(*args, **kwargs)
    975           except Exception as e:  # pylint:disable=broad-except
    976             if hasattr(e, "ag_error_metadata"):
--> 977               raise e.ag_error_metadata.to_exception(e)
    978             else:
    979               raise

ValueError: in user code:

    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py:805 train_function  *
        return step_function(self, iterator)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py:795 step_function  **
        outputs = model.distribute_strategy.run(run_step, args=(data,))
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py:1259 run
        return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py:2730 call_for_each_replica
        return self._call_for_each_replica(fn, args, kwargs)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py:3417 _call_for_each_replica
        return fn(*args, **kwargs)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py:788 run_step  **
        outputs = model.train_step(data)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py:756 train_step
        y, y_pred, sample_weight, regularization_losses=self.losses)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/compile_utils.py:203 __call__
        loss_value = loss_obj(y_t, y_p, sample_weight=sw)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/losses.py:152 __call__
        losses = call_fn(y_true, y_pred)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/losses.py:256 call  **
        return ag_fn(y_true, y_pred, **self._fn_kwargs)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/util/dispatch.py:201 wrapper
        return target(*args, **kwargs)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/losses.py:1537 categorical_crossentropy
        return K.categorical_crossentropy(y_true, y_pred, from_logits=from_logits)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/util/dispatch.py:201 wrapper
        return target(*args, **kwargs)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/backend.py:4833 categorical_crossentropy
        target.shape.assert_is_compatible_with(output.shape)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/tensor_shape.py:1134 assert_is_compatible_with
        raise ValueError("Shapes %s and %s are incompatible" % (self, other))

    ValueError: Shapes (None, 1) and (None, 19) are incompatible

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