Skip to content

Releases: kchu25/AutoComputationalGraphTuning.jl

v0.1.2

20 Feb 22:23

Choose a tag to compare

AutoComputationalGraphTuning v0.1.2

Diff since v0.1.1

Breaking changes

Update the dataload on the training set to take partial batch

v0.1.1

19 Feb 20:01

Choose a tag to compare

AutoComputationalGraphTuning v0.1.1

Diff since v0.1.0

Breaking changes

  • update to make processor output to have nonlinear transform according to the model
  • naming: loss_fcn to loss_spec
  • update the doc to specify what callable subroutines are required for this package

v0.1.0

19 Feb 05:19

Choose a tag to compare

AutoComputationalGraphTuning v0.1.0

Diff since v0.0.9

Breaking changes

Testing Object-based input for train_final_model_from_config

v0.0.9

19 Feb 04:12

Choose a tag to compare

AutoComputationalGraphTuning v0.0.9

Diff since v0.0.8

Breaking changes

Manual loss functions

v0.0.8

18 Feb 07:16

Choose a tag to compare

AutoComputationalGraphTuning v0.0.8

Diff since v0.0.7

Breaking changes

  • setup.split_indices.train now contains train + val indices combined when combine_train_val=true (previously only contained train indices)
  • setup.split_indices.val is now an empty Int[] when combine_train_val=true
    _create_final_dataloaders now creates dl_test with partial=true (previously partial=false), so test evaluation no longer drops the last incomplete batch
  • Added _create_eval_dataloaders — use this instead of _create_final_dataloaders when passing dataloaders to evaluate_processor, to ensure no shuffling and no dropped samples
  • Minimum Julia version bumped to 1.11 or 1.12 (dropped support for earlier versions and pre-release versions like 1.13.0-alpha2)

v0.0.7

12 Feb 23:46

Choose a tag to compare

AutoComputationalGraphTuning v0.0.7

Diff since v0.0.3

Breaking changes

  • Early stopping now uses only validation loss patience (removed R² ≤ 0 check)
  • Removed sparsity analysis from evaluate_processor

New Features

  • Gyro Threshold Finding: find_optimal_threshold() to identify critical sparse gradient components
  • Code Processor Training: train_code_processor() function with train/test split evaluation
  • GPU-optimized data collection with minimal CPU transfers

Bug Fixes

  • Fixed NaN handling in R² calculations
  • Fixed label normalization clipping (now conservative: 0.00001-0.99999)
  • Fixed gradient component masking logic
  • Removed implicit type conversions

Improvements

  • Added clip_quantiles parameter to control label normalization
  • Pretty-printing for ProcessorEvalStats and ThresholdEvalStats
  • Better error messages with stack traces
  • Simplified evaluate_processor function

v0.0.3

18 Oct 20:41

Choose a tag to compare

AutoComputationalGraphTuning v0.0.3

Diff since v0.0.2

Breaking changes

  • Changed the dependency on CUDA to make it compatible with cuDNN.

v0.0.2

17 Oct 00:24

Choose a tag to compare

AutoComputationalGraphTuning v0.0.2

Diff since v0.0.1

Breaking changes

Loss function configuration now requires named tuple format

Before (v0.0.1): Loss functions were passed as plain functions

tune_hyperparameters(data, create_model; loss_fcn=masked_mse)
train_final_model(data, create_model; loss_fcn=my_loss_function)

After (v0.0.2): Loss functions must be passed as a named tuple with loss and agg fields

tune_hyperparameters(data, create_model; 
                    loss_fcn=(loss=Flux.mse, agg=StatsBase.mean))

train_final_model(data, create_model; 
                 loss_fcn=(loss=Flux.mae, agg=sum))

Why this change? The new format provides:

  • Flexibility to use any Flux loss function (mse, mae, huber_loss, etc.)
  • Configurable aggregation (mean, sum, or custom functions)
  • Better reproducibility tracking (loss config saved in tuning results)

Migration guide:

  • Replace loss_fcn=masked_mse with loss_fcn=(loss=Flux.mse, agg=StatsBase.mean) (default)
  • For custom loss functions, wrap them: loss_fcn=(loss=my_custom_loss, agg=StatsBase.mean)
  • Default behavior unchanged if you don't specify loss_fcn

New features

  • JSON configuration management: Automatic saving of trial configurations during tuning

    • Each trial's settings saved to json/trial_seed_N.json
    • Load best trial config with load_best_trial_config(save_folder)
    • Train final model from config with train_final_model_from_config(data, create_model, config)
  • Loss function tracking: Loss function and aggregation now recorded in tuning results CSV

  • CUDA determinism warnings: Automatic detection and warnings when CUDA deterministic mode is not enabled

  • Improved reproducibility: Better RNG management and comprehensive documentation for achieving bit-for-bit reproducible results

Documentation

  • Added CUDA_DETERMINISM.md - Complete guide for reproducible GPU training
  • Added RANDOMIZATION_ANALYSIS.md - Detailed analysis of non-determinism sources
  • Updated README with loss configuration examples and reproducibility guidance

v0.0.1

13 Oct 19:52

Choose a tag to compare

AutoComputationalGraphTuning v0.0.1