var t = "\n\ // lets use an example fully-connected 2-layer ReLU net\n\ var layer_defs = [];\n\ layer_defs.push({type:'input', out_sx:24, out_sy:24, out_depth:1});\n\ layer_defs.push({type:'fc', num_neurons:20, activation:'relu'});\n\ layer_defs.push({type:'fc', num_neurons:20, activation:'relu'});\n\ layer_defs.push({type:'softmax', num_classes:10});\n\ \n\ // below fill out the trainer specs you wish to evaluate, and give them names for legend\n\ var LR = 0.01; // learning rate\n\ var BS = 8; // batch size\n\ var L2 = 0.001; // L2 weight decay\n\ nets = [];\n\ trainer_defs = [];\n\ trainer_defs.push({learning_rate:LR, method: 'sgd', momentum: 0.0, batch_size:BS, l2_decay:L2});\n\ trainer_defs.push({learning_rate:LR, method: 'sgd', momentum: 0.9, batch_size:BS, l2_decay:L2});\n\ trainer_defs.push({learning_rate:LR, method: 'adam', eps: 1e-8, beta1: 0.9, beta2: 0.99, batch_size:BS, l2_decay:L2});\n\ trainer_defs.push({learning_rate:LR, method: 'adagrad', eps: 1e-6, batch_size:BS, l2_decay:L2});\n\ trainer_defs.push({learning_rate:LR, method: 'windowgrad', eps: 1e-6, ro: 0.95, batch_size:BS, l2_decay:L2});\n\ trainer_defs.push({learning_rate:1.0, method: 'adadelta', eps: 1e-6, ro:0.95, batch_size:BS, l2_decay:L2});\n\ trainer_defs.push({learning_rate:LR, method: 'nesterov', momentum: 0.9, batch_size:BS, l2_decay:L2});\n\ \n\ // names for all trainers above\n\ legend = ['sgd', 'sgd+momentum', 'adam', 'adagrad', 'windowgrad', 'adadelta', 'nesterov'];\n\ " // ------------------------ // BEGIN MNIST SPECIFIC STUFF // ------------------------ classes_txt = ['0','1','2','3','4','5','6','7','8','9']; var use_validation_data = false; var sample_training_instance = function() { // find an unloaded batch var bi = Math.floor(Math.random()*loaded_train_batches.length); var b = loaded_train_batches[bi]; var k = Math.floor(Math.random()*3000); // sample within the batch var n = b*3000+k; // load more batches over time if(step_num%5000===0 && step_num>0) { for(var i=0;i