def train(config_path): modelArgs = NetworkConfigParser.constructModelArgs(config_path, ModelArgs) nn = NetworkConfigParser.constructNetwork(config_path) train_path, test_path, save_path = NetworkConfigParser.getDataInfo( config_path) print nn # TODO : Arguments num_hid = nn.layers[1].num_units shape = (None, nn.layers[0].num_units) train, test, cold = loadTrainTest(train_path, test_path, shape=shape) ae = AE(nn, modelArgs) evaluate = EvaluateNN(ae) theta = ae.nn.getFlattenParams() ae.setParameters(theta) iterCounter = Counter() optimizer = getOptimizer(modelArgs.optimizer, ae, evaluate, theta, train, test, nn, modelArgs, iterCounter, modelArgs.batch_size, modelArgs.max_iter[0]) optimizer.step_grow = 5.0 k = 0 for info in optimizer: print "Iteration %d" % k if k == 5: optimizer.step_grow = 1.2 if k % 5 == 0: ae.setParameters(theta) rmse, mae = evaluate.calculateRMSEandMAE(train, test) print "Fold :%d Test RMSE: %f Test MAE: %f" % (i, rmse, mae) if k > modelArgs.max_iter[0]: break k += 1 if save_path: _theta = ae.getParameters() np.save(save_path, _theta)
def loadModel(config_path): modelArgs = NetworkConfigParser.constructModelArgs(config_path, ModelArgs) nn = NetworkConfigParser.constructNetwork(config_path) train_path, test_path, save_path = NetworkConfigParser.getDataInfo( config_path) ae = AE(nn, modelArgs) theta = np.load(save_path + ".npy") ae.setParameters(theta) return ae
def train(config_path): modelArgs = NetworkConfigParser.constructModelArgs(config_path, ModelArgs) nn = NetworkConfigParser.constructNetwork(config_path) train_path, test_path, save_path = NetworkConfigParser.getDataInfo(config_path) print nn # TODO : Arguments num_hid = nn.layers[1].num_units shape = (None, nn.layers[0].num_units) train, test, cold = loadTrainTest(train_path, test_path, shape=shape) ae = AE(nn, modelArgs) evaluate = EvaluateNN(ae) theta = ae.nn.getFlattenParams() ae.setParameters(theta) iterCounter = Counter() optimizer = getOptimizer( modelArgs.optimizer, ae, evaluate, theta, train, test, nn, modelArgs, iterCounter, modelArgs.batch_size, modelArgs.max_iter[0], ) optimizer.step_grow = 5.0 k = 0 for info in optimizer: print "Iteration %d" % k if k == 5: optimizer.step_grow = 1.2 if k % 5 == 0: ae.setParameters(theta) rmse, mae = evaluate.calculateRMSEandMAE(train, test) print "Fold :%d Final Train RMSE: %f Train MAE: %f" % (i, rmse, mae) if k > modelArgs.max_iter[0]: break k += 1 if save_path: _theta = ae.getParameters() np.save(save_path, _theta)