https://github.com/sarodyatawatta/calibration-pytorch-test
Radio interferometric calibration with PyTorch. An example of how to solve a general optimization problem.
https://github.com/sarodyatawatta/calibration-pytorch-test
adam calibration inverse-problems lbfgs lbfgs-b lbfgs-optimizer lofar pytorch radio-astronomy sagecal stochastic-lbfgs
Last synced: 2 months ago
JSON representation
Radio interferometric calibration with PyTorch. An example of how to solve a general optimization problem.
- Host: GitHub
- URL: https://github.com/sarodyatawatta/calibration-pytorch-test
- Owner: SarodYatawatta
- Created: 2019-12-17T18:43:52.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-11-04T12:49:14.000Z (over 1 year ago)
- Last Synced: 2025-05-30T16:33:31.547Z (about 1 year ago)
- Topics: adam, calibration, inverse-problems, lbfgs, lbfgs-b, lbfgs-optimizer, lofar, pytorch, radio-astronomy, sagecal, stochastic-lbfgs
- Language: Python
- Homepage:
- Size: 182 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Radio interferometric calibration with PyTorch
This is a simple example to compare popular optimizers used in deep learning (Adam etc.) with stochastic LBFGS.
The stochastic LBFGS optimizer is provided with the code. Further details are given [in this paper](https://ieeexplore.ieee.org/document/8755567) and [also this](https://arxiv.org/abs/2003.00986). Also see [this introduction](http://sagecal.sourceforge.net/pytorch/index.html).
Files included are:
``` lbfgsnew.py ```: New LBFGS optimizer
``` lbfgsb.py ```: Bound constrained LBFGS optimizer
``` run_calibration.py ```: Run a simple calibration, like
```
run_calibration.py --solver_name=LBFGSB
```
Available options for ```--solver_name``` are ```LBFGS, LBFGSB, SGD, ADAM```.

Here is an image showing the reduction of calibration error (Student's T loss) with minibatch (CPU time) for LBFGS and Adam. Adam runs faster but slower to converge. LBFGS uses 1 epoch and Adam uses 4 epochs in the image. The minibatch size is 1/10-th of the full dataset.
For a much faster, C/CUDA version of the LBFGS optimizer, follow [this link](https://github.com/nlesc-dirac/sagecal/tree/master/test/Dirac).
For a completely different method to calibrate, see also [ManOpt](https://github.com/NicolasBoumal/manopt/blob/master/examples/radio_interferometric_calibration.m).