Files
2026-07-13 13:39:55 +08:00

38 lines
1008 B
Python

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)