from keras.datasets import mnist from keras.models import Sequential from keras.layers import Dense, Dropout, Flatten from keras.layers import Conv2D, MaxPooling2D from keras import backend as K batch_size = 64 num_classes = 10 epochs = 10 img_rows, img_cols = 28, 28 (x_train, y_train), (x_test, y_test) = mnist.load_data() if K.image_data_format() == 'channels_first': x_train = x_train.reshape(x_train.shape[0], 1, img_rows, img_cols) x_test = x_test.reshape(x_test.shape[0], 1, img_rows, img_cols) input_shape = (1, img_rows, img_cols) else: x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, 1) x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, 1) input_shape = (img_rows, img_cols, 1) x_train = x_train.astype('float32') x_test = x_test.astype('float32') x_train /= 255 x_test /= 255 print('x_train shape:', x_train.shape) print(x_train.shape[0], 'train samples') print(x_test.shape[0], 'test samples') model = Sequential([ Flatten(), Dense(512, activation='relu'), Dense(512, activation='relu'), Dropout(0.2), Dense(10, activation='softmax') ]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) model.fit(x_train, y_train, epochs=epochs, batch_size=batch_size) model.evaluate(x_test, y_test) model1 = Sequential() model1.add(Conv2D(6, (3, 3), padding='same', activation='relu',input_shape=input_shape)) model1.add(MaxPooling2D(pool_size=(2, 2))) model1.add(Dropout(0.2)) model1.add(Conv2D(8, (3, 3), padding='same', activation='relu')) model1.add(MaxPooling2D(pool_size=(2, 2))) model1.add(Dropout(0.2)) model1.add(Flatten()) model1.add(Dense(30, activation='relu')) model1.add(Dropout(0.2)) model1.add(Dense(10, activation='softmax')) model1.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) model1.fit(x_train, y_train, epochs=10) model1.evaluate(x_test, y_test) from sklearn.ensemble import RandomForestClassifier x_train = x_train.reshape(60000, 784) x_test = x_test.reshape(10000, 784) model.rf = RandomForestClassifier(n_estimators=1000,n_jobs=-1, oob_score=True,max_features="sqrt") model.rf.fit(x_train, y_train) print(model.rf.score(x_test,y_test))