Skip to content

Meeting notes

Lyndon Duong edited this page Nov 4, 2021 · 50 revisions

Nov 4

November Sprint

Billy:

  • will be using some parts of plenoptic in dissertation
  • MAD competition only works for metrics now

Kate:

  • PS scale param doesn't change anything
  • go through PR

Nikhil:

  • Synthesis PR
  • picking stuff from kanban to see what else is needed

Lyndon:

  • GPU tests
  • upgrade to pytorch 1.10?

Xinyuan:

  • Perceptual metrics tutorial

Aug 2

Sprint recap

Things absolutely required for JOSS:

  • Tutorials (geodesics, steerable)
  • Almost done synthesis refactor
  • refer to project board for details

July 9

Sprint day 2

Billy:

  • Superclass, refactoring metamer

Jerry:

  • Adjusted NSPD and improved
  • Will try superrvised learning on human perceptual data

Nikhil:

  • pushed to complex pyramid

June 10

Weekly meeting

No updates Lyndon, Billy, Teddy:

  • no update

Pierre:

  • Just pushed some fixes on autocorr functions

Jerry:

  • NSPD
  • trained the regression problem

Nikhil:

  • Merged master + push for final review

June 3

Weekly meeting and sprint recap

Lyndon:

  • worked on model branch and fixed eigendistortion tests + efficiency

Teddy:

  • Steerpyr demo notebook
  • geodesic notebook
  • still no dice w/ reproducing L2 results

Nikhil:

  • broken tests possibly due to image rgb2gray but unsure
  • Looked at Lyndon's PR

Jerry:

  • Working on NSPD fitting regression

Pierre:

  • Working on polar steerable pyramid
  • nonlinear invertible

May 27

May Sprint

Pierre:

  • Merged Geodesics branch!
  • working on factorized pyramid
  • normalized steerable pyramid distance

Jerry:

  • Work on NSPD

Nikhil:

  • Made push to pyramid, fixed energy test issues
  • notebook issue

Lyndon:

  • Optimizing models
  • Fix eigendistortion tests

Billy:

  • tests
  • synthesis superclass

Teddy:

  • Reproducing geodesic figure
  • merge new complpex steerpyr and finish steerable pyramid demo

Kate:

  • synthesis superclass
  • tests in portilla branch

May 20

Weekly meeting

Billy, Pierre, Lyndon, Teddy:

  • no update

Jerry:

  • addressed PR comments for NLPD

Nikhil:

  • will push complex steerpyr soon and fixed test

Kate:

  • went through synthesis class and methods
  • will meet w/ billy to discuss planning out plotting and the synthesis super class

May 13

Weekly meeting

Billy:

  • Went through Pierre's PR

Lyndon:

  • no update

Xinyuan:

  • Perceptual metric PR (nlpd and laplacian pyramid)

Pierre:

  • helped w/ perceptual branch
  • implementing Billy's PR comments on geodesic PR
  • implementing undercomplete conditional geodesic optimization

Teddy:

  • Working with new conditional geodesic optimization but still not getting any obvious reproduction of original results yet

Nikhil:

  • commenting code of pyramid
  • not-downsampled pyramid still not have same energy as downsampled in bands when using real pyramid but not complex

Kate:

  • No major update w/
  • Prep for superclass overhaul

May 6

Weekly meeting

General:

  • Tests still stalled
  • Try pushing again to see if it works now

Pierre:

  • Working on conditional geodesic optimization

Lyndon:

  • No update

Billy:

  • Fixed caching issue w/ CI

Teddy:

  • Still trying to reproduce L2 vs max pooling geodesic results

Jerry:

  • laplacian pyramid and nlpd

April 29

Sprint recap

General:

  • CI checks are not running reliably

Billy:

  • reproduce MAD competition results

Nikhil:

  • addressed complex steerpyr PR comments
  • added more tests
    • not-downsampled version should have same energy in bands as downsampled version
    • works for complex but not real

Lyndon:

  • no update
  • need to fix eigendist tests and model update

Teddy:

  • issues w/ geodesic fig reproducing
    • difficulty showing differences btwn max vs L2 pooling

Kate:

  • Changing draft to formal PR once complex steerpyr is merged to master
  • Plan to work on abstract class

Jerry:

  • MSSIM merged
  • Working on Laplacian pyramid and downsampling/padding

Pierre:

  • Geodesics: added summary to PR
  • Works on GPU
  • PR ready for review

April 15

Weekly meeting

Sprint next week

Jerry:

  • Pushed prelim MS-SSIM
  • Need tests still

Kate:

  • Pulled complex pyr and tests now pass!
  • dtype bug in metamer
  • plan for sprint is to make ipynb for PS model;
  • also ipynb for matching PS model w/ matlab

Teddy:

  • recreating ipynb figures from geodesic paper
  • max pool vs L2 pooling doesnt show same effects as paper

Pierre:

  • added patches to geodesic to speed it up
  • working on back-end currently
  • expanding and fixing broken tests
  • conditional geodesic not complete yet

Lyndon:

  • working on frontend models to re-speed up tests and computations
  • parallelizing convolutions
  • fixing broken tests

April 8

Weekly Meeting

Jerry:

  • no update

Billy:

  • Looked at Lyndon's PR and merged

Kate:

  • Pulling in steerpyr and resolving conflicts

Pierre:

  • Resolved conflicts with master branch
  • Spoke with Teddy who will use it soon
  • ipynb needs finishing

Lyndon:

  • Fixing models tests
  • should move canonical_computations/signal.py code to tools/conv.py

April 1

Weekly meeting

Pierre:

  • Fixing geodesic bugs
  • Implementing optimization but running into broken grad

Billy:

  • Looked at Jerry's PR
  • Pyrshow implementation

Nikhil:

  • PR for complex pyr
  • styllistic changes left
  • Broken test due to atan2 but can switch to angle; used in nspd metric

Jerry:

  • Merged gpu tests into master
  • test_mad.py runs fine alone, but entire suite for some reason fails

Teddy:

  • PR opened for steerpyr demo
  • will need to re-merge nikhil's branch
  • amalgamate existing steerpyr notebook
  • thinking about vgg16 geodesic

March 25

Weekly meeting

Billy:

  • PRs w/ code removal and test fixes merged
  • Spent time working on code in complex_pyramid branch
  • Reviewing Jerry's PR

Jerry:

  • Addressing Billy's PR comments

Teddy:

  • Reviewed Lyndon's PR
  • Stabilize notebook and turn into PR soon

Pierre:

  • Merging from master to PR & resolving tests

Lyndon:

  • GPU routines set up by Dylan @ SCC
  • Model and eigendist index PR ready for review/merge

March 22, 2021

March Sprint recap

General:

  • Next sprint: April 22-23

Kate:

  • Pulled steerpyr into branch
  • looked over some PRs

Billy:

  • addressed comments in remove_pooling PR
  • MAD tests dropped down to 7 (SEVEN) minutes down from 4+ hours!
  • Build test no longer uses ffmpeg; notebook tests do

Pierre:

  • Working on 1.8 changes
  • models:
    • spectral model
    • x-spectral model
    • another version of texture model
    • potential descendents of texture ideas

Nikhil:

  • Fixed broken tests
  • PR ready for review; will pull from master

Xinyuan:

  • Working on GPU tests
  • Will wait for test PR to be merged

Teddy:

  • Complex convs not supported by pytorch yet
  • artifacts in learning filters

Lyndon:

  • Eigendist small fix
  • modle_update PR ready for review

March 19, 2021

March sprint Day 2 AM

Lyndon:

  • Setting the amplitude of the center to be a greater than surround matches Alex's implementation
  • filter = normalize(1.25*center - surround)

Pierre:

  • Working through merge conflicts with master
  • Noticed breaking tests due to random weight init in FrontEnd

Kate:

  • Went through Billy's PR
  • Work with Nikhil's code to

Nikhil:

  • PyTorch 1.8 branch pushed
  • Fixing breaking tests

Jerry:

  • Went through Billy's PR
  • Continue to work on GPU-related errors and add GPU tests

Teddy:

  • Pushed 2nd version of steerpyr demo without downloaded data
  • Steerpyr notebook includes eigendistortions

March 18, 2021

March sprint Day 1 PM

Billy:

  • Tests now only trigger in PRs
  • cached python envs
  • ffmpeg required for notebook tests but not build tests

Nikhil:

  • Pushed ComplexSteerPyr

Pierre:

  • changed data tree structure
  • minor pushes to geodesic branch
  • Began improving image loading (same image loaded many times) in testing (Billy may finish this)

Jerry:

  • Worked on tests that break w/ GPU, specifically test_eigendistortion and test_metamers
  • changed test_plenoptic so tests run on GPU if available

Kate:

  • Working on poolin PR and portilla-simoncelli tonight

Teddy:

  • initial push to steer pyr demo (needs to be deleted and redone because data was pushed)
  • going to add a synthesis example to show grads can be pushed through pyramid
  • question about using torch lightning. I.e. do training scripts need to be an isolated unit as opposed to contained w/ in the notebook

Lyndon:

  • Worked on binder PR
  • Working on models branch
  • Discussion about how to normalize DoG filters

March sprint Day 1 AM

General:

  • 5:30PM evening meeting
  • Tomorrow morning meeting @ 10AM
  • ffmpeg isuse might be resolved with new automated workflow recommended by billy
  • Setup.md and link from readme

Kate:

  • Waiting for complexsteerpyr
  • Getting PS to work with other synthesis methods

Billy:

  • Made PR yesterday removing lots of code
  • Testing quality of life improvements
  • Fixing imshow

Pierre:

  • working on geodesic branch integrating PR comments

Nikhil:

  • Complex SteerPyr
  • Will push early version so Kate can use

Lyndon:

  • working on frontend model
  • models

Teddy:

  • Steerpyr tutorial
  • work thru user-facing readme.md and setup.md

Xinyuan:

  • made first PR this week
  • start working on GPU-enabling tests

March 11, 2021

Weekly Meeting

General:

  • Sprint next week
  • Added Teddy and Jerry to the organization

Billy:

  • Hoping to chop out code next sprint
  • Removing pooling window-related code
    • move to standalone repo in lcv
    • synthesis args and kwargs will be pared

Lyndon:

  • New PR for Binder notebooks

Nikhil:

  • Tests for band interpolation not worth effort
  • Few more tests needed for steerpyr
  • Will push before sprint

Kate:

  • No major update
  • Would like PR reviewed during sprint

Teddy:

  • Willing to contribute to geodesic or steerpyr tutorial

March 4, 2021

Weekly meeting

Pierre:

  • Working on PR

Billy:

  • PR merged!

Lyndon:

  • No update.

Other notes:

  • Pyrtools animshow debugging and fixes.
  • Possibly remove ffmpeg from github actions?
  • Xinyuan would like to start working with plenoptic.

Feb 25, 2021

Weekly meeting

Work on Need to have/Nice to have before Joss submission.

Nikhil:

  • Potential floating-point issue with SteerPyr images
    • Removing mean results in very small pyr responses
  • Raise warning for images w small mean

Billy:

  • made changes in display fixes PR - largely comments/explanations
  • display test optimization

Kate:

  • plan on helping w synthesis and display refactor

Lyndon:

  • going thru Billy's PR

February 22, 2021

February sprint recap

Next sprint on March 18-19. TODO: synthesis and display refactoring, and examples folder.

Pierre:

  • Going through Billy's extensive comments on PR

Billy:

  • Test display code, used python fixtures

Kate:

  • GPU-enabled
  • ran python Black

Lyndon:

  • preliminary models work done

2021-02-19

February sprint: day 2

Kate:

  • got GPU working -- need to GPU-ify PS model

Billy:

  • display finalize
  • change how/where optimize is written
  • spend time to reproduce matlab mad competition results

Pierre:

  • Lyndon's PR accepted
  • Remove code from geodesic branch to merge PR today

Lyndon:

  • Addressed Pierre's PR
  • PR for typehinting

2021-02-18

February sprint: day 1

Potential new general meeting times will be Tues or Thurs at 11AM.

Pierre will look over Lyndon's PR this afternoon.

Kate:

  • display code for portilla-simoncelli,
  • testing on GPU
  • add tests: - synthesis test given seed - test of normalized output - test w/ GPU

Billy:

  • finish up changes to display code dealing w RGB images
  • go over update_plot() w/ Kate

Pierre:

  • Merge geodesics branch
  • Do conditional geodesic in different branch

Nikhil:

  • Complex steerable pyramid
  • there was a small issue w tight frame/FFT normalization
  • dict will no longer be an attribute; always output dict
  • dict2tensor method implemented, and optional

Lyndon:

  • Merge eigendistortion PR once implemented
  • Work on Models, including L, LN, FrontEnd

February 5 2021

Weekly meeting

General:

  • NBReview app integrated
  • Redundant loss functions: mse and L2
  • Wew meeting time?

Pierre:

  • Broken notebooks, but unsure why
  • remove fit.py since none of those methods are being used
  • Notebooks 01, 03, 05, 06, 08 failing

Billy:

  • Looked at lyndon's PR
  • display branch
  • replace pt with po.imshow
  • should stochastic weight averaging be a req?
  • pass an optimizer as argument instead of just strings

Lyndon:

  • change frontend filter size from default 31x31
  • requires_grad and pretrained flags
  • save state_dict of FrontEnd
  • not implemented exception for save and load and to
  • pass ax explicitly into plot_distorted_image?

February 1 2021

Sprint recap @ 10AM

General:

  • Next spring Feb 18-19

Kate:

  • build python notebook for PS
  • finishing display code
  • profiling
  • gpu
  • batch synthesis
  • document differences btwn matlab and python of fwd pass and optimizaiton
  • notebook with replication
  • fix broken tests & add synthesis tests confirming solution

Lyndon:

  • ask Alex about sizes of images on which frontend was trained
  • ask him about masking
  • remove steps from tqdm
  • have frontend model have pretrained flag to update state
  • typehinting uniformization

Billy:

  • display code. pr not ready yet
  • rgb images
  • remove seaborn requirement
  • remove pyrtools.imshow to po.imshow()

Pierre:

  • ci build tests failing, but seems to be not our fault
  • tools.signal.py has some redundant functions

January 29 2021

Sprint day 2 AM

Have post-sprint meeting on Monday Feb 01 10am instead of this afternoon.

Lyndon:

  • almost done eigendist tutorial
  • strange artifacts for front-end model | apply disk mask?
  • internalize plotting functions

Pierre:

  • merge billy's master changes
  • many tests do not pass for some reason
  • fair amount of documentation added

Billy:

  • 2 simple PRs to review
  • helping kate with optimization

Kate:

  • matlab coarse-to-fine is done differently than ours
  • getting to the bottom of high-freq artifacts

Nikhil:

  • going thru line-by-line for pyramid

January 28 2021

Sprint day 1 AM

End of day meeting at 5pm

Priorities:

  • Core tutorials!
  • blitz tutorial
  • advanced
  • preliminary tutorials (loop Eero in at this point).

pierre:

  • geodesic docs

kate:

  • losses for P-S model

billy:

  • go through lyndon's comments on PR

lyndon:

  • tutorial cleaning

Tutorial 0/preliminaries:

  • perhaps lives in its own separate folder for newcomers
  • introduce ideas around linear model
  • 1D signal
  • how would we properly motivate geodesics for linear model?
  • First principles, blitz 60minutes tutorial,

What should a blitz look like?

  • one nonlinear model
  • demo synthesis methods

January 22, 2021

Sprint next week:

  • 11AM start
  • 1 Hour discussion about tutorial 0 and arrangement of tutorials

Nikhil:

  • complex tensor
  • Synthesis superclass abstraction

Lyndon:

  • eigendist tutorials
  • display code

Billy:

  • display issues
  • synth display code doesnt work w rgb

Pierre:

  • work on geodesic stuff from november sprint list
  • tutorial0 (linear case)
  • merge geodesic branch

Kate:

  • plotting portilla-simoncelli stats in meaningful way
    • quantify convergence for overall and indiv statistic loss
    • quantify differences between matlab and python
  • starting from white noise, end up w/ structured highfreq noise in result
    • starting with smaller Gaussian noise, result looks more reasonable
    • using plots to better assess/evaluate what is happening, e.g. divide by scale/type

Miscellaneous:

  • python Black?
  • docstring style

June 26, 2020

  • for po.imshow, want to enforce 4d tensors because everything else requires it
    • also, handle complex tensors correctly
    • and double-check our model outputs
    • add po.pyrshow, using Nikhil's convert_pyrshow function
    • there are three cases for bchw:
      • multi-batch, 1 channel: can do automatically
      • multi-batch, RGB channel: can do automatically (but add an option to override the assumption that 3 channels means RGB)
      • multi-batch, multi-channel: can't do automatically, user must specify either 1 channel (and all batches) or 1 batch (and all channels)
  • need to decide, at a hgih leve, what we want in tutorials and example folders. i.e., what content needs to be covered. this is a good thign to cover in our spring
  • Nikhil is almost done with his steerable pyramid notebook, will push by next week. then tools_organizations branch will be ready for merge
  • Kate's weird kernel crash is back, though there's a workaround. she'll open an issue to keep track
  • Kate will start bringing normalization and coarse-to-fine into Portilla-Simoncelli texture (and look into speed)
  • Billy should move generate_norm_stats and zscore_stats into tools/optim.py, on the abstractions branch. They may be useful for other cases?
  • Lyndon is continuing to work on the eigendistortion tutorial, should be ready by next week (then we can merge the fix-autodiff branch?)
  • we should figure out and make explicit what we do with multiple channels (i.e., we treat each separately because we care about grayscale)
  • during sprint: look into CoLab / BinderHub for running tutorials in browser. CoLab has cool features, but Lyndon and Billy are a bit leery of relying on Google
  • Billy wants to show code can re-generate existing MAD competition examples, so should reach out to Zhou Wang about this

July 17, 2020

  • Billy should send Zhou Wang an email to see if he's comfortable sharing the MAD Competition results he sent
  • Working through Nikhil's new notebook, the tutorial for steerable pyramid highlighting the differences between plenoptic and pyrtools implementations
    • spent a lot of time discussing relationship between downsampled and not-downsampled version, how to build tests for the new not-downsampled version. decided that the energy should be the same between them (relatively easy to check) and that if you sub-sample the not-downsampled version, the pyramid coefficients should be identical to the downsampled version in the pixel domain (no filtering required).
  • discovered our python 3.7 build on Travis CI is broken, looks like it's a matplotlib issue that they're aware of and working on (and there's a work-around there)
  • should probably move the models Pierre added to the tools_organizations branch to a new branch (and delete them from that branch) because they might need a bit more work
  • pyramids are hard. we should add a link to David's handout somewhere in our documentation.

Once we add those tests, fix Travis build, and move Pierre's stuff, then we can merge that branch -- should be ready in next week. Lyndon and Billy's branches aiming to also merge in the next two weeks, before the sprint.

August Sprint

August 3, 2020

Starting the sprint! Will go from now until Tuesday, August 8.

  • Will meet every day in the morning and evening for a quick stand up:
    • morning: everyone has ~5 minutes (hard cut-off at 6) to describe what they're working on in the coming day.
    • evening: everyone has ~5 minutes (hard cut-off at 6) describe what they worked on, what they accomplished, what they're stuck on, and set up potential meetings for help.
  • Evening meeting is at 5:30pm EST, so will head to tea time afterwards.
  • First, everyone wants to finish the stuff they were hoping on working on before the sprint started.
  • Then, we'll work on documentation, tutorials, and examples.
    1. we want an intro page that basically answers "why should you use this?", so has some flashy examples for each method (pointing to literature), as well as examples of adversarial examples to motivate why it's important.
    2. "notebook 0": works through synthesis methods with a linear model y=Ax, focus on building intuition.
    3. Overview tutorials for the models: steerable pyramid, texture statistics, pooling windows (and ventral stream?)
    4. More detailed tutorial for each synthesis method (focus on use, point to papers for going into the math, defer to documentation for lots of details on attributes and arguments)
    5. Building new model, what do you need to ensure that it works well with our methods.
    6. Building new synthesis method? lowest priority, because this will probably be done by someone in the lab. would still be good to have in order to make sure that Synthesis superclass is well-documented
  • 1 and 2 are probably the pages that will have the most input from Eero.
  • would also be nice to have something like a review paper summarizing the whole synthesis approach.

August 4, 2020

Morning

  • stand ups:
    • Billy:
      • worked on SSIM, documented plenoptic version and got it matching matlab versions, both standard and weighted (as in MAD paper)
      • meeting later this afternoon with Pierre to discuss SSIM more (don't understand all arguments, how to handle batch/channel)
      • will add tests to match matlab
      • using matlab weighted SSIM, generated images that look like those in the MAD paper, will check if plenoptic can generate similar and, if not, check the derivatives
    • Kate: NMA tech support caused issues with terminal, so will have to do clean install and re-set up
      • once that's done, will go back to Portilla-Simoncelli texture stats, making sure it can operate on 4d tensors, then run on many images, and write tests
        • for tests, won't be able to compare directly to MATLAB because of known differences. will get the whys and hows documented there, add tests comparing with known plenoptic output
    • Lyndon:
      • working on Jupyter notebook tutorial for eigendistrotions, using FrontEnd model and VGG16 to recreate results from Alex's paper
      • cleaning up documentation and inconsistencies, improving user experience for eigendistortions
    • Pierre:
      • working on animating subplots for steerable pyramid
      • wants to get geodesics working and simplify them
    • Nikhil:
      • examining pyramid, got real pyramid passing the energy-matching test
      • but discovered that complex is not -- how can both be tight frame?
  • Travis CI
    • we had run into an issue where tests exceeded max time allowed, so will need to fix, probably using build matrices
    • Billy will add bugfix for new torch version to master, so others can pull in

SSIM

  • batch: handle reasonably so that if both images have same number of batches, they get compared 1-to-1, otherwise can be many-to-1.
  • remove size_average argument (always return mssim with batch and channel), and get weighted version to have same shape
  • remove window_size and window arguments (can add later if people need)
  • should normalize in 2d rather than 1d
  • remove automatic ability for val_range, add more info in docs
  • change the external MAD plots to say best/worst for both SSIM and MSE and have them in same order

Evening

  • Travis CI stuff fixed on master, everyone should pull in.
  • Nikhil figured out the complex pyramid issues, just needs to double-check reconstruction and then we can merge tomorrow.
  • Lyndon needs to finish up some tutorials and then is also ready to merge.
  • Billy will not get the recreation of original MAD Competition results on abstractions branch, instead finish up tests and merge tomorrow, then start new branch of that recreation.

August 5, 2020

Morning

  • Billy:
    • needs to move coarse-to-fine together option over into abstractions branch if not there already
    • get msssim function working again, then add ssim/msssim tests
    • and merge!
    • (we'll probably not manage to do a full review)
  • Kate:
    • for Portilla-Simoncelli texture stats, several stuff need doing:
      • working with batch and channel (currently, only 1x1xHxW)
      • make human-readable
      • tests that prove it's close enough to MATLAB, baseline for future-proofing
      • working with coarse-to-fine
      • re-run on database of images to get norm factor
    • how to prioritize? tests and human-readable first, then rest is more software-engineering-y and easier to bring others in
  • Nikhil:
    • fixed pyramid should return tensor by default
    • write method to convert between tensor and dictionary
    • pyr_coeffs attribute should always be dictionray
  • Lyndon: working on Jupyter Notebook tutorial
  • Pierre: animations

hopefully by end of day, be read to merge branches from Nikhil, Lyndon, and Billy

August 6, 2020

Morning

  • Pierre: animation is working, now needs to fix edge cases and then work on geodesics
  • Lyndon: tests breaking on Travis but not locally, once that's done should be ready to merge
  • Kate:
    • making sure Portilla-Simoncelli can be built on a pyramid (in addition to an image) for tests because small differences between matlab and python get amplified and lead to larger mis-matches
    • we think numpy and matlab are the same, and that the observed difference comes from small differences between numpy and torch's fft; they're within floating poitn error per element, but summed can get to like 10^-4
    • documenting why it's different with matlab
  • Nikhil: making progress, but the reconstruction tests have broken
  • Billy:
    • will be ready as soon as the comparison with MATLAB test is done, but how do we review? it's massive
    • docstrings are overhwhelming so: remove attribute documentation if they're the same as arguments, think about hiding attributes, remove TODOs, conceptual part of it belongs elsewhere
    • Kate will edit later today

Evening

  • Nikhil: two new pyramid reconstruction errors, also exist in the pyrtools versions. they show up in odd-sized images and in pyramids with zero order. going to open an issue and document, then move on.
  • Pierre: working on geodesics. would be nice to have an existing result to reproduce, not sure if we do.
  • Lyndon: still working on tutorials, got sidetracked by weird error in testing. eigendistortion tests have all passed.
  • Billy: tests done, still need to make changes to docs.

We'll have a meeting tomorrow morning (after stand-ups) to go over abstractions and how to use them.

August 7, 2020

Morning

  • Lyndon: having trouble with FrontEnd distortions always showing up along edge. will create issue but won't wait to fix for merge, which we can do once tests pass
  • Kate: still working through comparison to MATLAB, tracking down what comes from precision errors propagating and if any errors are additional
    • we could try using float64 to get more precision (MATLAB uses that precision by default), but that requires going back through plenoptic and prytools code to get everything initialized in float64 (initializing as float32 and converting to it afterwards does not help). pytorch has a set_default_dtype function, which would hopefully do this, but numpy does not
    • will look into texture branch and whether we can delete
  • Nikhil: just one more test to pass, almost ready
  • Pierre: geodesics code is coming together for simple example.
    • wants to move some stuff out of class, potentially into superclass? discuss about abstrations
    • wants to get spectral model working
  • Billy: tests are done, still needs to finish docstrings changes

Abstractions

Billy, Pierre, and Lyndon discussing the Synthesis superclass and how to use it for geodesics and eigendistortions

  • it feels like spatial masks, clamping, and an objective that penalizes range all should be considered "constraints" and grouped together in some way, but not sure the best way to do that.
  • would be nice to organize arguments in some way, because there are a lot, but how?
  • Billy will:
    • write up what attributes an inheriting class should have to make use of Synthesis's methods
    • rename: image -> signal, target -> base, matched -> synthesized; so names make more sense for all methods
    • change update_plot so it works for line plot as well. if there's only one line, will update that. if more than one, must specify the label (or pass an array that has the right number of observations
  • then Pierre and Lyndon will start trying to adapt to their existing methods and reach out if/when any issues come up.

Evening

  • Lyndon:
    • table frequency of implementation of FrontEnd for now
    • even with larger images, distortions for FrontEnd are still on edge (will open issue)
    • tutorial is almost done (will not include FrontEnd for now)
    • "it's like Zeno's Paradox"
  • Nikhil: wants to avoid having to convert tensor to dict if input tensor and current pyr_coeffs don't have same number of scales/bands, should be fine.
  • Pierre: fixed then broke geodesics, trying to simplify code
  • Kate: stupid bug in generation of pyramids (in MATLAB), needs to see if that fixes most issues
  • Billy: tests done, still working on docs

Our goal is now to merge the three open PRs by the end of the sprint

August 10, 2020

Morning

  • Kate: tracking down Portilla-Simoncelli errors, setting up stuff to check systematically because they're not always consistent
  • Lyndon: PR ready to merge, so everyone should look through on their own today and we'll merge at the end of the day. he'll look at adding documentation in the tools branch
  • Pierre: tracking down some geodesics bugs
  • Nikhil: check tests and update docs, but almost there
  • Billy: finish docs

Evening

  • Kate: long-standing bug was due to == instead of =, once that was fixed then everything seems to be passing when using float64 (though checkerboard error is higher than the rest. will get tests finalized, baseline version saved out, and then work on making it more human-readable in the several days after the sprint
  • Nikhil: not enough time today, still cleaning up and working on tutorial, but hopes to get final push done tonight
  • Lyndon: added docstrings to stuff on tools_organization branch, then helped Pierre on geodesics
  • Pierre: solving issues on geodesics, but it's still not super well-behaved
  • Billy: still working on docs

August 11, 2020

Final day

Morning

  • Billy:
    • needs feedback on PR
    • will look at whether docs build and some plotting stuff if time
  • Lyndon: merged PR!
  • Kate: building tests, then trying to make things human readable. will want eyes later on the code to help with that
  • Nikhil: just about to push, found bug in complex case but then will be done
  • Pierre: geodesics, many small items on to do list. struggling to find good settings for a few different models.

Evening

  • Billy: responded to Lyndon's suggestions, got docs working, started working on update_plot for lines
  • Kate: writing tests, found and fixed a bug.
    • by end of week, will push tests into branch (and rename to replicate_portilla_simoncelli) and remove the stuff to remove
  • Pierre: added progress bar, trying VGG16, still having trouble getting geodesics well-behaved
  • Lyndon: got started computing eigenvectors using gradient descent (for making compatible with Synthesis)
  • Nikhil: everything is pushed, merged from master. need eyes on PR and checking that everything works

Moving forward:

  • by tomorrow's lab meeting, will merge Nikhil's branch, then Billy's. Then (later this week) Kate will remove the Portilla-Simoncelli stuff she wants to remove, then we'll make it public!
  • we'll try to have another sprint in the fall, after Lyndon's quals in October
  • more big picture goals:
    • reproduce MATLAB MAD Competition results
    • finalize Portilla-Simoncelli and reproduce results
    • get geodesics working
    • get geodesics and eigendistortions using Synthesis superclass
    • more models
    • interoperability with BrainScore
    • Nikhil's V2 model (once it's more stable, will use pre-trained version)
    • merge pooling branch (needs to be cleaned up more)
    • vision science tutorial experiment: how would you use this for a psychophysics experiment
    • getting other eyes on this (other folks in lab, Corey)
    • submitting to JOSS, writing up review paper