Open grfrederic opened 6 months ago
@grfrederic The reason for this is the following:
ISampler
may need additional arguments to calculate mutual information (as we do with BMMs, which collect MC samples. Here one can potentially specify the required number of samples. I also recall that we used it in some discrete-continuous estimators where MI is analytically known as an infinite series and we truncate it after a given number of terms). Task
is supposed to already know MI. I.e., for ISampler
.mutual_information(k)
may have complexity $\mathcal O(f(k))$ and for Task
querying .mutual_information
property is supposed to be $\mathcal O(1)$..mutual_information()
to Task
for consistency?
In our samplers
.mutual_information()
is a callable method, in tasks it is a@property
. It would be nice for them to be consistent.