v0.1.0
Major features and improvements
- Release of the OC22 dataset (#358) focused on oxide electrocatalysis (paper, blog) and pretrained model weights (#414)
- GemNet-OC implementation and pretrained model weights (#363) (paper)
- Spherical Channel Network implementation (#362) (paper)
- OC20 Bader charge data (#360)
- PaiNN implementation and pretrained model weights (#344) (paper)
- OCP tutorial (#314, #265)
- Script to render relaxation trajectory GIFs (#259)
- Load balancing batches across GPUs (#267, #277)
- Support for cutoff radius beyond 1 unit cell across all directions in
radius_graph_pbc
(#268, #394) - Support for evaluating relaxations during S2EF training (#299)
- Up to 5x speedup in running relaxations (#309)
- 25% reduction in memory usage for inference of direct-force models (#323)
- Atomwise L2 loss (#343, #346)
Breaking changes
- DimeNet++ triplet calculation fix (#270)
- This breaks backward compatibility to previously trained DimeNet++ models, though the change in performance is very small (< 0.5% relative).
Other changes
- Support for ignoring specified directories within
experimental
by @abhshkdz in #257 - bugfix: remove epoch arg from validate by @mshuaibii in #261
- Import logger when setting up imports; fixes #262 by @abhshkdz in #263
- setup v3 by @mshuaibii in #264
- bugfix: update model name in gemnet fit_scaling by @wood-b in #274
- Reduce test_cosine_similarity check to 2 decimals by @gasteigerjo in #276
- Makes Ray Tune optional and fixes submitit checkpointing bug by @wood-b in #272
- add missing spinconv import by @mshuaibii in #278
- challenge submission script by @mshuaibii in #279
- Correctly calculate distributed loss average by @gasteigerjo in #269
- Adds download link to the challenge dataset by @abhshkdz in #281
- explicit cpu map by @mshuaibii in #282
- missing spinconv device definition by @mshuaibii in #285
- Fix shared parameter gradient scaling by @gasteigerjo in #283
- update oc20 data mapping by @mshuaibii in #288
- bugfix loading best_checkpoint.pt by @mshuaibii in #289
- bugfix: checkpoint with no val set Ref. #290 by @mshuaibii in #291
- add data-path arg to download script by @mshuaibii in #294
- Changed default trainer to energy by @AdeeshKolluru in #298
- Loads checkpoint cleanly for non DDP checkpoint and parallelized inference by @AdeeshKolluru in #295
- Updated OCPCalculator to not require config and data paths by @AdeeshKolluru in #297
- Added modified K-hot elemental embeddings from QMOF CGCNN repo (QMOF_KHOT_EMBEDDINGS) by @EricMusa in #296
- change circle resource class by @mshuaibii in #305
- swap checksums by @mshuaibii in #303
- OCPCalc Update: uses otf_graph by default and takes in dictionary as well by @AdeeshKolluru in #304
- Hotfix: Turns otf_graph True for OCPCalc by @AdeeshKolluru in #306
- Fixed logger_project config not working by @nimashoghi in #301
- Adds SpinConv, GemNet-dT checkpoints trained on S2EF-2M by @abhshkdz in #308
- no-pbc gemnet support by @mshuaibii in #311
- remove ipynb from language stats by @mshuaibii in #318
- demjson env fix by @mshuaibii in #321
- Added support for PyTorch Geometric 2.0's updated Data format by @nimashoghi in #316
- PyTorch 1.9.0 by @mshuaibii in #322
- add universal dataset reader by @mshuaibii in #310
- Updates
RandomRotate
to return correct rotation matrices following PyG bugfix by @abhshkdz in #325 - Log unused parameter names on DDP errors by @nimashoghi in #317
- PyG 2 Support Regression by @nimashoghi in #327
- Update
conditional_grad
decorator to usefunctools.wraps
on the original function by @nimashoghi in #326 - bugfix for dict dataset definition by @mshuaibii in #329
- Added an option to disable DDP for relaxations by @anuroopsriram in #312
- OCPCalculator CUDA support by @mshuaibii in #333
- gemnet scaling script fix by @mshuaibii in #339
- Removes extra context on GPU0 for distributed training by @wood-b in #342
- Bugfix in best val metric check for checkpointing by @abhshkdz in #345
- Readme update by @abhshkdz in #347
- Make sure best val metric is loaded when restoring checkpoint by @abhshkdz in #349
- bugfix PR#343 by @mshuaibii in #351
- Update environment installation by @mshuaibii in #352
- fix to gemnet scaling.py to detect if file does not exist and proceed… by @jmusiel in #340
- Fixing cell_offsets error in DimeNet++ for use_pbc=False and otf_graph=False by @aarongarrison in #350
- Bugfix to #349 by @abhshkdz in #353
- Make sure pos_relaxed and y_relaxed are not None in val run_relaxations by @abhshkdz in #356
- Correct OC22 download address by @KruskalLin in #361
- Additional OC22 configs + example configs by @mshuaibii in #359
- Remove old
is_vis
flag from fit_scaling by @abhshkdz in #365 - Bugfix: Data created with PyG>2.0 by @mshuaibii in #367
- Catch missing
edge_index
TypeError in data_list_collater (+ suppress a few//
warnings) by @abhshkdz in #368 - GemNet-OC readme with test metrics by @abhshkdz in #369
- Implementation of graph parallel training by @anuroopsriram in #364
- Relay keyword arguments through from
OCPDataParallel
to the model by @abhshkdz in #370 - Covers all checkpoint loading mismatch possibilities by @AdeeshKolluru in #371
- Log correct job id for slurm arrays by @abhshkdz in #372
- Fixes PaiNN's stability issues by @AdeeshKolluru in #373
- Circle CI - merge conda install and create env runs by @AdeeshKolluru in #374
- Adds otf_graph flag for GemNet-OC by @AdeeshKolluru in #377
- Consistent graph generation implementation across models by @AdeeshKolluru in #378
- Throw error if scale file is missing for GemNet-OC by @abhshkdz in #380
- Bugfix: restore original params when predict is called with
per_image == False
by @abhshkdz in #381 - Make
OCPCalculator
support both list and dict dataset configs by @abhshkdz in #382 - Set tags in
AtomsToGraphs
since GemNet models need it for inference by @abhshkdz in #385 - Load attached scale file by @jmusiel in #386
- Bugfix: use correct otf_graph, cutoff, max_neighbors for GemNet-OC graphs by @abhshkdz in #387
- Load scaling factors from checkpoint if available by @abhshkdz in #388
- Bugfix: use correct offset distances in DimeNet, DimeNet++ by @abhshkdz in #391
- Absolute registry import paths by @nimashoghi in #315
- Added better/more legible registry import errors by @nimashoghi in #398
- Unit test for GemNet-OC by @abhshkdz in #393
- Snapshot testing using syrupy by @nimashoghi in #399
- Windows fixes by @nimashoghi in #401
- Revert to older / faster implementation of
wigner_D
in e3nn.o3 by @abhshkdz in #402 - Explicitly check e3nn == 0.2.6 when running SCN by @abhshkdz in #404
- Integrates codecov by @abhshkdz in #403
- New scaling module by @nimashoghi in #390
- Fix pre-empt recovery crash by @nimashoghi in #407
- Remove Python 3.8 only fstring interpolations by @nimashoghi in #411
- reduce macos resource class by @mshuaibii in #415
- Balanced batch sampler fix by @nimashoghi in #406
- Include more thorough tests in test_radius_graph_pbc by @emsunshine in #410
- alt trainer identifier by @mshuaibii in #416
- OCPCalc edge cases by @mshuaibii in #417
New Contributors
- @AdeeshKolluru made their first contribution in #259
- @gasteigerjo made their first contribution in #276
- @EricMusa made their first contribution in #296
- @nimashoghi made their first contribution in #301
- @jmusiel made their first contribution in #340
- @aarongarrison made their first contribution in #350
- @KruskalLin made their first contribution in #361
- @emsunshine made their first contribution in #394
Full Changelog: v0.0.3...v0.1.0