chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
import logging
|
||||
|
||||
from mla.neuralnet import NeuralNet
|
||||
from mla.neuralnet.layers import Activation, Dense
|
||||
from mla.neuralnet.optimizers import Adam
|
||||
from mla.rl.dqn import DQN
|
||||
|
||||
logging.basicConfig(level=logging.CRITICAL)
|
||||
|
||||
|
||||
def mlp_model(n_actions, batch_size=64):
|
||||
model = NeuralNet(
|
||||
layers=[Dense(32), Activation("relu"), Dense(n_actions)],
|
||||
loss="mse",
|
||||
optimizer=Adam(),
|
||||
metric="mse",
|
||||
batch_size=batch_size,
|
||||
max_epochs=1,
|
||||
verbose=False,
|
||||
)
|
||||
return model
|
||||
|
||||
|
||||
model = DQN(n_episodes=2500, batch_size=64)
|
||||
model.init_environment("CartPole-v0")
|
||||
model.init_model(mlp_model)
|
||||
|
||||
try:
|
||||
# Train the model
|
||||
# It can take from 300 to 2500 episodes to solve CartPole-v0 problem due to randomness of environment.
|
||||
# You can stop training process using Ctrl+C signal
|
||||
# Read more about this problem: https://gym.openai.com/envs/CartPole-v0
|
||||
model.train(render=False)
|
||||
except KeyboardInterrupt:
|
||||
pass
|
||||
# Render trained model
|
||||
model.play(episodes=100)
|
||||
Reference in New Issue
Block a user