1. 14 Jun, 2023 1 commit
  2. 17 May, 2023 1 commit
    • Roman Shapovalov's avatar
      Refactor: FrameDataBuilder is more extensible. · b0462598
      Roman Shapovalov authored
      Summary:
      This is mostly a refactoring diff to reduce friction in extending the frame data.
      
      Slight functional changes: dataset getitem now accepts (seq_name, frame_number_as_singleton_tensor) as a non-advertised feature. Otherwise this code crashes:
      ```
      item = dataset[0]
      dataset[item.sequence_name, item.frame_number]
      ```
      
      Reviewed By: bottler
      
      Differential Revision: D45780175
      
      fbshipit-source-id: 75b8e8d3dabed954a804310abdbd8ab44a8dea29
      b0462598
  3. 14 May, 2023 1 commit
    • Virendra Kumar Pathak's avatar
      Softly deprecate the get_str=False flag. · d08fe6d4
      Virendra Kumar Pathak authored
      Summary: We don't want to use print directly in stats.print() method. Instead this method will return the output string to the caller.
      
      Reviewed By: shapovalov
      
      Differential Revision: D45356240
      
      fbshipit-source-id: 2cabe3cdfb9206bf09aa7b3cdd2263148a5ba145
      d08fe6d4
  4. 24 Mar, 2023 1 commit
    • Emilien Garreau's avatar
      Add the OverfitModel · 813e941d
      Emilien Garreau authored
      Summary:
      Introduces the OverfitModel for NeRF-style training with overfitting to one scene.
      It is a specific case of GenericModel. It has been disentangle to ease usage.
      
      ## General modification
      
      1. Modularize a minimum GenericModel to introduce OverfitModel
      2. Introduce OverfitModel and ensure through unit testing that it behaves like GenericModel.
      
      ## Modularization
      
      The following methods have been extracted from GenericModel to allow modularity with ManyViewModel:
      - get_objective is now a call to weighted_sum_losses
      - log_loss_weights
      - prepare_inputs
      
      The generic methods have been moved to an utils.py file.
      
      Simplify the code to introduce OverfitModel.
      
      Private methods like chunk_generator are now public and can now be used by ManyViewModel.
      
      Reviewed By: shapovalov
      
      Differential Revision: D43771992
      
      fbshipit-source-id: 6102aeb21c7fdd56aa2ff9cd1dd23fd9fbf26315
      813e941d
  5. 27 Jan, 2023 1 commit
    • Jeremy Reizenstein's avatar
      Make Module.__init__ automatic · 9540c290
      Jeremy Reizenstein authored
      Summary: If a configurable class inherits torch.nn.Module and is instantiated, automatically call `torch.nn.Module.__init__` on it before doing anything else.
      
      Reviewed By: shapovalov
      
      Differential Revision: D42760349
      
      fbshipit-source-id: 409894911a4252b7987e1fd218ee9ecefbec8e62
      9540c290
  6. 23 Jan, 2023 2 commits
    • Roman Shapovalov's avatar
      Cleaning up camera difficulty · d561f191
      Roman Shapovalov authored
      Summary: We don’t see much value in reporting metrics by camera difficulty while supporting that in new datasets is quite painful, hence deprecating training cameras in the data API and ignoring in evaluation.
      
      Reviewed By: bottler
      
      Differential Revision: D42678879
      
      fbshipit-source-id: aad511f6cb2ca82745f31c19594e1d80594b61d7
      d561f191
    • David Novotny's avatar
      render_flyaround allow forwarding args from visualize_reconstruction · 1de2d0c8
      David Novotny authored
      Summary: Allows to send kwargs to render_flyaround from visualize_reconstruction
      
      Reviewed By: bottler, shapovalov
      
      Differential Revision: D41157683
      
      fbshipit-source-id: 74d8d7de4e991a31b14e72d76de5efdb8ab4b2c5
      1de2d0c8
  7. 16 Jan, 2023 1 commit
    • Jeremy Reizenstein's avatar
      rendered_mesh_dataset improvements · b7e3b7b1
      Jeremy Reizenstein authored
      Summary: Allow choosing the device and the distance
      
      Reviewed By: shapovalov
      
      Differential Revision: D42451605
      
      fbshipit-source-id: 214f02d09da94eb127b3cc308d5bae800dc7b9e2
      b7e3b7b1
  8. 08 Dec, 2022 1 commit
  9. 30 Nov, 2022 1 commit
    • David Novotny's avatar
      Readme updates · 5add065f
      David Novotny authored
      Summary:
      Running:
      - clearly points users to experiment.py/visualize_reconstruction.py
      Reproducing:
      - Adds NeRF training on Blender
      - Adds CO3Dv2 configs
      
      Reviewed By: bottler
      
      Differential Revision: D41534315
      
      fbshipit-source-id: e85f5f1eafed8c35c9e91d748a04f238509cf8ec
      5add065f
  10. 28 Nov, 2022 1 commit
  11. 25 Nov, 2022 1 commit
  12. 08 Nov, 2022 1 commit
    • Roman Shapovalov's avatar
      Fix: visualisation with Enums fields in Configurables · 719c33a7
      Roman Shapovalov authored
      Summary:
      Enum fields cause the following to crash since they are loaded as strings:
      ```
      config = OmegaConf.load(autodumped_cfg_file)
      Experiment(**config)
      ```
      
      It would be good to come up with the general solution but for now just fixing the visualisation script.
      
      Reviewed By: bottler
      
      Differential Revision: D41140426
      
      fbshipit-source-id: 71c1c6b1fffe3b5ab1ca0114cfa3f0d81160278f
      719c33a7
  13. 07 Nov, 2022 1 commit
    • Jeremy Reizenstein's avatar
      allow dots in param_groups · 7be49bf4
      Jeremy Reizenstein authored
      Summary:
      Allow a module's param_group member to specify overrides to the param groups of its members or their members.
      Also logging for param group assignments.
      
      This allows defining `params.basis_matrix` in the param_groups of a voxel_grid.
      
      Reviewed By: shapovalov
      
      Differential Revision: D41080667
      
      fbshipit-source-id: 49f3b0e5b36e496f78701db0699cbb8a7e20c51e
      7be49bf4
  14. 02 Nov, 2022 1 commit
    • David Novotny's avatar
      CO3Dv2 multi-category extension · e4a32981
      David Novotny authored
      Summary:
      Allows loading of multiple categories.
      Multiple categories are provided in a comma-separated list of category names.
      
      Reviewed By: bottler, shapovalov
      
      Differential Revision: D40803297
      
      fbshipit-source-id: 863938be3aa6ffefe9e563aede4a2e9e66aeeaa8
      e4a32981
  15. 31 Oct, 2022 1 commit
  16. 23 Oct, 2022 3 commits
    • Jeremy Reizenstein's avatar
      yaml test fix · ca588633
      Jeremy Reizenstein authored
      Summary: Yaml bool case fix
      
      Reviewed By: shapovalov
      
      Differential Revision: D40623031
      
      fbshipit-source-id: 29b2fba171c2cbebfa03834e38b614d07275c997
      ca588633
    • Jeremy Reizenstein's avatar
      voxel_grid_implicit_function · 74754bbf
      Jeremy Reizenstein authored
      Reviewed By: shapovalov
      
      Differential Revision: D40622304
      
      fbshipit-source-id: 277515a55c46d9b8300058b439526539a7fe00a0
      74754bbf
    • Jeremy Reizenstein's avatar
      replicate_last_interval in raymarcher · 611aba9a
      Jeremy Reizenstein authored
      Summary: Add option to flat pad the last delta. Might to help when training on rgb only.
      
      Reviewed By: shapovalov
      
      Differential Revision: D40587475
      
      fbshipit-source-id: c763fa38948600ea532c730538dc4ff29d2c3e0a
      611aba9a
  17. 22 Oct, 2022 1 commit
    • Jeremy Reizenstein's avatar
      make visdom optional · ff933ab8
      Jeremy Reizenstein authored
      Summary: Make Implicitron run without visdom installed.
      
      Reviewed By: shapovalov
      
      Differential Revision: D40587974
      
      fbshipit-source-id: dc319596c7a4d10a4c54c556dabc89ad9d25c2fb
      ff933ab8
  18. 18 Oct, 2022 1 commit
    • Jeremy Reizenstein's avatar
      different learning rate for different parts · fe5bdb2f
      Jeremy Reizenstein authored
      Summary:
      Adds the ability to have different learning rates for different parts of the model. The trainable parts of the implicitron have a new member
      
             param_groups: dictionary where keys are names of individual parameters,
                  or module’s members and values are the parameter group where the
                  parameter/member will be sorted to. "self" key is used to denote the
                  parameter group at the module level. Possible keys, including the "self" key
                  do not have to be defined. By default all parameters are put into "default"
                  parameter group and have the learning rate defined in the optimizer,
                  it can be overriden at the:
                      - module level with “self” key, all the parameters and child
                          module s parameters will be put to that parameter group
                      - member level, which is the same as if the `param_groups` in that
                          member has key=“self” and value equal to that parameter group.
                          This is useful if members do not have `param_groups`, for
                          example torch.nn.Linear.
                      - parameter level, parameter with the same name as the key
                          will be put to that parameter group.
      
      And in the optimizer factory, parameters and their learning rates are recursively gathered.
      
      Reviewed By: shapovalov
      
      Differential Revision: D40145802
      
      fbshipit-source-id: 631c02b8d79ee1c0eb4c31e6e42dbd3d2882078a
      fe5bdb2f
  19. 03 Oct, 2022 2 commits
    • Darijan Gudelj's avatar
      load whole dataset in train loop · 37bd280d
      Darijan Gudelj authored
      Summary: Loads the whole dataset and moves it to the device and sends it to for sampling to enable full dataset heterogeneous raysampling.
      
      Reviewed By: bottler
      
      Differential Revision: D39263009
      
      fbshipit-source-id: c527537dfc5f50116849656c9e171e868f6845b1
      37bd280d
    • Darijan Gudelj's avatar
      Enable mixed frame raysampling · c311a4cb
      Darijan Gudelj authored
      Summary:
      Changed ray_sampler and metrics to be able to use mixed frame raysampling.
      
      Ray_sampler now has a new member which it passes to the pytorch3d raysampler.
      If the raybundle is heterogeneous metrics now samples images by padding xys first. This reduces memory consumption.
      
      Reviewed By: bottler, kjchalup
      
      Differential Revision: D39542221
      
      fbshipit-source-id: a6fec23838d3049ae5c2fd2e1f641c46c7c927e3
      c311a4cb
  20. 22 Sep, 2022 1 commit
    • Jeremy Reizenstein's avatar
      foreach optimizers · 209c160a
      Jeremy Reizenstein authored
      Summary: Allow using the new `foreach` option on optimizers.
      
      Reviewed By: shapovalov
      
      Differential Revision: D39694843
      
      fbshipit-source-id: 97109c245b669bc6edff0f246893f95b7ae71f90
      209c160a
  21. 08 Sep, 2022 1 commit
    • Jeremy Reizenstein's avatar
      visualize_reconstruction fixes · 6e25fe8c
      Jeremy Reizenstein authored
      Summary: Various fixes to get visualize_reconstruction running, and an interactive test for it.
      
      Reviewed By: kjchalup
      
      Differential Revision: D39286691
      
      fbshipit-source-id: 88735034cc01736b24735bcb024577e6ab7ed336
      6e25fe8c
  22. 07 Sep, 2022 1 commit
    • Jeremy Reizenstein's avatar
      hydra fix · 90b758f7
      Jeremy Reizenstein authored
      Summary: Workaround for oddity with new hydra.
      
      Reviewed By: davnov134
      
      Differential Revision: D39280639
      
      fbshipit-source-id: 76e91947f633589945446db93cf2dbc259642f8a
      90b758f7
  23. 06 Sep, 2022 1 commit
    • David Novotny's avatar
      Rename and move render_flyaround into core implicitron · c79c954d
      David Novotny authored
      Summary:
      Move the flyaround rendering function into core implicitron.
      The unblocks an example in the facebookresearch/co3d repo.
      
      Reviewed By: bottler
      
      Differential Revision: D39257801
      
      fbshipit-source-id: 6841a88a43d4aa364dd86ba83ca2d4c3cf0435a4
      c79c954d
  24. 01 Sep, 2022 1 commit
  25. 30 Aug, 2022 1 commit
    • David Novotny's avatar
      CO3Dv2 trainer configs · 1163eaab
      David Novotny authored
      Summary:
      Adds yaml configs to train selected methods on CO3Dv2.
      
      Few more updates:
      1) moved some fields to base classes so that we can check is_multisequence in experiment.py
      2) skip loading all train cameras for multisequence datasets, without this, co3d-fewview is untrainable
      3) fix bug in json index dataset provider v2
      
      Reviewed By: kjchalup
      
      Differential Revision: D38952755
      
      fbshipit-source-id: 3edac6fc8e20775aa70400bd73a0e6d52b091e0c
      1163eaab
  26. 19 Aug, 2022 1 commit
    • David Novotny's avatar
      Blender config fixes · 597bc7c7
      David Novotny authored
      Summary: Fixes the blender synthetic configs.
      
      Reviewed By: kjchalup
      
      Differential Revision: D38786095
      
      fbshipit-source-id: 6d0784ced41a3f2904f074221108cdb56bd20e7f
      597bc7c7
  27. 18 Aug, 2022 1 commit
    • Jeremy Reizenstein's avatar
      remove stray "generic_model_args" references · fdaaa299
      Jeremy Reizenstein authored
      Summary:
      generic_model_args no longer exists. Update some references to it, mostly in doc.
      
      This fixes the testing of all the yaml files in test_forward pass.
      
      Reviewed By: shapovalov
      
      Differential Revision: D38789202
      
      fbshipit-source-id: f11417efe772d7f86368b3598aa66c52b1309dbf
      fdaaa299
  28. 15 Aug, 2022 1 commit
  29. 10 Aug, 2022 3 commits
    • Jeremy Reizenstein's avatar
      implicitron readme updates · 1cd0cbff
      Jeremy Reizenstein authored
      Summary: add link in main readme
      
      Reviewed By: kjchalup
      
      Differential Revision: D38560053
      
      fbshipit-source-id: 0814febb67d0580394cfa2664e49e31ff7254bd4
      1cd0cbff
    • Jeremy Reizenstein's avatar
      IT readme updates · af48430e
      Jeremy Reizenstein authored
      Summary: Updates for recent replaceables.
      
      Reviewed By: kjchalup
      
      Differential Revision: D38437370
      
      fbshipit-source-id: 00d600aa451e5849ba48107cd7a4319e9fc8549f
      af48430e
    • Jeremy Reizenstein's avatar
      LinearExponential LR · a39cad40
      Jeremy Reizenstein authored
      Summary: Linear followed by exponential LR progression. Needed for making Blender scenes converge.
      
      Reviewed By: kjchalup
      
      Differential Revision: D38557007
      
      fbshipit-source-id: ad630dbc5b8fabcb33eeb5bdeed5e4f31360bac2
      a39cad40
  30. 09 Aug, 2022 1 commit
    • Krzysztof Chalupka's avatar
      Mods and bugfixes for LLFF and Blender repros · c83ec355
      Krzysztof Chalupka authored
      Summary:
      LLFF (and most/all non-synth datasets) will have no background/foreground distinction. Add support for data with no fg mask.
      
      Also, we had a bug in stats loading, like this:
        * Load stats
        * One of the stats has a history of length 0
        * That's fine, e.g. maybe it's fg_error but the dataset has no notion of fg/bg. So leave it as len 0
        * Check whether all the stats have the same history length as an arbitrarily chosen "reference-stat"
        * Ooops the reference-stat happened to be the stat with length 0
        * assert (legit_stat_len == reference_stat_len (=0)) ---> failed assert
      
      Also some minor fixes (from Jeremy's other diff) to support LLFF
      
      Reviewed By: davnov134
      
      Differential Revision: D38475272
      
      fbshipit-source-id: 5b35ac86d1d5239759f537621f41a3aa4eb3bd68
      c83ec355
  31. 05 Aug, 2022 1 commit
    • Jeremy Reizenstein's avatar
      more globalencoder followup · 02c0254f
      Jeremy Reizenstein authored
      Summary: remove n_instances==0 special case, standardise args for GlobalEncoderBase's forward.
      
      Reviewed By: shapovalov
      
      Differential Revision: D37817340
      
      fbshipit-source-id: 0aac5fbc7c336d09be9d412cffff5712bda27290
      02c0254f
  32. 03 Aug, 2022 3 commits
    • Jeremy Reizenstein's avatar
      clean IF args · 46e82efb
      Jeremy Reizenstein authored
      Summary: continued - avoid duplicate inputs
      
      Reviewed By: davnov134
      
      Differential Revision: D38248827
      
      fbshipit-source-id: 91ed398e304496a936f66e7a70ab3d189eeb5c70
      46e82efb
    • Jeremy Reizenstein's avatar
      clean renderer args · 078846d1
      Jeremy Reizenstein authored
      Summary: continued - don't duplicate inputs
      
      Reviewed By: kjchalup
      
      Differential Revision: D38248829
      
      fbshipit-source-id: 2d56418ecbec9cc597c3cf0c122199e274661516
      078846d1
    • Jeremy Reizenstein's avatar
      clean raysampler args · f45893b8
      Jeremy Reizenstein authored
      Summary: Don't copy from one part of config to another, rather do the copy within GenericModel.
      
      Reviewed By: davnov134
      
      Differential Revision: D38248828
      
      fbshipit-source-id: ff8af985c37ea1f7df9e0aa0a45a58df34c3f893
      f45893b8