rnn用于mnist数字识别
keras很好用的啊
每次一行,28个点,送到50个rnn单元
上面在加一个Dense层
参数的个数很少了,29*50+28*29+29*10=2552
BPTT 28步
效果居然也不错啊
1 rnn在减少参数个数方面的效果和cnn类似
2 rnn可以用在图像识别等和时间序列无关的领域
X_train = X_train.reshape(60000, 28,28)
X_test = X_test.reshape(10000, 28,28)
X_train = X_train.astype("float32")
X_test = X_test.astype("float32")
X_train /= 255
X_test /= 255
print(X_train.shape[0], 'train samples')
print(X_test.shape[0], 'test samples')
# convert class vectors to binary class matrices
Y_train = np_utils.to_categorical(y_train, nb_classes)
Y_test = np_utils.to_categorical(y_test, nb_classes)
model = Sequential()
model.add(GaussianNoise(0.1))
model.add(SimpleRNN(28, 50,activation='relu'))
model.add(Dense(50, nb_classes))
model.add(Activation('softmax'))
rmsprop = RMSprop()
model.compile(loss='categorical_crossentropy', optimizer=rmsprop)
model.fit(X_train, Y_train, batch_size=batch_size, nb_epoch=nb_epochs,
show_accuracy=True, verbose=1, validation_data=(X_test, Y_test))
keras很好用的啊
每次一行,28个点,送到50个rnn单元
上面在加一个Dense层
参数的个数很少了,29*50+28*29+29*10=2552
BPTT 28步
效果居然也不错啊
1 rnn在减少参数个数方面的效果和cnn类似
2 rnn可以用在图像识别等和时间序列无关的领域
X_train = X_train.reshape(60000, 28,28)
X_test = X_test.reshape(10000, 28,28)
X_train = X_train.astype("float32")
X_test = X_test.astype("float32")
X_train /= 255
X_test /= 255
print(X_train.shape[0], 'train samples')
print(X_test.shape[0], 'test samples')
# convert class vectors to binary class matrices
Y_train = np_utils.to_categorical(y_train, nb_classes)
Y_test = np_utils.to_categorical(y_test, nb_classes)
model = Sequential()
model.add(GaussianNoise(0.1))
model.add(SimpleRNN(28, 50,activation='relu'))
model.add(Dense(50, nb_classes))
model.add(Activation('softmax'))
rmsprop = RMSprop()
model.compile(loss='categorical_crossentropy', optimizer=rmsprop)
model.fit(X_train, Y_train, batch_size=batch_size, nb_epoch=nb_epochs,
show_accuracy=True, verbose=1, validation_data=(X_test, Y_test))