N.Conv(64, (3, 3), pad='same', stride=(1, 1), activation=K.relu), N.Conv(64, (3, 3), pad='same', stride=(1, 1), activation=K.relu), N.Pool(pool_size=(2, 2), ignore_border=True, strides=None, mode='max'), N.Dropout(level=0.25), N.Flatten(outdim=2), N.Dense(512, activation=K.relu), N.Dropout(level=0.5), N.Dense(10, activation=K.softmax) ], debug=True) K.set_training(True) y_train = f(X) K.set_training(False) y_pred = f(X) cost_train = K.mean(K.categorical_crossentropy(y_train, y_true)) cost_pred = K.mean(K.categorical_accuracy(y_pred, y_true)) cost_eval = K.mean(K.categorical_crossentropy(y_pred, y_true)) parameters = f.parameters print('Parameters:', [p.name for p in parameters]) optz = K.optimizers.RMSProp() updates = optz.get_updates(cost_train, parameters) print("Build training function ...") f_train = K.function([X, y_true], cost_train, updates=updates) print("Build scoring function ...") f_score = K.function([X, y_true], [cost_pred, cost_eval]) # =========================================================================== # Create trainer
filter_size=(5, 1), strides=1, pad='valid', activation=K.relu), N.Pool(pool_size=(35, 1), pad='valid', mode='max'), N.Flatten(outdim=2), N.Dense(num_units=128, activation=K.relu), N.Dense(num_units=nb_labels, activation=K.softmax) ], debug=True) y_pred = f(X) params = [p for p in f.parameters if not has_roles(p, EmbeddingWeight)] print('Params:', [p.name for p in params]) cost_train = K.mean(K.categorical_crossentropy(y_pred, y)) cost_score = K.mean(K.categorical_accuracy(y_pred, y)) opt = K.optimizers.RMSProp() updates = opt.get_updates(cost_train, params) print('Build training function ...') f_train = K.function([X, y], cost_train, updates) print('Build scoring function ...') f_score = K.function([X, y], cost_score) trainer = training.MainLoop(batch_size=128, seed=1208, shuffle_level=2) trainer.set_task(f_train, (X_train, y_train), epoch=args['epoch'], name='train') trainer.set_subtask(f_score, (X_valid, y_valid), freq=1., name='valid')
N.Pool(pool_size=(5, 1), pad='valid', mode='max'), N.Conv(num_filters=128, filter_size=(5, 1), strides=1, pad='valid', activation=K.relu), N.Pool(pool_size=(35, 1), pad='valid', mode='max'), N.Flatten(outdim=2), N.Dense(num_units=128, activation=K.relu), N.Dense(num_units=nb_labels, activation=K.softmax) ], debug=True) y_pred = f(X) params = [p for p in f.parameters if not has_roles(p, EmbeddingWeight)] print('Params:', [p.name for p in params]) cost_train = K.mean(K.categorical_crossentropy(y_pred, y)) cost_score = K.mean(K.categorical_accuracy(y_pred, y)) opt = K.optimizers.RMSProp() updates = opt.get_updates(cost_train, params) print('Build training function ...') f_train = K.function([X, y], cost_train, updates) print('Build scoring function ...') f_score = K.function([X, y], cost_score) trainer = training.MainLoop(batch_size=128, seed=1208, shuffle_level=2) trainer.set_task(f_train, (X_train, y_train), epoch=args['epoch'], name='train') trainer.set_subtask(f_score, (X_valid, y_valid), freq=1., name='valid') trainer.set_callback([ training.ProgressMonitor('train', format='Train:{:.4f}'),
N.Pool(pool_size=(2, 2), strides=None), N.Conv(64, (3, 3), strides=(1, 1), pad='same', activation=K.relu), N.Pool(pool_size=(2, 2), strides=None), N.Flatten(outdim=2), N.Dense(256, activation=K.relu), N.Dense(10, activation=K.softmax) ], debug=True) ops = cPickle.loads(cPickle.dumps(ops)) # test if the ops is pickle-able K.set_training(True) y_pred_train = ops(X) K.set_training(False) y_pred_score = ops(X) cost_train = K.mean(K.categorical_crossentropy(y_pred_train, y)) cost_test_1 = K.mean(K.categorical_crossentropy(y_pred_score, y)) cost_test_2 = K.mean(K.categorical_accuracy(y_pred_score, y)) cost_test_3 = K.confusion_matrix(y_pred_score, y, labels=range(10)) parameters = ops.parameters optimizer = K.optimizers.SGD(lr=arg['lr']) updates = optimizer(cost_train, parameters) print('Building training functions ...') f_train = K.function([X, y], [cost_train, optimizer.norm], updates=updates) print('Building testing functions ...') f_test = K.function([X, y], [cost_test_1, cost_test_2, cost_test_3]) print('Building predicting functions ...') f_pred = K.function(X, y_pred_score) # ===========================================================================
y = K.placeholder(shape=(None,), name='y', dtype='int32') # =========================================================================== # Build network # =========================================================================== ops = N.Sequence([ N.Flatten(outdim=2), N.Dense(512, activation=K.relu), N.Dense(256, activation=K.relu), N.Dense(10, activation=K.softmax) ]) ops = cPickle.loads(cPickle.dumps(ops)) # test if the ops is pickle-able y_pred_train = ops(X_train) y_pred_score = ops(X_score) cost_train = K.mean(K.categorical_crossentropy(y_pred_train, y)) cost_test_1 = K.mean(K.categorical_crossentropy(y_pred_score, y)) cost_test_2 = K.mean(K.categorical_accuracy(y_pred_score, y)) cost_test_3 = K.confusion_matrix(y_pred_score, y, labels=range(10)) parameters = ops.parameters optimizer = K.optimizers.RMSProp(lr= 0.0001, clipnorm=100.) updates = optimizer(cost_train, parameters) print('Building training functions ...') f_train = K.function([X_train, y], [cost_train, optimizer.norm], updates=updates) print('Building testing functions ...') f_test = K.function([X_score, y], [cost_test_1, cost_test_2, cost_test_3]) # ====== normalize 0-1 ====== # if False: