mirror of
https://github.com/wassname/keras-contrib.git
synced 2026-06-27 16:10:11 +08:00
56 lines
1.6 KiB
Python
56 lines
1.6 KiB
Python
import pytest
|
|
import numpy as np
|
|
np.random.seed(1337)
|
|
|
|
from keras.models import Sequential
|
|
from keras.layers import Merge
|
|
from keras.layers import Dense
|
|
from keras.layers import Activation
|
|
from keras.layers import Flatten
|
|
from keras.layers import ActivityRegularization
|
|
from keras.layers import Embedding
|
|
from keras.datasets import mnist
|
|
from keras.utils import np_utils
|
|
from keras_contrib import regularizers
|
|
|
|
nb_classes = 10
|
|
batch_size = 128
|
|
nb_epoch = 5
|
|
weighted_class = 9
|
|
standard_weight = 1
|
|
high_weight = 5
|
|
max_train_samples = 5000
|
|
max_test_samples = 1000
|
|
|
|
|
|
def get_data():
|
|
# the data, shuffled and split between tran and test sets
|
|
(X_train, y_train), (X_test, y_test) = mnist.load_data()
|
|
X_train = X_train.reshape(60000, 784)[:max_train_samples]
|
|
X_test = X_test.reshape(10000, 784)[:max_test_samples]
|
|
X_train = X_train.astype("float32") / 255
|
|
X_test = X_test.astype("float32") / 255
|
|
|
|
# convert class vectors to binary class matrices
|
|
y_train = y_train[:max_train_samples]
|
|
y_test = y_test[:max_test_samples]
|
|
Y_train = np_utils.to_categorical(y_train, nb_classes)
|
|
Y_test = np_utils.to_categorical(y_test, nb_classes)
|
|
test_ids = np.where(y_test == np.array(weighted_class))[0]
|
|
|
|
return (X_train, Y_train), (X_test, Y_test), test_ids
|
|
|
|
|
|
def create_model(weight_reg=None, activity_reg=None):
|
|
model = Sequential()
|
|
model.add(Dense(50, input_shape=(784,)))
|
|
model.add(Activation('relu'))
|
|
model.add(Dense(10, W_regularizer=weight_reg,
|
|
activity_regularizer=activity_reg))
|
|
model.add(Activation('softmax'))
|
|
return model
|
|
|
|
|
|
if __name__ == '__main__':
|
|
pytest.main([__file__])
|