Add SVM to last layer
This should work for adding svm as last layer.
inp = Input((train_X.shape[1], train_X.shape[2]))
lstm = LSTM(1, return_sequences=False)(inp)
output = Dense(train_Y.shape[1], activation='softmax', W_regularizer=l2(0.01)))(lstm)
model = Model(inputs=inp, outputs=output)
model.compile(loss='hinge', optimizer='adam', metrics=['accuracy'])
model.fit(train_X, train_Y, validation_split=.20, epochs=2, batch_size=50)
Here I have used hinge
as loss considering binary categorised target. But if it is more than that, then you can consider using categorical_hinge
Change softmax
to linear
and add kernel_regularizer=l2(1e-4)
instead W_regularizer=l2(0.01)
using keras 2.2.4. Use loss = categorical_hinge
.