# fit and evaluate a model def fit_evaluate_model(X_train, y_train, X_test, y_test, n_filters): verbose, epochs, batch_size = 0, 10, 32 n_timesteps, n_features, n_outputs = X_train.shape[1], X_train.shape[2], y_train.shape[1] # create model model = Sequential() model.add(Conv1D(filters=n_filters, kernel_size=3, activation='relu', input_shape=(n_timesteps,n_features))) model.add(Conv1D(filters=n_filters, kernel_size=3, activation='relu')) model.add(Dropout(0.5)) model.add(MaxPooling1D(pool_size=2)) model.add(Flatten()) model.add(Dense(100, activation='relu')) model.add(Dense(n_outputs, activation='softmax')) #save an image of the network plot_model(model, show_shapes=True, to_file='sequential.png') model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) # fit model model.fit(X_train, y_train, epochs=epochs, batch_size=batch_size, verbose=verbose) # evaluate model _, accuracy = model.evaluate(X_test, y_test, batch_size=batch_size, verbose=verbose) return accuracy