Releases: kchu25/AutoComputationalGraphTuning.jl
Releases · kchu25/AutoComputationalGraphTuning.jl
v0.1.2
AutoComputationalGraphTuning v0.1.2
Breaking changes
Update the dataload on the training set to take partial batch
v0.1.1
AutoComputationalGraphTuning v0.1.1
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
AutoComputationalGraphTuning v0.1.0
Breaking changes
Testing Object-based input for train_final_model_from_config
v0.0.9
v0.0.8
AutoComputationalGraphTuning v0.0.8
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
AutoComputationalGraphTuning v0.0.7
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_quantilesparameter to control label normalization - Pretty-printing for
ProcessorEvalStatsandThresholdEvalStats - Better error messages with stack traces
- Simplified
evaluate_processorfunction
v0.0.3
AutoComputationalGraphTuning v0.0.3
Breaking changes
- Changed the dependency on CUDA to make it compatible with cuDNN.
v0.0.2
AutoComputationalGraphTuning v0.0.2
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_msewithloss_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)
- Each trial's settings saved to
-
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