Simpler coloring function for ReLU layers.

This commit is contained in:
2018-04-06 13:55:00 +02:00
parent 368cc7c006
commit 3f3c95fd13

View File

@@ -162,6 +162,7 @@ static Animation *getReLUAnimation(const fmri::LayerData &prevState,
caffe::caffe_sub(prevState.numEntries(), curState.data(), prevState.data(), changes.data()); caffe::caffe_sub(prevState.numEntries(), curState.data(), prevState.data(), changes.data());
if (curState.shape().size() == 2) { if (curState.shape().size() == 2) {
rescale(changes.begin(), changes.end(), 0, 1);
EntryList results; EntryList results;
for (auto i : Range(curState.numEntries())) { for (auto i : Range(curState.numEntries())) {
if (curState.data()[i] > EPSILON) { if (curState.data()[i] > EPSILON) {
@@ -169,15 +170,9 @@ static Animation *getReLUAnimation(const fmri::LayerData &prevState,
} }
} }
const auto maxValue = max_element(results.begin(), results.end())->first;
return new ActivityAnimation(results, prevPositions.data(), curPositions.data(), return new ActivityAnimation(results, prevPositions.data(), curPositions.data(),
[=](float i) -> Color { [](float i) -> Color {
if (maxValue == 0) { return {1 - i, 1 - i, 1};
return {1, 1, 1, 1};
} else {
return {1 - i / maxValue, 1 - i / maxValue, 1, 1};
}
}); });
} else { } else {
return new ImageInteractionAnimation(changes.data(), prevState.shape(), prevPositions, curPositions); return new ImageInteractionAnimation(changes.data(), prevState.shape(), prevPositions, curPositions);