def get_solver(self, param):
        solver = SolverParameter()
        solver.net = param['base_dir'] + param['net_name'] + "/net.prototxt"

        solver.base_lr = 0.01
        solver.weight_decay = 0.0005
        solver.lr_policy = "poly"
        solver.power = 1
        solver.momentum = 0.9
        solver.type = "SGD"
        solver.clip_gradients = 10

        solver.display = 100
        solver.max_iter = param['max_iter']
        solver.average_loss = 100
        solver.snapshot = param['solver_snapshot_interval']
        solver.snapshot_prefix = param['snapshot_dir'] + param[
            'net_name'] + "/lstm"
        solver.snapshot_format = solver.HDF5
        solver.random_seed = param['random_seed']
        solver.iter_size = 1
        solver.layer_wise_reduce = False
        return solver