AutoDiscJax v0.2
-
New modules:
BaseGoalAchievementLoss
: base module for goal-achievement lossesBaseOptimizer
: base module for optimizersOpenESOptimizer
: sgd optimizer where grad is not the exact value but estimated with ES (Salimans et al., 2017)EAOptimizer
: simple ea optimizerBaseIM
: base module for computing IM values and gradLearningProgressIM
: learning-progress IM variantIMFlowGoalGenerator
: imgep module for sampling new goals by flowing previous goals along IM gradientsBasePerturbationGenerator
: base module for generating perturbations during evaluation (dependent of experiment's system_output_library)NoisePerturbationGenerator
: submodule for generating noise perturbation params, given experiment's grn trajectoriesWallPerturbationGenerator
: submodule for generating wall perturbation params, given experiment's grn trajectoriesPiecewiseWallCollisionIntervention
: grn intervention module to apply walls
-
New util functions in
misc.py
:flat_top_gaussian
sigmoid
calc_segment_intersection
wall_sticky_collision
wall_elastic_collision
calc_perpendicular_wall_distance
calc_radial_wall_distance
wall_force_field_collision
-
Bug Fixes:
- Clamp intervention parameters in optimizers
NearestNeighborInterventionSelector
allow k>1
-
API changes:
BaseGCInterventionOptimizer
: imgep module now allows several optimizer variants (where optimizer is a BaseOptimizer object)- grn interventions
__call__()
function now takesy, y_, w, w_, c, c_, t_
as arguments - GRNRollout output pytree keys are now
ys, ws, cs, ts
instead ofy, w, c, times
imgep_experiment_pipeline
:- goal_generator now takes the
target_goal_embedding_library
as input - saving modules is optional
- goal_generator now takes the
imgep_evaluation_pipeline
:- removed the goal_embedding_encoder module from the pipeline
- perturbation_generator now takes the
experiment_system_output_library
as input - saving modules is optional
-
Tests:
- test_grn_modules
- test_imgep_modules
-
Examples:
- new example python scripts to run imgep experiment and evaluation pipelines with different possible configurations
- new jupyter notebooks to analyze the results