Skip to content

Commit 8c0f4e7

Browse files
committed
Bug fixes, minmax off for single outputs.
1 parent 6ed01a4 commit 8c0f4e7

File tree

3 files changed

+7
-6
lines changed

3 files changed

+7
-6
lines changed

nn/nn.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ namespace nn {
179179
* @param originalMax The original maximum value of the data before normalization
180180
* @return Denormalized data vector
181181
*/
182-
vd_t inverse_minmax(const vd_t &data, double originalMin, double originalMax);
182+
vd_t inverseMinmax(const vd_t &data, double originalMin, double originalMax);
183183
}
184184

185185
/**

nn/src/module.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ void Module::NormalizedData::set(const vvd_t &data) {
3030
minMax.reserve(data.size());
3131
for (const vd_t &line: data) {
3232
double minVal = *std::min_element(line.begin(), line.end());
33-
double maxVal = *std::min_element(line.begin(), line.end());
33+
double maxVal = *std::max_element(line.begin(), line.end());
3434
normalized.push_back(process::minmax(line));
3535
minMax.emplace_back(minVal, maxVal);
3636
}
@@ -44,7 +44,7 @@ vvd_t Module::NormalizedData::get(const vvd_t &processed) const {
4444
vvd_t original;
4545
original.reserve(processed.size());
4646
for (std::size_t i = 0; i < processed.size(); ++i) {
47-
original.push_back(process::inverse_minmax(processed[i], minMax[i].first, minMax[i].second));
47+
original.push_back(process::inverseMinmax(processed[i], minMax[i].first, minMax[i].second));
4848
}
4949
return original;
5050
}

nn/src/process.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@
88
using namespace nn;
99

1010
vd_t process::minmax(const vd_t &data) {
11+
if (data.size() == 1) { return {data[0]}; } // turn off for single outputs
1112
double minVal = *std::min_element(data.begin(), data.end());
1213
double maxVal = *std::max_element(data.begin(), data.end());
13-
if (minVal == maxVal) { return {(data.size(), 0.5)}; }
14+
if (minVal == maxVal) { return vd_t(data.size(), 0.5); }
1415

1516
vd_t normalized(data.size());
1617
std::transform(data.begin(), data.end(), normalized.begin(), [minVal, maxVal](double x) {
@@ -19,8 +20,8 @@ vd_t process::minmax(const vd_t &data) {
1920
return normalized;
2021
}
2122

22-
vd_t process::inverse_minmax(const vd_t &data, double originalMin, double originalMax) {
23-
if (originalMin == originalMax) { return {(data.size(), originalMin)}; }
23+
vd_t process::inverseMinmax(const vd_t &data, double originalMin, double originalMax) {
24+
if (data.size() == 1) { return {data[0]}; } // turn off for single outputs
2425
vd_t denormalized(data.size());
2526
std::transform(data.begin(), data.end(), denormalized.begin(), [originalMin, originalMax](double x) {
2627
return x * (originalMax - originalMin) + originalMin;

0 commit comments

Comments
 (0)