mirror of
https://github.com/wassname/DeepRL.git
synced 2026-09-11 11:53:01 +08:00
Major refactor to support LSTM layer
This commit is contained in:
@@ -6,8 +6,8 @@ def dqn_cart_pole():
|
||||
config = dict()
|
||||
config['task_fn'] = lambda: CartPole()
|
||||
config['optimizer_fn'] = lambda params: torch.optim.RMSprop(params, 0.001)
|
||||
# config['network_fn'] = lambda optimizer_fn: FullyConnectedNet([8, 50, 200, 2], optimizer_fn)
|
||||
config['network_fn'] = lambda optimizer_fn: DuelingFullyConnectedNet([8, 50, 200, 2], optimizer_fn)
|
||||
config['network_fn'] = lambda optimizer_fn: FullyConnectedNet([8, 50, 200, 2], optimizer_fn)
|
||||
# config['network_fn'] = lambda optimizer_fn: DuelingFullyConnectedNet([8, 50, 200, 2], optimizer_fn)
|
||||
config['policy_fn'] = lambda: GreedyPolicy(epsilon=1.0, final_step=10000, min_epsilon=0.1)
|
||||
config['replay_fn'] = lambda: Replay(memory_size=10000, batch_size=10)
|
||||
config['discount'] = 0.99
|
||||
@@ -27,16 +27,16 @@ def async_cart_pole():
|
||||
config = dict()
|
||||
config['task_fn'] = lambda: CartPole()
|
||||
config['optimizer_fn'] = lambda params: torch.optim.Adam(params, 0.001)
|
||||
config['network_fn'] = lambda: FullyConnectedNet([4, 50, 200, 2], gpu=False)
|
||||
config['policy_fn'] = lambda: GreedyPolicy(epsilon=1.0, final_step=5000, min_epsilon=0.1)
|
||||
config['bootstrap_fn'] = OneStepQLearning
|
||||
# config['bootstrap_fn'] = NStepQLearning
|
||||
# config['bootstrap_fn'] = OneStepSarsa
|
||||
config['network_fn'] = lambda: FullyConnectedNet([4, 50, 200, 2])
|
||||
config['policy_fn'] = lambda: GreedyPolicy(epsilon=0.5, final_step=5000, min_epsilon=0.1)
|
||||
config['bootstrap'] = OneStepQLearning
|
||||
# config['bootstrap'] = NStepQLearning
|
||||
# config['bootstrap'] = OneStepSarsa
|
||||
config['discount'] = 0.99
|
||||
config['target_network_update_freq'] = 200
|
||||
config['step_limit'] = 0
|
||||
config['n_workers'] = 16
|
||||
config['batch_size'] = 6
|
||||
config['update_interval'] = 6
|
||||
config['test_interval'] = 4000
|
||||
config['test_repetitions'] = 50
|
||||
config['history_length'] = 1
|
||||
@@ -45,19 +45,20 @@ def async_cart_pole():
|
||||
agent.run()
|
||||
|
||||
def a3c_cart_pole():
|
||||
update_interval = 6
|
||||
config = dict()
|
||||
config['task_fn'] = lambda: CartPole()
|
||||
config['optimizer_fn'] = lambda params: torch.optim.Adam(params, 0.001)
|
||||
config['network_fn'] = lambda: FCActorCriticNet([4, 200, 2], gpu=False)
|
||||
config['network_fn'] = lambda: FCActorCriticNet([4, 200, 2])
|
||||
config['policy_fn'] = SamplePolicy
|
||||
config['bootstrap_fn'] = AdvantageActorCritic
|
||||
config['bootstrap'] = AdvantageActorCritic
|
||||
config['discount'] = 0.99
|
||||
config['target_network_update_freq'] = 0
|
||||
config['target_network_update_freq'] = 200
|
||||
config['step_limit'] = 0
|
||||
config['n_workers'] = 16
|
||||
config['batch_size'] = 6
|
||||
config['test_interval'] = 4000
|
||||
config['update_interval'] = update_interval
|
||||
config['history_length'] = 1
|
||||
config['test_interval'] = 4000
|
||||
config['test_repetitions'] = 50
|
||||
config['logger'] = gym.logger
|
||||
agent = AsyncAgent(**config)
|
||||
@@ -89,23 +90,25 @@ def dqn_pixel_atari(name):
|
||||
|
||||
def async_pixel_atari(name):
|
||||
config = dict()
|
||||
history_length = 4
|
||||
history_length = 1
|
||||
n_actions = 6
|
||||
config['task_fn'] = lambda: PixelAtari(name, no_op=30, frame_skip=4)
|
||||
config['task_fn'] = lambda: PixelAtari(name, no_op=30, frame_skip=4, frame_size=42)
|
||||
config['optimizer_fn'] = lambda params: torch.optim.Adam(params, lr=0.0001)
|
||||
config['network_fn'] = lambda: NipsConvNet(history_length, n_actions, gpu=False)
|
||||
config['network_fn'] = lambda: OpenAIConvNet(history_length,
|
||||
n_actions,
|
||||
LSTM=False)
|
||||
config['policy_fn'] = lambda: StochasticGreedyPolicy(epsilons=[1.0, 1.0, 1.0],
|
||||
final_step=1000000,
|
||||
min_epsilons=[0.1, 0.01, 0.5],
|
||||
probs=[0.4, 0.3, 0.3])
|
||||
# config['bootstrap_fn'] = OneStepQLearning
|
||||
# config['bootstrap_fn'] = NStepQLearning
|
||||
config['bootstrap_fn'] = OneStepSarsa
|
||||
# config['bootstrap'] = OneStepQLearning
|
||||
config['bootstrap'] = NStepQLearning
|
||||
# config['bootstrap'] = OneStepSarsa
|
||||
config['discount'] = 0.99
|
||||
config['target_network_update_freq'] = 10000
|
||||
config['step_limit'] = 10000
|
||||
config['n_workers'] = 16
|
||||
config['batch_size'] = 32
|
||||
config['update_interval'] = 32
|
||||
config['test_interval'] = 50000
|
||||
config['test_repetitions'] = 1
|
||||
config['history_length'] = history_length
|
||||
@@ -117,16 +120,18 @@ def a3c_pixel_atari(name):
|
||||
config = dict()
|
||||
history_length = 1
|
||||
n_actions = 6
|
||||
config['task_fn'] = lambda: PixelAtari(name, no_op=30, frame_skip=4)
|
||||
config['task_fn'] = lambda: PixelAtari(name, no_op=30, frame_skip=4, frame_size=42)
|
||||
config['optimizer_fn'] = lambda params: torch.optim.Adam(params, lr=0.0001)
|
||||
config['network_fn'] = lambda: ConvActorCriticNet(history_length, n_actions, gpu=False)
|
||||
config['network_fn'] = lambda: OpenAIConvActorCriticNet(history_length,
|
||||
n_actions,
|
||||
LSTM=True)
|
||||
config['policy_fn'] = SamplePolicy
|
||||
config['bootstrap_fn'] = AdvantageActorCritic
|
||||
config['bootstrap'] = AdvantageActorCritic
|
||||
config['discount'] = 0.99
|
||||
config['target_network_update_freq'] = 0
|
||||
config['step_limit'] = 10000
|
||||
config['n_workers'] = 16
|
||||
config['batch_size'] = 20
|
||||
config['update_interval'] = 20
|
||||
config['test_interval'] = 50000
|
||||
config['test_repetitions'] = 1
|
||||
config['history_length'] = history_length
|
||||
@@ -138,12 +143,14 @@ if __name__ == '__main__':
|
||||
# gym.logger.setLevel(logging.DEBUG)
|
||||
gym.logger.setLevel(logging.INFO)
|
||||
|
||||
# async_cart_pole()
|
||||
# dqn_cart_pole()
|
||||
# dqn_pixel_atari('BreakoutNoFrameskip-v3')
|
||||
# async_pixel_atari('BreakoutNoFrameskip-v3')
|
||||
# a3c_pixel_atari('BreakoutNoFrameskip-v3')
|
||||
# async_cart_pole()
|
||||
# a3c_cart_pole()
|
||||
|
||||
# dqn_pixel_atari('PongNoFrameskip-v3')
|
||||
async_pixel_atari('PongNoFrameskip-v3')
|
||||
# async_pixel_atari('PongNoFrameskip-v3')
|
||||
# a3c_pixel_atari('PongNoFrameskip-v3')
|
||||
|
||||
# dqn_pixel_atari('BreakoutNoFrameskip-v3')
|
||||
async_pixel_atari('BreakoutNoFrameskip-v3')
|
||||
# a3c_pixel_atari('BreakoutNoFrameskip-v3')
|
||||
|
||||
Reference in New Issue
Block a user