The cross-entropy method on CartPole
The whole code for this example is in Chapter04/01_cartpole.py
, but the following are the most important parts. Our model's core is a one-hidden-layer NN, with rectified linear unit (ReLU) and 128 hidden neurons (which is absolutely arbitrary). Other hyperparameters are also set almost randomly and aren't tuned, as the method is robust and converges very quickly.
HIDDEN_SIZE = 128
BATCH_SIZE = 16
PERCENTILE = 70
We define constants at the top of the file and they include the count of neurons in the hidden layer, the count of episodes we play on every iteration (16
), and the percentile of episodes' total rewards that we use for "elite" episode filtering. We will take the 70th percentile, which means that we will leave the top 30% of episodes sorted by reward.
class Net(nn.Module):
def __init__(self, obs_size, hidden_size, n_actions):
super(Net, self).__init__()
self.net = nn.Sequential...