# CUQIpy software training, 16--17 Sept 2024 #### UQIPI24 workshop, ICMS, Bayes Centre, Edinburgh, UK ## Tentative programme ### Monday 16 September #### Afternoon | Time | Activity | | -------- | -------- | |13:00 | Welcome and Introduction (Jakob) |13:15 | [Overview of CUQIpy](https://cuqi-dtu.github.io/CUQI-Book/chapter01/overview_of_cuqipy.html), [Installation](https://cuqi-dtu.github.io/CUQI-Book/chapter01/run_mini_book.html) (Amal) |13:50 | [Probably the simplest BIP in the world](https://cuqi-dtu.github.io/CUQI-Book/chapter01/intro_example_short.html) (Amal) |14:10 | Coffee break |14:25 | [Distributions](https://cuqi-dtu.github.io/CUQI-Book/chapter03/basics_distributions.html) (Charlie) |15:05 | [Forward models](https://cuqi-dtu.github.io/CUQI-Book/chapter03/basics_forward_models.html) (Charlie) |15:45 | Coffee break |16:00 | [Bayesian inverse problems](https://cuqi-dtu.github.io/CUQI-Book/chapter03/basics_bayesian_inverse_problems.html) (Nicolai) |16:50 | Wrap-up before dinner (Nicolai) |17:00 | End of afternoon session #### Evening | Time | Activity | | -------- | -------- | |17:00 | Pizza night at Bayes Centre |18:00 | [CUQIpy mini-hackathon](#Ideas-for-hackathon-projects) intro (Jakob) |18:15 | Participant ideas and group formation |18:45 - ? | Work in hackathon groups ### Tuesday 16 December #### Morning | Time | Activity | | -------- | -------- | |09:30 | Recap and plan for the day (Jakob) |09:40 | [Advanced features overview (multiple speakers)](#Tuesday-morning-Advanced-features-overview) |10:10 | Work session |10:40 | Coffee break |10:55 | Work session |11:45 | Wrap-up and [evaluation](#Feedback) (Jakob) |12:00 | End of Day 2 ## Resources - Main repository: https://github.com/CUQI-DTU/CUQIpy - CUQI Book: https://cuqi-dtu.github.io/CUQI-Book - User Showcase: https://github.com/CUQI-DTU/CUQIpy-User-Showcase - Installation: `pip install cuqipy` - Documentation incl. Getting Started: https://cuqi-dtu.github.io/CUQIpy - CUQIpy on CUQI project website: https://sites.dtu.dk/cuqi#Software - Slides from training: https://tinyurl.com/UQIPI24slides - Hackathon slides [to be added] ## Plugins - CUQIpy-CIL: https://github.com/CUQI-DTU/CUQIpy-CIL - CUQIpy-FEniCS: https://github.com/CUQI-DTU/CUQIpy-FEniCS - CUQIpy-PyTorch: https://github.com/CUQI-DTU/CUQIpy-PyTorch ## Running the training notebooks We present three approaches to run the training notebooks ### Approach #1: Recommended [Installing CUQIpy and running the notebooks on your local machine](https://cuqi-dtu.github.io/CUQI-Book/chapter01/introduction_overview_of_cuqipy.html#option-1-running-on-your-local-machine) ### Approach #2: Quick start [Launching the notebooks in the cloud (Google colab and binder)](to-be-added) ### Approach #3: Technical University of Denmark (DTU) servers Explained in the next seciton ## DTU Jupyter notebook servers If you are not installing CUQIpy on own computer, you can use one of the two learnmore servers (ask CUQIpy team at event for access): - https://learnmore1.compute.dtu.dk - https://learnmore2.compute.dtu.dk When logged in to the learnmore servers you should see a "launcher" tab with some icons to start new notebooks with different python packages installed. You can use the following ones: - CUQIpy - CIL (has CUQIpy-CIL plugin) - CUQIpy-PyTorch In the launcher you also see an icon "terminal", click that to start a linux terminal. In the you type/copy-paste: ``` git clone git@github.com:CUQI-DTU/CUQI-Book.git ``` This will clone/copy the CUQI book to your directory, then you can navigate in the left menu into the training folder and start the training notebooks. You need to change the "kernel" in the top right corner to e.g. the "CUQIpy-env" one, in order for the notebook to have access to the python packages installed in there such as CUQIpy. ## Ideas for hackathon projects List project topics here and please add your name to any project you are interested in working on: **1. Computed tomography with CUQIpy-CIL (proposed by Margaret Duff)** ![margaret](https://hackmd.io/_uploads/HkyAd5E6R.png) - Margaret Duff (CIL) - Richard Huber - Jonas Bresch - Yiyao Zhang (Liverpool) - ... **2. PDEs with CUQIpy-FEniCS** - name 1 - ... **3. PSF deconvolution on astronomical images (Proposed by Charlie MacMahon-Geller)** ![charlie_markus](https://hackmd.io/_uploads/HyKY8CVT0.png) - Charlie MacMahon-Geller (Newcastle University) - Markus Rau (Newcastle University) - ... **4. Gravity anomaly (proposed by Lara Baalbaki)** ![lara](https://hackmd.io/_uploads/H1OxHq4aR.png) - Lara Baalbaki (DTU) - ... **5. Surface reconstruction (proposed by Yiyao Zhang)** ![20240912_SlidePitch_Yiyao_Compressed](https://hackmd.io/_uploads/rJDj7TVpC.gif) - Yiyao Zhang (Liverpool) - ... **6. Multistatic radar (Proposed by Joshua Hellier)** ![joshua_triplet_circling](https://hackmd.io/_uploads/S1iNRnEpA.png) - Joshua Hellier (Manchester) - ... **7. Semi-blind image deconvolution (proposed by Monica Pragliola)** ![monica](https://hackmd.io/_uploads/r1zyhTE6A.png) - Monica Pragliola (Bologna) - ... **8. Phase retrieval (proposed by Dawit Hailu)** ![dawit](https://hackmd.io/_uploads/HJJkLySaA.png) - Dawit Hailu - ... **9. [insert topic title here]** - add name - ... ## Tuesday morning: Advanced features overview ### CUQIpy Benchmarks #### Naoki Sakai and Tania Goia, DTU CUQI summer interns - GitHub repo: [Benchmarks CUQIpy](https://github.com/CUQI-DTU/CUQIpy-Benchmarks) ### Implicit priors with regularized Gaussian distributions #### Jasper Everink - Notebook: [Implicit priors at User showcases repo](https://github.com/CUQI-DTU/CUQIpy-User-Showcase/blob/main/005_Implicit_Regularized_Gaussian/implicit_priors.ipynb) ### Moreau-Yoshida Unadjusted Langevin Algorithm (MYULA) and Plug & Play priors Unadjusted Langevin Algorithm (PnPULA) #### Rémi Laumont - Google Colab links: [MYULA](https://colab.research.google.com/drive/1T9WYimgTQ77UFznIriZKko9kaspr9x73?usp=sharing) and [PnPULA](https://colab.research.google.com/drive/1Gdn0KqH5eatkIZt1ApNBgB-Ux4nIEoI6?usp=sharing) - GitHub repo: https://github.com/remilaumont/CUQIpy/tree/pnpula branch: `pnpula` - Note: you need this `pnpula` branch of CUQIpy, which is expected to be merged to the main brach of CUQIpy soon. Instructions for local installation of CUQIpy: ```bash conda create -n cuqipy-pnpula pip conda activate cuqipy-pnpula git clone git@github.com:remilaumont/CUQIpy.git cd CUQIpy git checkout pnpula pip install ./ pip install deepinv scikit-image ``` - Then the notebooks can be found at `demos/cuqi_myula.ipynb` and `demos/cuqi_pnpula.ipynb`. ### CT with CUQIpy-CIL #### Jakob S. Jørgensen - Github repo: https://github.com/CUQI-DTU/CUQIpy-CIL - Notebook: [CUQIpy-CIL book chapter](https://cuqi-dtu.github.io/CUQI-Book/chapter04/Plugins/CUQIpy-CIL/demo_ct.html) ### CUQIpy-PyTorch #### Jakob S. Jørgensen - Github repo: https://github.com/CUQI-DTU/CUQIpy-PyTorch - Notebook: [CUQIpy-PyTorch book chapter](https://cuqi-dtu.github.io/CUQI-Book/chapter04/Plugins/CUQIpy-PyTorch/hmc.html) ### UQ for PDEs #### Amal M. Alghamdi - [Core CUQIpy PDE example](https://cuqi-dtu.github.io/CUQI-Book/chapter04/PDE/core_pde.html) - [CUQIpy-FEniCS PDE example](https://cuqi-dtu.github.io/CUQI-Book/chapter04/Plugins/CUQIpy-FEniCS/poisson_2D_fenics.html) - Github repo: https://github.com/CUQI-DTU/CUQIpy-FEniCS - More resources: [repository for the Part II paper](https://github.com/CUQI-DTU/Paper-CUQIpy-2-PDE) ### Gibbs sampling #### Chao Zhang - Notebook: [Gibbs sampling book chapter](https://cuqi-dtu.github.io/CUQI-Book/chapter04/gibbs.html) ### User showcases #### Chao Zhang - GitHub repo: https://github.com/CUQI-DTU/CUQIpy-User-Showcase/ ## Feedback - We greatly appreciate it if you can take few moments to let us know about your CUQIpy training experience in this post-training feedback form: https://tinyurl.com/cuqipy24uqipi ## Acknowledgments - This work was supported by The Villum Foundation (grant no. 25893). - Thanks to all CUQI project members for valuable input and contributions to CUQIpy! - And **thank you** for participating in the CUQIpy training! Please let us know what you think about the software and the training using the the feedback link just above. ## Software issues, problems, comments: Please let us know about any and all problems, suggestions, etc. about CUQIpy that you may have: ### Did you discover any bugs or strange behaviour? - - ... ### Feature wishlist - - ... ### Documentation issues - - ... ### Other - - ...