Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Keras Target Problem
#1
The train data: 897 ndarrays (5,1980 - float64) between 0-1. The labels are binary, 0 or 1.
trainX.shape
Out[4]: (897, 5, 1980)
trainY.shape
Out[5]: (897, 1)
Model: (original code here)

model = Sequential()
model.add(Dense(1024, input_shape=(5,1980), activation="sigmoid"))
model.add(Dense(512, activation="sigmoid"))
model.add(Dense(2, activation="softmax"))

INIT_LR = 0.01
EPOCHS = 75
 
opt = SGD(lr=INIT_LR)
model.compile(loss="binary_crossentropy", optimizer=opt,
	metrics=["accuracy"])

H = model.fit(trainX, trainY, validation_data=(testX, testY),
	epochs=EPOCHS, batch_size=64)
model.summary()
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
dense_1 (Dense)              (None, 5, 1024)           2028544   
_________________________________________________________________
dense_2 (Dense)              (None, 5, 512)            524800    
_________________________________________________________________
dense_3 (Dense)              (None, 5, 2)              1026      
=================================================================
Total params: 2,554,370
Trainable params: 2,554,370
Non-trainable params: 0
_________________________________________________________________
Error:
Error when checking target: expected dense_3 to have 3 dimensions, but got array with shape (897, 1)
Can sby help me?

regards
inco
Reply
#2
It is definitely something wrong with the model. As far as I understood, you have binary classification problem. If you don't need
to extract specific features that accounting neighbor values (e.g. neighbor pixel colors), as it does in case of image segmentation/classification problems (when using, e.g. CNN), you likely don't need to create 2d input layer: input_shape=(5,1980); just replace this with input_shape=(5*1980, ); Further, reshape TrainX (and TestX): TrainX = TrainX.reshape(897, -1); Finally, output of the last layer has dim (len(TrainY), 2), so you need to apply keras.utils.to_categorical to TrainY, e.g. TrainY = to_categorical(TrainY) (or you can leave TrainY as is, but change dense_3 layer to Dense(1, activation="softmax").
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  1st layer tf.keras output shape set at multiple - need help! Afrodizzyjack 0 1,786 Jun-07-2022, 04:53 PM
Last Post: Afrodizzyjack
  issue displaying summary of whole keras CNN model on TensorFlow with python Afrodizzyjack 0 1,621 Oct-27-2021, 04:07 PM
Last Post: Afrodizzyjack
  Understanding Keras and TensorFlow and how to use them bytecrunch 1 2,056 Mar-11-2021, 02:40 PM
Last Post: jefsummers
  Problems feeding live input from my microphone into a keras model (SegFault: 11) zeptozetta 1 2,544 Sep-14-2020, 03:08 AM
Last Post: zeptozetta
  Keras.Predict into Dataframe Finpyth 13 9,587 Aug-31-2020, 07:22 AM
Last Post: hussainmujtaba
  Making a Basic Keras Model - Input Shape and Parameters MattKahn13 0 2,095 Aug-16-2020, 04:36 PM
Last Post: MattKahn13
  Error when import Keras Azadfalah 1 2,754 Apr-29-2020, 04:45 AM
Last Post: buran
  Keras + Matplotlib causing crash spearced 3 4,442 Feb-06-2020, 04:54 PM
Last Post: zljt3216
  Keras Dense layer with wrong input d1r4c 0 1,740 Jan-02-2020, 02:35 PM
Last Post: d1r4c
  Keras: Time series classification midarq 0 1,966 Sep-25-2019, 09:03 AM
Last Post: midarq

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020