Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spdhg with stochastic sampler #1644

Merged
merged 144 commits into from
Nov 25, 2024
Merged
Changes from 1 commit
Commits
Show all changes
144 commits
Select commit Hold shift + click to select a range
8389932
First attempt at sampling class
MargaretDuff Aug 2, 2023
7331c73
Changed how probabilities and samplers interact in SPDHG
MargaretDuff Aug 2, 2023
2bce666
Update sampling.py
MargaretDuff Aug 8, 2023
ea759c5
Changed to factory method style and added in permuatations
MargaretDuff Aug 9, 2023
d1909a3
Debugging and fixing random generator in show epochs
MargaretDuff Aug 9, 2023
98b0694
Testing SPDHG
MargaretDuff Aug 9, 2023
05b67cb
Changed the show epochs
MargaretDuff Aug 10, 2023
001350b
Meeting with Vaggelis, Jakob, Gemma and Edo
MargaretDuff Aug 11, 2023
890dec0
Set up for installation
MargaretDuff Aug 14, 2023
25806fc
Added staggered and custom order and started with writing documentation
MargaretDuff Aug 14, 2023
75abbfe
Work on documentation
MargaretDuff Aug 14, 2023
ebdf329
Commenting and examples in the class
MargaretDuff Aug 15, 2023
ba35fb8
Debugging sampler
MargaretDuff Aug 15, 2023
beac6fa
Changes after dev meeting
MargaretDuff Aug 17, 2023
1202e53
Checking probabilities in init
MargaretDuff Aug 18, 2023
079935b
initial testing
MargaretDuff Aug 23, 2023
43e3dc4
Sped up PDHG and SPDHG testing
MargaretDuff Aug 24, 2023
004ab2f
Removed timing statements
MargaretDuff Aug 24, 2023
7b857e0
Got rid of epochs - still need to fix the shuffle
MargaretDuff Sep 13, 2023
1f7d546
Fixed random without replacement shuffle=False
MargaretDuff Sep 14, 2023
6993a95
Changes after meeting 12-09-2023. Remove epochs in sampler and deprec…
MargaretDuff Sep 14, 2023
bafc748
Sampler unit tests added
MargaretDuff Sep 19, 2023
d62aa2b
Some checks for setting step sizes
MargaretDuff Sep 19, 2023
c81b71c
Started looking at unit tests and debugging SPDHG setters and init
MargaretDuff Sep 21, 2023
b28f2f1
Notes after discussions with gemma
MargaretDuff Sep 22, 2023
4a87f48
Changes after discussion with gemma
MargaretDuff Sep 25, 2023
b35222f
Updated tests
MargaretDuff Sep 25, 2023
6e552af
Just a commenting change
MargaretDuff Sep 25, 2023
6575af6
Initial changes and tests- currently failing tests
MargaretDuff Sep 28, 2023
6b463bc
Sorted tests and checks on the set_norms function
MargaretDuff Oct 2, 2023
215bfa6
Changed a comment
MargaretDuff Oct 2, 2023
96e4730
Changes based on Gemma's review
MargaretDuff Oct 5, 2023
1ca3a2b
Comments from Edo fixed
MargaretDuff Oct 9, 2023
4b541e7
Merge branch 'master' into blockoperator-norms
MargaretDuff Oct 9, 2023
9a04de4
Added stuff to gitignore
MargaretDuff Oct 9, 2023
5a302c8
Fixed tests
MargaretDuff Oct 9, 2023
0bffa24
Added a note to the documentation about which sampler to use
MargaretDuff Oct 11, 2023
18647af
Merge branch 'master' of github.com:MargaretDuff/CIL-margaret into st…
MargaretDuff Oct 11, 2023
222c377
Moved the sampler to the algorithms folder
MargaretDuff Oct 12, 2023
1d70eb3
Updated tests
MargaretDuff Oct 12, 2023
5c9fa3a
Sampler inheritance
MargaretDuff Oct 12, 2023
8e84276
Moved sampler to a new folder algorithms.utilities- think there is st…
MargaretDuff Oct 12, 2023
c552257
changed cmake file for new folder
MargaretDuff Oct 12, 2023
c6e1458
Some changes from Edo
MargaretDuff Oct 16, 2023
2b35fad
Maths documentation
MargaretDuff Oct 16, 2023
43e6fee
Some more Edo comments on sampler
MargaretDuff Oct 16, 2023
f77b553
Tried to sort the tests
MargaretDuff Oct 17, 2023
cf1b7f1
Vaggelis comment on checks
MargaretDuff Oct 17, 2023
c2c4df9
Change to jinja version in doc_environment.yml
MargaretDuff Oct 17, 2023
544a215
Merge branch 'TomographicImaging:master' into blockoperator-norms
MargaretDuff Oct 17, 2023
d11296f
Revert changes to docs_environment.yml
lauramurgatroyd Oct 18, 2023
32e057b
Docstring change
MargaretDuff Oct 18, 2023
4e0ca6a
Docstring change
MargaretDuff Oct 18, 2023
87f1a00
Revert naming of docs environment file
lauramurgatroyd Oct 18, 2023
2ff165a
Updated changelog
MargaretDuff Oct 18, 2023
81fc7e2
Updated changelog
MargaretDuff Oct 18, 2023
8f100e0
Updated changelog
MargaretDuff Oct 18, 2023
381342c
Changes to docstring
MargaretDuff Oct 25, 2023
876d4c9
Added size to the BlockOperator
MargaretDuff Oct 26, 2023
5ae4aaf
Merged the blockoperator-norms branch
MargaretDuff Oct 30, 2023
b983e2f
Removed precalculated_norms and pull the prob_weights from the sampler
MargaretDuff Oct 31, 2023
71cbdf9
Changes to setting tau and new unit test
MargaretDuff Oct 31, 2023
f0f4de3
Changes after discussion with Edo and Gemma
MargaretDuff Nov 2, 2023
100a42d
Merge branch 'blockoperator-norms' of github.com:MargaretDuff/CIL-mar…
MargaretDuff Nov 2, 2023
26584c9
Documentation changes
MargaretDuff Nov 2, 2023
ba8226b
Merge branch 'blockoperator-norms' of github.com:MargaretDuff/CIL-mar…
MargaretDuff Nov 2, 2023
d182423
Changes to SPDHG with block_norms
MargaretDuff Nov 3, 2023
ad86a58
Started setting up factory methods
MargaretDuff Nov 6, 2023
40ba3f4
Added function sampler
MargaretDuff Nov 6, 2023
3760458
prob_weights to sampler
MargaretDuff Nov 7, 2023
878675d
TODO:s
MargaretDuff Nov 7, 2023
2d99762
Updates to sampler
MargaretDuff Nov 8, 2023
7154834
Updates to SPDHG after stochastic meeting
MargaretDuff Nov 8, 2023
11a4624
Merge branch 'master' into stochastic_sampling
MargaretDuff Nov 8, 2023
4e7f2b6
Merge error fixed
MargaretDuff Nov 8, 2023
d861a13
SPDHG documentation changes
MargaretDuff Nov 15, 2023
ea4f114
Merge branch 'master' into SPDHG_unit_tests
MargaretDuff Nov 22, 2023
f95560f
Merged in SPDHG speed up
MargaretDuff Nov 22, 2023
0af2e61
Changes from meeting with Edo and Gemma
MargaretDuff Nov 22, 2023
8e14034
Remove changes to BlockOperator.py
MargaretDuff Nov 22, 2023
5c34e69
sigma and tau properties
MargaretDuff Nov 22, 2023
d1fffdf
Another attempt at speeding up unit tests
MargaretDuff Nov 23, 2023
b3dc8a1
Added random seeds to tests
MargaretDuff Nov 23, 2023
edbaa9f
Started on Gemma's suggestions
MargaretDuff Nov 24, 2023
dc1b67a
Some more of Gemma's changes
MargaretDuff Nov 27, 2023
3b41fc4
Last of Gemma's changes
MargaretDuff Nov 27, 2023
7e5759b
Merge branch 'master' into stochastic_sampling
MargaretDuff Nov 27, 2023
bab0b98
Edo's comments
MargaretDuff Nov 28, 2023
41ff3b5
New __str__ functions in sampler
MargaretDuff Nov 30, 2023
aaa7200
Documentation changes
MargaretDuff Nov 30, 2023
b9bb04d
Documentation changes x2
MargaretDuff Nov 30, 2023
ef25425
Moved custom order to an example of a function
MargaretDuff Dec 5, 2023
0948e39
Back to num_indices and more explanation for custom function examples
MargaretDuff Dec 5, 2023
5804f7d
Updates from chat with Gemma
MargaretDuff Dec 7, 2023
fca94f4
Updates from chat with Gemma
MargaretDuff Dec 7, 2023
7d4ffe6
Pulled prime factorisation code out of the Herman Meyer function
MargaretDuff Dec 8, 2023
2dba9d7
created herman_meyer sampling as a fucntion of iteration number
gfardell Dec 8, 2023
c576a51
Merge pull request #1 from gfardell/stochastic_sampling_hm
MargaretDuff Dec 11, 2023
4c36fdf
Merge branch 'master' into stochastic_sampling
MargaretDuff Dec 11, 2023
f5c2d96
Update Wrappers/Python/cil/optimisation/algorithms/SPDHG.py
MargaretDuff Dec 11, 2023
188000f
Changes from Edo review
MargaretDuff Dec 11, 2023
0155e3d
Merge branch 'stochastic_sampling' of github.com:MargaretDuff/CIL-mar…
MargaretDuff Dec 11, 2023
86c1e3e
Removed from_order to replace with functions
MargaretDuff Dec 11, 2023
47542a5
fix failing tests
MargaretDuff Dec 12, 2023
ddbdbb3
Test fix...again
MargaretDuff Dec 12, 2023
8e7a6ac
Merge branch 'master' into stochastic_sampling
MargaretDuff Dec 12, 2023
d896594
Move back to one class
MargaretDuff Dec 19, 2023
d6e986a
Remove axpyb
MargaretDuff Dec 19, 2023
81a4716
Merge branch 'master' into stochastic_sampling
MargaretDuff Dec 19, 2023
ca05199
Split into two classes
MargaretDuff Dec 21, 2023
46d6dad
Tidy up the docstrings
MargaretDuff Dec 21, 2023
2b6b5c7
Some formating things
MargaretDuff Dec 21, 2023
235d26c
Example subclass
MargaretDuff Dec 21, 2023
b28f0c2
Merge branch 'master' into stochastic_sampling
MargaretDuff Jan 9, 2024
e107b72
Changes from meeting with Edo and Gemma
MargaretDuff Jan 9, 2024
f02f8ff
Prob weights in init and documentation
MargaretDuff Jan 10, 2024
443e4da
Merge branch 'master' into spdhg_sampler
MargaretDuff Jan 15, 2024
e3bd7d5
Merge branch 'master' into spdhg_sampler
MargaretDuff Jan 25, 2024
d34e3f6
Tidy up PR
MargaretDuff Jan 25, 2024
e2f3f80
Moved some variables to hidden and updated doc-strings
MargaretDuff Jan 25, 2024
716a793
Update docs
MargaretDuff Jan 30, 2024
ebf617c
Merge branch 'master' into spdhg_sampler
MargaretDuff Jun 10, 2024
e21d450
Fixes #1860
MargaretDuff Jul 9, 2024
d7bc4dc
Updated documentation and examples
MargaretDuff Jul 11, 2024
67ab790
Merge branch 'master' into spdhg_sampler
MargaretDuff Aug 22, 2024
64b86a0
Documentation updates and unit test fix
MargaretDuff Aug 22, 2024
02133be
Merge branch 'master' into spdhg_sampler
MargaretDuff Aug 22, 2024
0466abe
Merge branch 'master' into spdhg_sampler
MargaretDuff Aug 23, 2024
b67d977
Merge branch 'master' into spdhg_sampler
MargaretDuff Aug 23, 2024
2b11156
Changes to sapyb call to save memory
MargaretDuff Sep 2, 2024
1be0029
Merge branch 'master' into spdhg_sampler
MargaretDuff Sep 2, 2024
2edd0e8
Merge branch 'master' into spdhg_sampler
MargaretDuff Sep 23, 2024
9da703a
Edo's comments
MargaretDuff Oct 2, 2024
0b42f5c
Merge branch 'master' into spdhg_sampler
MargaretDuff Oct 2, 2024
0addbdb
Updates following discussion with Edo
MargaretDuff Oct 7, 2024
76780c8
Merge branch 'master' into spdhg_sampler
MargaretDuff Oct 8, 2024
e8641d0
Changed sampler init
MargaretDuff Oct 15, 2024
b1f0dbb
Fix to failing test
MargaretDuff Oct 15, 2024
36c0bf9
Updates from Gemma's comments
MargaretDuff Oct 16, 2024
0b71bc9
Merge branch 'master' into spdhg_sampler
MargaretDuff Nov 22, 2024
c8ee858
Changes from Gemma's review
MargaretDuff Nov 22, 2024
a346c1e
Merge branch 'master' into spdhg_sampler
MargaretDuff Nov 25, 2024
e2efb06
Changelog mess
MargaretDuff Nov 25, 2024
b30666b
Changelog (again)
MargaretDuff Nov 25, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Moved custom order to an example of a function
  • Loading branch information
MargaretDuff committed Dec 5, 2023
commit ef2542525d3b9e77eba45ed4211b12002a9e770a
6 changes: 3 additions & 3 deletions Wrappers/Python/cil/optimisation/algorithms/SPDHG.py
Original file line number Diff line number Diff line change
@@ -88,7 +88,7 @@ class SPDHG(Algorithm):

>>> alpha = 0.025
>>> G = alpha * TotalVariation()
>>> spdhg = SPDHG(f=F, g=G, operator=A, sampler=Sampler.custom_order(len(A), [1,3,0,4,5,8,2,3,8,4,5]),
>>> spdhg = SPDHG(f=F, g=G, operator=A, sampler=Sampler.sequential(len(A)),
initial=A.domain_geometry().allocate(1), max_iteration=1000, update_objective_interval=10)
>>> spdhg.run(100)

@@ -198,8 +198,8 @@ def set_up(self, f, g, operator, sigma=None, tau=None,
if self._sampler is None:
self._sampler = Sampler.random_with_replacement(len(operator))

if self._sampler.num_indices != len(operator):
raise ValueError('The `num_indices` the sampler outputs from should be equal to the number of opertors in the BlockOperator `operator`')
if self._sampler.max_index_number != len(operator):
raise ValueError('The `max_index_number` the sampler outputs from should be equal to the number of opertors in the BlockOperator `operator`')

self.norms = operator.get_norms_as_list()

Loading