lostanlen / scattering.m

Scattering.m — a MATLAB toolbox for wavelet scattering
MIT License
57 stars 11 forks source link

Custom invariants #34

Closed lostanlen closed 8 years ago

lostanlen commented 8 years ago

The main purpose of this PR is to extend the structures archs{1+m}, whose fields are banks and nonlinearity, by adding a third field invariants. This brings finer control over which invariants are applied at every vertex of the scattering network. Two invariants are available right now:

The PR is backwards compatible with the current API.

CarmineCella commented 8 years ago

Huge huge work... Ad maiora!

Il giorno 13 nov 2015, alle ore 10:32, Vincent Lostanlen notifications@github.com ha scritto:

You can view, comment on, or merge this pull request online at:

https://github.com/lostanlen/scattering.m/pull/34

Commit Summary

write script chordsspiral_1027 call setup_invariant in sc_setup remove is_U_blurred field call fill_invariant_spec in setup_plans initialize setup_invariant initialize fill_invariant_spec fill_invariant_spec calls root_field in setup_plans whitespace in enforce.m default invariance field in invariant_spec default phi_handle in invariant_spec add bank_spec as second input to fill_invariant_spec default field phi_w_multiplier in invariant_spec handle is renamed to wavelet_handle: take care of backwards compatibility rename handle to wavelet_handle add second output in fill_invariant_spec caller setup_plans typo in previous commit alphanumeric ordering of field names in fill_invariant_spec setup_invariant operates in-place invariance defaults to blurred at first order in setup_plans fix typo in fill_invariant_spec when isfield(opt, 'invariance') phi_handle is renamed to invariant_handle in fill_invariant_spec invariant_spec.T = opt.T remove parse_invariance, parse_phi and their call sites write function gaussian_1d gaussian_1d should output a column vector update setup_bank write blurred case in setup_invariant copy bank.spec.size field to invariant.spec.size add phi squared norm to littlewood-paley sum in setup_bank update fill_bank_behavior, introduce is_phi_applied replace is_U_blurred by is_phi_applied in setup_plans replace U_is_blurred et al. by is_phi_applied Revert "update fill_bank_behavior, introduce is_phi_applied" Revert "replace is_U_blurred by is_phi_applied in setup_plans" Revert "replace U_is_blurred et al. by is_phi_applied" write function get_handle_dimension call get_handle_dimension in setup_invariant update comment in fill_bank_spec update Y_to_S according to blurred invariant typo in get_handle_dimension update Y_to_S to disentangle banks from invariants update setup_invariant define has_custom_invariants boolean bank is no longer a second input argument of setup_invariant update the has_custom_invariants conditional branch update fill_invariant_spec update setup_plans default spec.phi_bw_multiplier in fill_invariant_spec default spec.size in fill_invariant_spec remove reference to obsolete arg bank in setup_invariant call fill_invariant_spec with two args in setup_plans conditional branch call fill_invariant_behavior in setup_plans create file fill_invariant_behavior rename bank_behavior -> behavior in fill_bank_behavior define is_invariant and is_bypassed fields in fill_invariant_behavior define subscripts field in fill_invariant_behavior, add second input arg rename output arg bank_behavior to behavior in fill_bank_behavior typo in setup_plans default trim_threshold in fill_invariant_spec rename bank_spec to spec in trim_ft default trim_threshold in fill_invariant_spec when nargin==2 default field has_multiple_support in fill_invariant_spec enforce invariant.spec.has_real_ft to be the same as bank.spec.has_real_ft correct previous commit take real part of phi_ft if invariant.spec.has_real_ft update trim_ft typo in previous commit typo in trim_ft add half_length to negfirst_index and neglast_index in trim_ft bug fix half_length in trim_ft bugfix neglast_index in trim_ft redefine is_single_invariant boolean in Y_to_S Revert "redefine is_single_invariant boolean in Y_to_S" replace nVariables_to_transform by nBanks in Y_to_S define default fields key and subscripts in fill_invariant_behavior update Y_to_S, separate bank from invariant update comment in fill_bank_behavior update Y_to_S default log2_oversampling in fill_invariant_behavior default J in fill_invariant_spec rename nVariables_to_transform to nBanks in U_to_Y whitespace in fill_bank_behavior set default is_U_blurred to false when has_custom_root_invariants set default is_U_blurred in setup_plans whitespace in U_to_Y rename has_custom_root_invariants to has_custom_invariants separate banks_opt from invariants_opt update setup_plans bug fix specification of J write function gamma_1d call gamma_1d in generate_phi_ft write function rectangular_1d call rectangular_1d in generate_phi_ft update setup_plans whitespace in fill_bank_spec update gamma_1d start specifying invariants in setup_plans typo in fill_invariant_spec whitespace in setup_plans rename handle to invariant_handle sc_setup is conditional to the existence of bank resp invariants handle -> invariant_handle in fill_invariant_spec typo in setup_plans write function default_invariant_handle fill_invariant_spec now calls default_invariant_handle more default invariant behavior alphanumeric ordering of bank behavior typo in fill_invariant_behavior alphanumeric ordering of invariant behavior whitespace in setup_plans has_custom_invariants is conjunctive, not disjunctive conditional branch if there are no banks address no-banks layers in setup_plans address no-invariants layers in setup_plans add field name in setup_plans behavior.name = opt.name in fill_bank_behavior better invariant API in setup_plans specify root_name in field at first order bugfix fill_invariant_behavior dispatch on existence of corresponding bank to call fillinvariant* plan may not have banks or invariants declare boolean is_lastlayer_implicit in sc_setup distinguish plan from layer in sc_setup take care of implicit last layer in sc_setup File Changes

A lib/architecture/default_invariant_handle.m (9) M lib/architecture/fill_bank_behavior.m (43) M lib/architecture/fill_bank_metas.m (4) M lib/architecture/fill_bank_spec.m (64) A lib/architecture/fill_invariant_behavior.m (21) A lib/architecture/fill_invariant_spec.m (36) D lib/architecture/parse_invariance.m (19) D lib/architecture/parse_phi.m (29) A lib/architecture/setup_invariant.m (12) M lib/architecture/setup_plans.m (212) M lib/export/sc_setup.m (29)
M lib/filterbanks/generate_phi_ft.m (36) M lib/filterbanks/setup_bank.m (16) M lib/filterbanks/trim_ft.m (29) M lib/forward/U_to_Y.m (8) M lib/forward/Y_to_S.m (46) M lib/utilities/enforce.m (2) A lib/utilities/get_handle_dimension.m (6) A lib/wavelets/gamma_1d.m (14) A lib/wavelets/gaussian_1d.m (17) A lib/wavelets/rectangular_1d.m (8) M research/recspiral/chordsspiral_1026.m (1) A research/recspiral/chordsspiral_1027.m (51) Patch Links:

https://github.com/lostanlen/scattering.m/pull/34.patch https://github.com/lostanlen/scattering.m/pull/34.diff — Reply to this email directly or view it on GitHub.

CarmineCella commented 8 years ago

Can we work together on monday to integrate it? Best C

Il 20/11/15 11:20, Vincent Lostanlen ha scritto:

Merged #34 https://github.com/lostanlen/scattering.m/pull/34.

— Reply to this email directly or view it on GitHub https://github.com/lostanlen/scattering.m/pull/34#event-470219205.

lostanlen commented 8 years ago

Yes I'm available on Monday. What do you mean by "integrating" ? Have you tried running this new code ? Does it fail on your use case ? Or do you want to try the new functionalities ?

CarmineCella commented 8 years ago

Didn't try yet, working on torch, will do soon. But wanted to test new features. I can do it myself if you want. C

Il 20/11/15 16:19, Vincent Lostanlen ha scritto:

Yes I'm available on Monday. What do you mean by "integrating" ? Have you tried running this new code ? Does it fail on your use case ? Or do you want to try the new functionalities ?

— Reply to this email directly or view it on GitHub https://github.com/lostanlen/scattering.m/pull/34#issuecomment-158429411.