31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
import keras
|
|
from keras.models import Sequential
|
|
from keras.layers import Dense, Dropout, Activation
|
|
from keras.optimizers import SGD
|
|
|
|
import numpy as np
|
|
x_train = np.random.random((1000, 20))
|
|
y_train = keras.utils.to_categorical(np.random.randint(10, size=(1000, 1)), num_classes=50)
|
|
x_test = np.random.random((100, 20))
|
|
y_test = keras.utils.to_categorical(np.random.randint(10, size=(100, 1)), num_classes=50)
|
|
|
|
model = Sequential()
|
|
# Dense(64) is a fully-connected layer with 64 hidden units.
|
|
# in the first layer, you must specify the expected input data shape:
|
|
# here, 20-dimensional vectors.
|
|
model.add(Dense(200, activation='relu', input_dim=20))
|
|
model.add(Dropout(0.5))
|
|
model.add(Dense(200, activation='relu'))
|
|
model.add(Dropout(0.5))
|
|
model.add(Dense(50, activation='softmax'))
|
|
|
|
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
|
|
model.compile(loss='categorical_crossentropy',
|
|
optimizer=sgd,
|
|
metrics=['accuracy'])
|
|
|
|
model.fit(x_train, y_train,
|
|
epochs=20,
|
|
batch_size=128)
|
|
score = model.evaluate(x_test, y_test, batch_size=128)
|