【发布时间】:2018-07-28 13:12:47
【问题描述】:
我想为 MNIST 数据集实现神经网络,我在网上找到了很多示例。但我想使用不同的方法研究这个问题:我想创建 10 个 NN(作为类的数量),其中我只对一个类与其他类进行分类(例如:第一个 NN 只分析“1”类与其他)。 这只是一个练习(我是python新手,我想学习)。
这实际上是我的python代码,你有什么建议修改mi代码以获得我上面解释的类分离吗?
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense
import numpy
from keras.utils import np_utils
numpy.random.seed()
(X_train, y_train), (X_test, y_test) = mnist.load_data()
num_pixels = X_train.shape[1] * X_train.shape[2]
X_train.shape[1],X_train.shape[2],X_train.shape[3])
X_train = X_train.reshape(X_train.shape[0], num_pixels).astype('float32')
X_test = X_test.reshape(X_test.shape[0], num_pixels).astype('float32')
X_train = X_train / 255
X_test = X_test / 255
y_train = np_utils.to_categorical(y_train)
y_test = np_utils.to_categorical(y_test)
print(y_test)
num_classes = y_test.shape[1]
def baseline_model():
model = Sequential()
model.add(Dense(num_pixels, input_dim=num_pixels, kernel_initializer='normal', activation='relu'))
model.add(Dense(num_classes, kernel_initializer='normal', activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
return model
model = baseline_model()
model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=3, batch_size=200, verbose=2)
model.summary()
scores = model.evaluate(X_test, y_test, verbose=1)
print("Baseline Error: %.2f%%" % (100-scores[1]*100))
【问题讨论】:
标签: python machine-learning neural-network classification mnist