def train_ppo_for_beginners(args):
	"""
		Trains with PPO for Beginners on specified environment.

		Parameters:
			args - the arguments defined in main.

		Return:
			None
	"""
	# Import ppo for beginners
	from ppo_for_beginners.ppo import PPO
	from ppo_for_beginners.network import FeedForwardNN

	# Store hyperparameters and total timesteps to run by environment
	hyperparameters = {}
	total_timesteps = 0
	if args.env == 'Pendulum-v0':
		hyperparameters = {'timesteps_per_batch': 2048, 'max_timesteps_per_episode': 200, 'gamma': 0.99, 'n_updates_per_iteration': 10,
							'lr': 3e-4, 'clip': 0.2, 'save_freq': 1e15, 'seed': args.seed}
		total_timesteps = 1005000
	elif args.env == 'BipedalWalker-v3':
		hyperparameters = {'timesteps_per_batch': 2048, 'max_timesteps_per_episode': 1600, 'gamma': 0.99, 'n_updates_per_iteration': 10,
							'lr': 2.5e-4, 'clip': 0.2, 'save_freq': 1e15, 'seed': args.seed}
		total_timesteps = 1405000
	elif args.env == 'LunarLanderContinuous-v2':
		hyperparameters = {'timesteps_per_batch': 1024, 'max_timesteps_per_episode': 1000, 'gamma': 0.999, 'n_updates_per_iteration': 4,
							'lr': 2.5e-4, 'clip': 0.2, 'save_freq': 1e15, 'seed': args.seed}
		total_timesteps = 1005000
	elif args.env == 'MountainCarContinuous-v0':
		hyperparameters = {'timesteps_per_batch': 256, 'max_timesteps_per_episode': 1000, 'gamma': 0.99, 'n_updates_per_iteration': 4,
							'lr': 5e-3, 'clip': 0.2, 'save_freq': 1e15, 'seed': args.seed}
		total_timesteps = 405000

	# Make the environment and model, and train
	env = gym.make(args.env)
	model = PPO(FeedForwardNN, env, **hyperparameters)
	model.learn(total_timesteps)
Trains with PPO for Beginners on specified environment.

Parameters:
args - the arguments defined in main.

Return:
None
graph_code/run.py