Skip to content

Commit

Permalink
few refactoring ideas
Browse files Browse the repository at this point in the history
  • Loading branch information
olegsinavski committed Dec 5, 2015
1 parent 6b7410d commit cac308e
Showing 1 changed file with 21 additions and 59 deletions.
80 changes: 21 additions & 59 deletions tests/test_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,99 +10,75 @@
from keras.utils.np_utils import to_categorical


def test_vector_clf():
def test_vector_classification():
np.random.seed(1337)
nb_hidden = 10

print('vector classification data:')
(X_train, y_train), (X_test, y_test) = get_test_data(nb_train=1000,
nb_test=200,
input_shape=(10,),
classification=True,
nb_class=2)
print('X_train:', X_train.shape)
print('X_test:', X_test.shape)
print('y_train:', y_train.shape)
print('y_test:', y_test.shape)

y_train = to_categorical(y_train)
y_test = to_categorical(y_test)

model = Sequential()
model.add(Dense(nb_hidden, input_shape=(X_train.shape[-1],)))
model.add(Activation('relu'))
model.add(Dense(y_train.shape[-1]))
model.add(Activation('softmax'))
model = Sequential([
Dense(nb_hidden, input_shape=(X_train.shape[-1],), activation='relu'),
Dense(y_train.shape[-1], activation='softmax')
])
model.compile(loss='categorical_crossentropy', optimizer='rmsprop')
history = model.fit(X_train, y_train, nb_epoch=15, batch_size=16,
validation_data=(X_test, y_test),
show_accuracy=True, verbose=0)
assert(history.history['val_acc'][-1] > 0.8)


def test_vector_reg():
def test_vector_regression():
np.random.seed(1337)
nb_hidden = 10
print('vector regression data:')
(X_train, y_train), (X_test, y_test) = get_test_data(nb_train=1000,
nb_test=200,
input_shape=(10,),
output_shape=(2,),
classification=False)
print('X_train:', X_train.shape)
print('X_test:', X_test.shape)
print('y_train:', y_train.shape)
print('y_test:', y_test.shape)

model = Sequential()
model.add(Dense(nb_hidden, input_shape=(X_train.shape[-1],)))
model.add(Activation('tanh'))
model.add(Dense(y_train.shape[-1]))
model = Sequential([
Dense(nb_hidden, input_shape=(X_train.shape[-1],), activation='tanh'),
Dense(y_train.shape[-1])
])

model.compile(loss='hinge', optimizer='adagrad')
history = model.fit(X_train, y_train, nb_epoch=12, batch_size=16,
validation_data=(X_test, y_test), verbose=0)
assert (history.history['val_loss'][-1] < 0.9)


def test_temporal_clf():
def test_temporal_classification():
np.random.seed(1337)
print('temporal classification data:')
(X_train, y_train), (X_test, y_test) = get_test_data(nb_train=1000,
nb_test=200,
input_shape=(3, 5),
classification=True,
nb_class=2)
print('X_train:', X_train.shape)
print('X_test:', X_test.shape)
print('y_train:', y_train.shape)
print('y_test:', y_test.shape)

y_train = to_categorical(y_train)
y_test = to_categorical(y_test)

model = Sequential()
model.add(GRU(y_train.shape[-1], input_shape=(X_train.shape[1], X_train.shape[2])))
model.add(Activation('softmax'))
model.add(GRU(y_train.shape[-1], input_shape=(X_train.shape[1], X_train.shape[2]), activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adadelta')
history = model.fit(X_train, y_train, nb_epoch=12, batch_size=16,
validation_data=(X_test, y_test),
show_accuracy=True, verbose=0)
assert(history.history['val_acc'][-1] > 0.9)


def test_temporal_reg():
def test_temporal_regression():
np.random.seed(1337)
print('temporal regression data:')
(X_train, y_train), (X_test, y_test) = get_test_data(nb_train=1000,
nb_test=200,
input_shape=(3, 5),
output_shape=(2,),
classification=False)
print('X_train:', X_train.shape)
print('X_test:', X_test.shape)
print('y_train:', y_train.shape)
print('y_test:', y_test.shape)

model = Sequential()
model.add(GRU(y_train.shape[-1], input_shape=(X_train.shape[1], X_train.shape[2])))
model.compile(loss='hinge', optimizer='adam')
Expand All @@ -111,18 +87,13 @@ def test_temporal_reg():
assert(history.history['val_loss'][-1] < 0.8)


def test_seq_to_seq():
def test_sequence_to_sequence():
np.random.seed(1337)
print('sequence to sequence data:')
(X_train, y_train), (X_test, y_test) = get_test_data(nb_train=1000,
nb_test=200,
input_shape=(3, 5),
output_shape=(3, 5),
classification=False)
print('X_train:', X_train.shape)
print('X_test:', X_test.shape)
print('y_train:', y_train.shape)
print('y_test:', y_test.shape)

model = Sequential()
model.add(TimeDistributedDense(y_train.shape[-1], input_shape=(X_train.shape[1], X_train.shape[2])))
Expand All @@ -132,36 +103,27 @@ def test_seq_to_seq():
assert(history.history['val_loss'][-1] < 0.8)


def test_img_clf():
def test_image_classification():
np.random.seed(1337)
print('image classification data:')
(X_train, y_train), (X_test, y_test) = get_test_data(nb_train=1000,
nb_test=200,
input_shape=(3, 8, 8),
classification=True,
nb_class=2)
print('X_train:', X_train.shape)
print('X_test:', X_test.shape)
print('y_train:', y_train.shape)
print('y_test:', y_test.shape)

y_train = to_categorical(y_train)
y_test = to_categorical(y_test)

model = Sequential()
model.add(Convolution2D(8, 8, 8, input_shape=(3, 8, 8)))
model.add(Activation('sigmoid'))
model.add(Flatten())
model.add(Dense(y_test.shape[-1]))
model.add(Activation('softmax'))
model = Sequential([
Convolution2D(8, 8, 8, input_shape=(3, 8, 8), activation='sigmoid'),
Flatten(),
Dense(y_test.shape[-1], activation='softmax')
])
model.compile(loss='categorical_crossentropy', optimizer='sgd')
history = model.fit(X_train, y_train, nb_epoch=12, batch_size=16,
validation_data=(X_test, y_test),
show_accuracy=True, verbose=0)
print(history.history['val_acc'][-1])
assert(history.history['val_acc'][-1] > 0.9)


if __name__ == '__main__':
print('Test different types of classification and regression tasks')
pytest.main([__file__])

0 comments on commit cac308e

Please sign in to comment.