-
Notifications
You must be signed in to change notification settings - Fork 123
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
:weights
is a collection of scalars, which are used to scale feature outputs fromlayers
; - For
DISTS
:weights
is a collection of scalars, which are used to scale features that are computed in a sophisticated way, provided by the customself.distance
function, which produces two types of features (structure_distance
andtexture_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 theContentLoss
class; - Run tests or manually run code with feature-based metrics;
- Observe that initialization of
DISTS
fails due to the added assert; - Observe error message, where
len(layers) == 5
andlen(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
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working