Keras Target Problem - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Data Science (https://python-forum.io/forum-44.html) +--- Thread: Keras Target Problem (/thread-18075.html) |
Keras Target Problem - inco - May-04-2019 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 _________________________________________________________________ Can sby help me?regards inco RE: Keras Target Problem - scidam - May-05-2019 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") .
|