-
Notifications
You must be signed in to change notification settings - Fork 119
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
ContentLoss is a super class of multiple feature-based metrics including DISTS. However, there is a semantic discrepancy between these two for parameters such as weights and layers:
- For
ContentLoss:weightsis a collection of scalars, which are used to scale feature outputs fromlayers; - For
DISTS:weightsis a collection of scalars, which are used to scale features that are computed in a sophisticated way, provided by the customself.distancefunction, which produces two types of features (structure_distanceandtexture_distance), which also include the initial data tensor.
This misalignment leads to the following: in general case len(weights) == len(layers) because otherwise some weights or layers are ignores and not used during computation of the feature-based metric. However, neither assert nor warning can be used in the ContentLoss class because it will provide incorrect behaviour for DISTS.
To Reproduce
Steps to reproduce the behavior:
- Put
assert len(layers) == len(weights)in the initializer for theContentLossclass; - Run tests or manually run code with feature-based metrics;
- Observe that initialization of
DISTSfails due to the added assert; - Observe error message, where
len(layers) == 5andlen(weights) == 12.
Expected behavior
All feature-based metrics have the same semantic for passed parameters.
Additional context
The problem was revealed during work on #258
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working