Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
3541164
initial commit
vincentpierre Dec 9, 2017
7cc6d2c
multi-training fixes
vincentpierre Dec 11, 2017
2d38f4b
fixes for python3
vincentpierre Dec 11, 2017
eea344f
tracking possible memory leak
vincentpierre Dec 12, 2017
04fac45
improvement on the buffer class
vincentpierre Dec 13, 2017
46f54b3
added missing doc
vincentpierre Dec 13, 2017
4b71ddb
bug fixes on ppo
vincentpierre Dec 14, 2017
63bb9d5
implemented recurrent state encoding for continuous state
vincentpierre Jan 4, 2018
fec4dfc
merge development-0.3 into dev-trainer
vincentpierre Jan 4, 2018
51c069d
The bytes file will be generated if the user interrupts the learning …
vincentpierre Jan 8, 2018
8bde510
changed the names of the files. Please use **python learn.py** instea…
vincentpierre Jan 8, 2018
a35583a
As Hunter suggested, the available graphscopes are now displayed afte…
vincentpierre Jan 8, 2018
097ea19
Merge remote-tracking branch 'origin/development-0.3' into dev-trainer
vincentpierre Jan 9, 2018
68a6ff3
modifications to support observations and discrete input
vincentpierre Jan 9, 2018
436b7fc
reverted commit on curriculum
vincentpierre Jan 10, 2018
6b6af71
Internal Brain will not complain if the graph scope does not end with /
vincentpierre Jan 10, 2018
b746d1b
fix for tensorflow r1.4
vincentpierre Jan 12, 2018
c346f54
fix from issue 249
vincentpierre Jan 16, 2018
384651a
removed old comments
vincentpierre Jan 17, 2018
30e7c0a
fixes:
vincentpierre Jan 17, 2018
508ad7c
put buffer back into trainers
vincentpierre Jan 17, 2018
9bd01f8
add pyyaml to the requirements.txt
vincentpierre Jan 18, 2018
5d5d8dc
Implemented the PR of asolano for multi observations with the dev-tra…
vincentpierre Jan 18, 2018
4530370
removed PPO notebook, removed default trainer parameters from the lea…
vincentpierre Jan 18, 2018
407cb95
bug fix on the multi camera
vincentpierre Jan 18, 2018
f113573
added tests to make sure the trainers receive the right parameters
vincentpierre Jan 18, 2018
3b2fb9c
removed max_step from the learn.py parameters
vincentpierre Jan 18, 2018
7c87485
imitation trainer initial commit
vincentpierre Jan 19, 2018
9bc6d19
made a trainer abstract class
vincentpierre Jan 19, 2018
73ce025
indentation fix
vincentpierre Jan 19, 2018
9888af2
added some more tests
vincentpierre Jan 19, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
added tests to make sure the trainers receive the right parameters
  • Loading branch information
vincentpierre committed Jan 18, 2018
commit f113573818533509511b53684687a2a7e698bd11
4 changes: 4 additions & 0 deletions python/learn.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,10 @@ def get_progress():
if 'is_ghost' not in trainer_parameters_dict[brain_name]:
trainer_parameters_dict[brain_name]['is_ghost'] = False
if trainer_parameters_dict[brain_name]['is_ghost']:
if trainer_parameters_dict[brain_name]['brain_to_copy'] not in env.external_brain_names:
raise UnityEnvironmentException("The external brain {0} could not be found in the environment "
"even though the ghost trainer of brain {1} is trying to ghost it."
.format(trainer_parameters_dict[brain_name]['brain_to_copy'], brain_name))
trainer_parameters_dict[brain_name]['original_brain_parameters'] = trainer_parameters_dict[
trainer_parameters_dict[brain_name]['brain_to_copy']]
trainers[brain_name] = GhostTrainer(sess, env, brain_name, trainer_parameters_dict[brain_name], train_model)
Expand Down
2 changes: 2 additions & 0 deletions python/trainer_configurations.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,5 @@ ghost-Ball3DBrain:
is_ghost : true
new_model_freq : 10000
max_num_models : 3
Ball3DBrain:
is_imitation : true
10 changes: 7 additions & 3 deletions python/trainers/ghost_trainer.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,13 @@ def __init__(self, sess, env, brain_name, trainer_parameters, training):
:param trainer_parameters: The parameters for the trainer (dictionary).
:param training: Whether the trainer is set for training.
"""
self.param_keys = ['brain_to_copy', 'is_ghost', 'new_model_freq', 'max_num_models']
for k in self.param_keys:
if k not in trainer_parameters:
raise UnityEnvironmentException("The hyperparameter {0} could not be found for the PPO trainer of "
"brain {1}.".format(k, brain_name))


# TODO: check validity of parameters
self.brain_to_copy = trainer_parameters['brain_to_copy']
self.variable_scope = trainer_parameters['graph_scope']
self.original_brain_parameters = trainer_parameters['original_brain_parameters']
Expand Down Expand Up @@ -59,9 +64,8 @@ def __init__(self, sess, env, brain_name, trainer_parameters, training):
self.trainer_parameters = trainer_parameters

def __str__(self):
param_keys = ['brain_to_copy', 'is_ghost', 'new_model_freq', 'max_num_models']
return '''Hypermarameters for {0}: \n{1}'''.format(
self.brain_name, '\n'.join(['\t{0} :\t{1}'.format(x, self.trainer_parameters[x]) for x in param_keys]))
self.brain_name, '\n'.join(['\t{0} :\t{1}'.format(x, self.trainer_parameters[x]) for x in self.param_keys]))


@property
Expand Down
15 changes: 11 additions & 4 deletions python/trainers/ppo_trainer.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

from trainers.buffer import Buffer
from trainers.ppo_models import *
from unityagents import UnityEnvironmentException

logger = logging.getLogger("unityagents")

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

blank line between imports and first line of code


Expand All @@ -25,6 +26,15 @@ def __init__(self, sess, env, brain_name, trainer_parameters, training):
:param trainer_parameters: The parameters for the trainer (dictionary).
:param training: Whether the trainer is set for training.
"""
self.param_keys = ['batch_size', 'beta','buffer_size','epsilon','gamma','hidden_units','lambd','learning_rate',
'max_steps','normalize','num_epoch','num_layers','time_horizon','sequence_length','summary_freq',
'use_recurrent','graph_scope','summary_path']

for k in self.param_keys:
if k not in trainer_parameters:
raise UnityEnvironmentException("The hyperparameter {0} could not be found for the PPO trainer of "
"brain {1}.".format(k, brain_name))

self.use_recurrent = trainer_parameters["use_recurrent"]
self.sequence_length = 1
self.m_size = None
Expand Down Expand Up @@ -67,11 +77,8 @@ def __init__(self, sess, env, brain_name, trainer_parameters, training):
self.trainer_parameters = trainer_parameters

def __str__(self):
param_keys = ['batch_size', 'beta','buffer_size','epsilon','gamma','hidden_units','lambd','learning_rate',
'max_steps','normalize','num_epoch','num_layers','time_horizon','sequence_length','summary_freq',
'use_recurrent','graph_scope','summary_path']
return '''Hypermarameters for {0}: \n{1}'''.format(
self.brain_name, '\n'.join(['\t{0} :\t{1}'.format(x, self.trainer_parameters[x]) for x in param_keys]))
self.brain_name, '\n'.join(['\t{0} :\t{1}'.format(x, self.trainer_parameters[x]) for x in self.param_keys]))

@property
def parameters(self):
Expand Down