[0.15.3.0] - 2024-12-05
Bug Fixes
-
Fix/standard_output_ports_calculate (#3114)
-
- recurrenttransfermechanism.py
- _instantiate_attributes_after_function(): fix assignment of StabilityFunction, and force update of default_variable for output_port
-
_instantiate_attributes_after_function:
revise call to _update_default_variable to use energy.variable instead of value -
- test_recurrent_transfer_mechanism.py
- TestStandardOutputPorts:
test_rtn_energy()
test_rtn_entropy()
-
- recurrenttransfermechanism.py
_instantiate_attributes_after_function():
refactor to assign functions for ENERGY and ENTROPY standard_output_ports before call to super()
- recurrenttransfermechanism.py
-
Fix/lccontrolmechanism_objectivemechanism (#3134)
-
- composition.py
- suppress warning about adding CONTROL_OBJECTIVE NodeRole if ObjectiveMechanism is already associated with a ControlMechanism
-
lccontrolmechanism.py
- _instantiate_objective_mechanism(): implement default ObjectiveMechanism with CombineMeans
- _instantiate_control_signals:
complete implementation of ALL
-
- test_control_mechanism.py
test_lc_control_monitored_and_modulated_mechanisms_composition(): augmented to test implementation of ObjectiveMechanism
- test_control_mechanism.py
Component
- Make deprecated arg error via illegal args; deprecate 'size' (#3123)
Functions/OneHot
- Fix "DETERMINISITC" typo
- Use local PRNG to randomly select extreme index
Mechanism
- If any port has default_input, get variable from input_ports
Parameter
- Correct .set post-initialization check (#3116)
Port
- Use default_input before checking projections
Refactor
-
Refactor/emcomposition_field_handling (#3122)
-
- emcomposition.py
_parse_fields: clean up assignment of self.num_fields
- emcomposition.py
-
test_emcomposition.py
add test_assign_field_weights_and_0_vs_None()
add test_field_weights_all_None_and_or_0 -
emcomposition.py
- revamp docstring to document new mods
- add fields arg to specify field_naes, field_weights, learn_field_weights
- implement fields arg to specify field_names, field_weights, learn_field_weights in dict format
- implement support for field-specific learn_field_weight specifications
- _identify_target_nodes():
refactor to use target_fields instead of learn_field_weights - add target_fields to fields specification dict
- add dict spec for entries in fields arg
- start adding field_idx to all components
- add self._field_index_map
-
pytorchEMcompositionwrapper.py
- store_memory(): use self._field_index_map to assign memories to fields
-
test_emcomposition.py
- test_backpropagation_of_error_in_learning(): use EGO model to test for error backpropagation through EMCompoistion
- test_field_args_and_map_assignments(): flesh out _field_index_map validation
-
- emcomposition.py
- update docstring figs
- add purge_by_field_weights Parameter
-
- autodiffcomposition.py
- infer_backpropagation_learning_pathways(): add NodeRole.BIAS to pathways consructed for learning
Testing
- Split softmax_choice test
- Add mode=DETERMINISTIC tests
- Test more int32 samples in MT builtin test
- Use array_equal to test integer results
Broken_trans_deps
- Block coverage==7.6.5 (#3118)
Ci
- Test-release: add matrix.dist to test result artifact
- Test-release: exclude macos-11 on py3.7
Ci/ga
- Use console_output_style=count (#3132)
Llvm
- Convert recursive array iterator into contextmanager
- Implement range integer generation to match Numpy's
- Implement range integer generation to match old Numpy's
Llvm/Component
- Allow 'indicator' and 'abs_val' parameters in OneHot DETERMINISTIC mode
Llvm/DictionaryMemory
- Remove OneHot mode workarounds
Llvm/Mechanism
- Reinit integrator_function in Mechanism reset if present (#3112)
Llvm/OneHot
- Isolate handling of PROB and PROB_INDICATOR modes
- Refactor to match Python behaviour for modes != DETERMINISTIC
- Add basic implementation of DETERMINISTIC mode
- Implement support for RANDOM tie resolution
- Simplify PROB/PROB_INDICATOR implementation
- Implement all modes (#3124)