Fix edit of default values #3620
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixed instantiation of VanillaDataManager and ParallelDataManager to avoid modifying the default values of exclude_batch_keys_from_device from InputDataset.
In previous implementation, if masks_on_gpu is true, values are removed from the array. However, the variable contains a reference to the default array in InputDataset. Therefore, the default array is modified, and next instantiations of any InputDataset will have a truncated array without the removed value. Next VanillaDataManager or ParallelDataManager instantiation will then fail to remove the value from the array (because the array does not have it anymore) and will raise an exception aborting everything.
I initially encountered this bug on FullImageDatamanager on the current version of pip package, but the offending code have been removed on master. I have no clue if it was it a quick and dirty fix to this problem or if this code was useless to begin with. This bug is only exhibited when using directly the python API and chaining multiple process. In my case, it happended after calling the train.main method with the splatfacto config, then reloading this config in ExportGaussianSplat to save the ply file.