Skip to content

v0.15.3.0

Latest
Compare
Choose a tag to compare
@kmantel kmantel released this 10 Dec 05:42
1ea4407

[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()
  • 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

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
  • 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)

Requirements

  • Update optuna requirement from <4.1.0 to <4.2.0 (#3110)
  • Update grpcio requirement from <1.68.0 to <1.69.0 (#3120)
  • Update pytest-profiling requirement from <1.8.1 to <1.8.2 (#3135)
  • Update pytest requirement from <8.3.4 to <8.3.5 (#3138)