Skip to content

v0.14.0.0

Compare
Choose a tag to compare
@kmantel kmantel released this 27 Jul 03:06
· 736 commits to master since this release
b8cd10e

[0.14.0.0] - 2023-07-26

AutoAssociativeProjection

  • Only pass initial_shared 'matrix' to function

Bug Fixes

  • Fix for some tests that expect runtime type checks
  • Fix some lgtm errors

Component

  • Add prefix to autogenerated names in deferred init
  • Add predefined prefix to autogenerated names in deferred init (#2664)
  • _initialize_parameters: simplify user specified check
  • Improve illegal argument detection
  • Improve param_defaults
  • Fix detecting constructor args during init
  • Don't prune args to function init
  • Don't try copying defaults with value None
  • Fully disallow name when constructor arg present
  • Rework constructor argument validation
  • Parse to combine alt param specifications
  • Skip assigning defaults of aliases
  • Add unused learning parameters to compilation blocklist (#2642)

Composition

  • Assert for non-nested Composition run without input
  • Correct context passing of pathways/add_node
  • Correct context passing through add_projection
  • Remove non-user-added projections from processing graph
  • Fix INPUT roles for ControlMechanism -> inner Composition

ContentAddressableMemory

  • Allow specifying selection_function in constructor
  • Remove extraneous function instantiation checks
  • Correct _parse_distance_function_variable as used in _validate
  • _validate: remove function instantiation and default setting
  • _validate: check result of each combo of granularity and field_weights
  • Make selection_function dependent on distance_function
  • _parse_distance_function_variable: use variable argument

ControlMechanism

  • Remove extraneous output_ports arg
  • Fix control_allocation initialization
  • Correct _parse_output_ports
  • Remove init parsing of monitor_for_control
  • Remove init parsing of control

ControlSignal

  • Do not recalculate costs on Port._update (#2722)

CostFunctions

  • Use Flags instead of IntFlags for cost function enum

DictionaryMemory

  • Reset: handle empty previous_value

Documentation

  • Doc fixes on OptimizationFunction

EpisodicMemoryMechanism

  • Make memory (_memory_init) a FunctionParameter

GradientOptimization

  • Fix potentially uninitialized local variable
  • Fix error on default bounds

LCAMechanism

  • _validate_competition: fix reference to component name

LearningMechanism

  • Remove unused LEARNED_PARAM

MDF

  • Function: handle param mdf names for initializers
  • Implement FitzHughNagumoIntegrator

OrnsteinUhlenbeckIntegrator

  • Avoid producing 3d value (#2590)

Parameters

  • Don't suppress AttributeError in _parse/_validate methods
  • Rework parse and validation method interface
  • Handle Parameters as dependencies

PredictionErrorMechanism

  • Pass up only sample and target

SampleIterator

  • Fix incorrect use of curly brackets in error strings (#2690)

Testing

  • Remove blank line at the end of file
  • Correct transfer mech initial_value override test (#2557)
  • Add helper to tests that include parallel compiled execution (#2591)
  • Add missing composition tags. Remove redundant Scheduler instances. (#2611)
  • Extra role tests for pathway ending in control mechanism
  • Use np.testing.assert_allclose to check resutls (#2621)
  • Use np.testing.assert_equal instead of assert np.all(==)
  • Prefer np.testing.assert_equal to assert np.all(==)
  • Use np.testing.assert_equal instead of np.all (#2628)
  • Convert to use autodiff_mode
  • FP32 should only be used in compiled tests
  • Check for execution mode PyTorch in test_optimizer specs
  • Add helper function to return the first set of learning results
  • Test_documentation_models: reenable parametrizations
  • Allclose changes
  • Test_nested_composition_run_trials_inputs: undo disable test parametrizations
  • Test_nested_transfer_mechanism_composition_parallel shape mismatch
  • TestRunInputSpecifications test_run_2_mechanisms_reuse_input: fix allclose
  • TestRun test_run_2_mechanisms_reuse_input: fix allclose
  • TestInputSpecifications test_run_2_mechanisms_reuse_input: fix allclose
  • Test_connect_compositions_with_simple_states: fix allclose
  • Test_linear_combination_function_in_mechanism: fix allclose
  • Test_user_def_func_numpy: match 2d output to 2d input
  • Test_LCAMechanism_threshold: fix allclose
  • Test_output_ports: fix allclose
  • Tests_output_port_variable_spec_composition: fix allclose
  • Test_integrator_multiple_input: fix allclose
  • TestRunInputSpecifications::test_2_mechanisms_input_5: fix allclose
  • Test_assign_value: fix allclose
  • Test_buffer_standalone: fix allclose
  • Test_example_11: fix allclose
  • Test_input_not_provided_to_run: fix allclose
  • Test_input_specification_multiple_nested_compositions: fix allclose
  • Test_transfer_mech_func: fix allclose
  • Test_target_dict_spec_single_trial_scalar_and_lists_rl: fix allclose
  • Test_AGTUtility_valid: fix allclose
  • Test_connect_outer_composition_to_only_input_node_in_inner_comp_option2: fix allclose
  • Test_single_array: fix allclose
  • Test_transfer_mech_array_var_normal_array_noise: fix allclose
  • Test_reset_run_2darray: fix allclose
  • Test_rpy.py test_multilayer: fix allclose
  • Test_log: fix allclose shape
  • Test_gating_with_composition: fix allclose
  • Replace assert np.allclose with np.testing.assert_allclose where tolerance fails
  • Replace all unaffected assert np.allclose with np.testing.assert_allclose
  • Remove asserts using zip loops where possible
  • Adjust expected shape based on execution type
  • Adjust shape of expected results based on execution mode
  • Assert on results in "heterogenous_variable" tests
  • Convert more tests to np.testing.assert_allclose (#2633)
  • Tighten tolerance for compiled results (#2653)
  • Test_call_after_construction_with_learning_pathway: fix missing assert (#2647)
  • Check expected learning results
  • Use worksteal xdist balancer (#2670)
  • Add a 3rd set of expected results for small drift rate
  • Ensure seed change test uses new seed (#2675)
  • Use pytest.param id instead of fake parameter
  • Drop redundant return statements
  • Use full precision expected result instead of changing tolerance
  • Skip on CUDA
  • Sanitize PEC tests (#2688)
  • Don't check newline encoding in the printf test (#2691)
  • Extract mechanism values to form homogeneous array
  • Illegal kwargs: add missing asserts
  • Integrator mech: fix variable->default_variable
  • Remove duplicate 'const_data' debug flag
  • Add a helper to generate power set
  • Add helper to generate power set and use it to test compiler debug options (#2707)
  • Style
  • Add TransferWithCosts test with all combinations of costs
  • Do not include CostFunctions.ALL when constructing power set (#2714)
  • Enable GPU tests
  • Add for invalid function_params
  • Mark em_composition TestExecution as pytorch
  • Mark test_import_composition as pytorch
  • Use overlooked helper function
  • Rename test Component

Autodiff

  • Make sure inputs to cross entropy loss are at least 2d for torch<=1.11.x

Autodiff_composition

  • Use torch 1.11 with python3.10 and Windows (#2667)

Broken_trans_deps

  • Add all python3.10 win32 torch wheels >=1.12.0
  • Add cattrs==23.1.1 to broken deps list (#2686)

Ci

  • Run all tests using --fp-precision=fp32 (#2629)
  • Add run using --benchmark-enable (#2630)
  • Add ipython 8.13.0 to blocklist for python <3.9 (#2651)
  • Add --forked run to test autogenerated names
  • Don't build "base" version of docs using python 3.10 or 3.11
  • Don't use latest python on macos for building docs
  • Don't use python 3.7.17 on macos to build docs (#2703)
  • Disable pytest-xdist in benchmark ci job (#2710)

Components

  • Add methods to return/filter projections between components

Dependencies

  • Update to numpy<1.24.4 (#2693)

Deps

  • Add onnx==1.14.0 to broken_trans_deps (#2663)
  • Add pytest-forked to 'dev' requirements
  • Restrict contourpy to <1.1.0 on x86 (32-bit) (#2700)
  • Restrict pillow to <10.0.0 on x86 (32-bit) (#2716)

Dev_requirements

  • Use sharp inequality of pytest-profiling upper bound

Functions/MaxLikelihoodEstimator

  • Add support for storing all simulated results

Functions/TransferFunction

  • Add support for 'per-item' mode derivative

Github-actions

  • Use constraints file instead of pre-installing packages on x86 (#2584)
  • Constraint broken transitive dependencies (#2603)
  • Add fp32 compilation only test job (#2612)
  • Run all tests with --fp-precision=fp32
  • Add job running --benchmark-enable
  • Add python 3.11 to docs CI
  • Bump top python version 3.10->3.11

Github-actions/pnl-ci

  • Print numpy and CPU info before running tests

Integratorfunctions

  • _parse_initializer: cast initializer to numpy array

Llvm

  • Pass number of inputs to 'evaluate' function
  • Convert shape mismatch warning to PNLCompilerWarning category
  • Use WeakRefDictionary for node wrappers
  • Add human readable name to _node_wrapper instances
  • Use weak references and proxy objects in _node_wrapper objects (#2613)
  • Remove unnecessary data shape checks and workarounds (#2634)
  • Update and extend the collection of code generation statistics (#2687)
  • Represent integer types as unsigned in ctype
  • Only write back shareable data (#2718)
  • Add more structure stat messages (#2729)

Llvm/CUDA/function

  • Sync stateful params back to CPU at the end of cuda_execute

Llvm/builder_context

  • Use proxy object for _node_wrapper owning composition
  • Move stats printing to LLVMBuilderContext destructor
  • Include 'function' in cache stats for generated LLVM functions
  • Collect statistics for number of cached and generated struct types
  • Calculate and print cache hit rates
  • Clarify output of module scope stats

Llvm/codegen

  • E713 test for membership should be 'not in'

Llvm/cuda

  • Do not upload inputs to shared memory.
  • Do not use shared memory for inputs (#2731)

Llvm/execution

  • Generalize parameter writeback function (#2643)
  • Improve writeback handling of history and empty structures
  • Do not write back "random_state" parameter
  • Do not construct numpy arrays of empty structures
  • Use "state" instead of context/CTX in debug print
  • Print information about composition input struct if enabled
  • Print information about "evaluate" output structure if enabled

Registry

  • Apply prefix to autogenerated names for the first instance (#2640)

Requirements

  • Bump minimum numpy version to 1.19.0 (#2583)
  • Update pytest requirement from <7.2.1 to <7.2.2 (#2586)
  • Update pandas requirement from <1.5.3 to <1.5.4 (#2588)
  • Update pytest-xdist requirement from <3.2.0 to <3.3.0 (#2599)
  • Update matplotlib requirement from <3.6.4 to <3.7.1 (#2602)
  • Update toposort requirement from <1.10 to <1.11 (#2605)
  • Update pytest requirement from <7.2.2 to <7.2.3 (#2606)
  • Update matplotlib requirement from <3.7.1 to <3.7.2 (#2607)
  • Update elfi requirement from <0.8.5 to <0.8.7 (#2608)
  • Update networkx requirement from <3.1 to <3.2 (#2620)
  • Update pillow requirement from <9.5.0 to <9.6.0 (#2618)
  • Update pandas requirement from <1.5.4 to <2.0.1 (#2619)
  • Use sharp inequality for bear type upper bound
  • Fix dill dependency upper bound
  • Use sharp inequality for leabra-psyneulink upper bound
  • Sort alphabetically
  • Add protobuf to dependency list
  • Drop grpcio-tools
  • Use sharp upper bounds and maintain alphabetical order (#2624)
  • Update pytest requirement from <7.2.3 to <7.3.1 (#2627)
  • Update beartype requirement from <0.13.0 to <0.14.0 (#2625)
  • Update pytest requirement from <7.3.1 to <7.3.2 (#2635)
  • Update pandas requirement from <2.0.1 to <2.0.2 (#2646)
  • Update graph-scheduler requirement (#2638)
  • Update fastkde requirement (#2649)
  • Update torch requirement from >=1.8.0,<1.14.0 to >=1.8.0,<2.1.0 (#2652)
  • Update beartype requirement from <0.14.0 to <0.15.0 (#2658)
  • Update llvmlite requirement from <0.40 to <0.41 (#2657)
  • Use exclusive upper bound for optuna (#2661)
  • Update pint requirement from <0.21.0 to <0.22.0 (#2655)
  • Update pytest-xdist requirement from <3.3.0 to <3.4.0 (#2669)
  • Update numpy requirement from <1.22.5 to <1.23.6
  • Update numpy requirement from <1.22.5 to <1.23.6 (#2672)
  • Update pytest-cov requirement from <4.0.1 to <4.1.1 (#2678)
  • Update pandas requirement from <2.0.2 to <2.0.3 (#2682)
  • Update numpy requirement
  • Update optuna requirement from <3.2.0 to <3.3.0 (#2683)
  • Update grpcio requirement from <1.43.0 to <1.56.0 (#2676)
  • Update pytest requirement from <7.3.2 to <7.3.3 (#2696)
  • Update autograd requirement from <1.6 to <1.7 (#2704)
  • Update grpcio requirement from <1.56.0 to <1.57.0 (#2705)
  • Update pytest requirement from <7.3.3 to <7.4.1 (#2706)
  • Update pandas requirement from <2.0.3 to <2.0.4 (#2708)
  • Update pillow requirement from <9.6.0 to <10.1.0 (#2715)
  • Update matplotlib requirement from <3.7.2 to <3.7.3 (#2719)
  • Update fastkde requirement (#2747)

Setup

  • Add Python 3.11 to the list of supported versions

Torch

  • Check status of torch numpy bindings instead of specific version

Treewide

  • Inherit all component Exceptions from ComponentError (#2595)

Utilities

  • Handle numpy 1.24 rugged arrays

Warnings

  • Ignore PNLInternalWarning by default

Wip

  • Fit evaluate

{dev,tutorial}_requirements

  • Use sharp inequality for jupyter upper bound