Commit 05f1045c219a118b3b5a7111d896496f955510d6
1 parent
5b392f42
Cross validation bug fix
Showing
2 changed files
with
28 additions
and
23 deletions
openbr/core/bee.cpp
openbr/openbr_plugin.cpp
| ... | ... | @@ -134,7 +134,7 @@ void File::set(const QString &key, const QVariant &value) |
| 134 | 134 | then it was probably intended to be a string UID |
| 135 | 135 | and that it's numerical value is not relevant. */ |
| 136 | 136 | if (value.canConvert(QVariant::Double) && |
| 137 | - (!valueString.startsWith('0') || (valueString == "0"))) | |
| 137 | + (!valueString.startsWith('0') || (valueString == "0"))) | |
| 138 | 138 | value.toFloat(&ok); |
| 139 | 139 | |
| 140 | 140 | if (!ok && !Globals->classes.contains(valueString)) |
| ... | ... | @@ -427,16 +427,19 @@ TemplateList TemplateList::fromGallery(const br::File &gallery) |
| 427 | 427 | newTemplates[i].file.append(gallery.localMetadata()); |
| 428 | 428 | newTemplates[i].file.append(file.localMetadata()); |
| 429 | 429 | newTemplates[i].file.set("Index", i+templates.size()); |
| 430 | - if (newTemplates[i].file.getBool("allPartitions") && crossValidate > 0) { | |
| 431 | - // Set template to the first parition | |
| 432 | - newTemplates[i].file.set("Cross_Validation_Partition", QVariant(0)); | |
| 433 | - for (int j=crossValidate-1; j>=1; j--) { | |
| 434 | - Template allPartitionTemplate = newTemplates[i]; | |
| 435 | - allPartitionTemplate.file.set("Cross_Validation_Partition", j); | |
| 436 | - allPartitionTemplate.file.set("Label", i+templates.size()); | |
| 437 | - // Insert templates for all the other partitions | |
| 438 | - newTemplates.insert(i+1, allPartitionTemplate); | |
| 430 | + if (newTemplates[i].file.getBool("allPartitions")) { | |
| 431 | + if (crossValidate > 0) { | |
| 432 | + // Set template to the first parition | |
| 433 | + newTemplates[i].file.set("Cross_Validation_Partition", QVariant(0)); | |
| 434 | + for (int j=crossValidate-1; j>=1; j--) { | |
| 435 | + Template allPartitionTemplate = newTemplates[i]; | |
| 436 | + allPartitionTemplate.file.set("Cross_Validation_Partition", j); | |
| 437 | + allPartitionTemplate.file.set("Label", i+templates.size()); | |
| 438 | + // Insert templates for all the other partitions | |
| 439 | + newTemplates.insert(i+1, allPartitionTemplate); | |
| 440 | + } | |
| 439 | 441 | } |
| 442 | + else newTemplates[i].file.set("Label", i+templates.size()); | |
| 440 | 443 | } |
| 441 | 444 | else if (crossValidate > 0) newTemplates[i].file.set("Cross_Validation_Partition", rand()%crossValidate); |
| 442 | 445 | } |
| ... | ... | @@ -675,7 +678,7 @@ void Object::setProperty(const QString &name, const QString &value) |
| 675 | 678 | |
| 676 | 679 | if (!QObject::setProperty(qPrintable(name), variant) && !type.isEmpty()) |
| 677 | 680 | qFatal("Failed to set %s::%s to: %s %s", |
| 678 | - metaObject()->className(), qPrintable(name), qPrintable(value), qPrintable(type)); | |
| 681 | + metaObject()->className(), qPrintable(name), qPrintable(value), qPrintable(type)); | |
| 679 | 682 | } |
| 680 | 683 | |
| 681 | 684 | QStringList br::Object::parse(const QString &string, char split) |
| ... | ... | @@ -924,17 +927,17 @@ void br::Context::messageHandler(QtMsgType type, const QMessageLogContext &conte |
| 924 | 927 | |
| 925 | 928 | QString txt; |
| 926 | 929 | switch (type) { |
| 927 | - case QtDebugMsg: | |
| 930 | + case QtDebugMsg: | |
| 928 | 931 | if (Globals->quiet) return; |
| 929 | 932 | txt = QString("%1\n").arg(msg); |
| 930 | 933 | break; |
| 931 | - case QtWarningMsg: | |
| 934 | + case QtWarningMsg: | |
| 932 | 935 | txt = QString("Warning: %1\n").arg(msg); |
| 933 | 936 | break; |
| 934 | - case QtCriticalMsg: | |
| 937 | + case QtCriticalMsg: | |
| 935 | 938 | txt = QString("Critical: %1\n").arg(msg); |
| 936 | 939 | break; |
| 937 | - case QtFatalMsg: | |
| 940 | + case QtFatalMsg: | |
| 938 | 941 | txt = QString("Fatal: %1\n").arg(msg); |
| 939 | 942 | break; |
| 940 | 943 | } |
| ... | ... | @@ -1074,8 +1077,8 @@ static TemplateList Downsample(const TemplateList &templates, const Transform *t |
| 1074 | 1077 | { |
| 1075 | 1078 | // Return early when no downsampling is required |
| 1076 | 1079 | if ((transform->classes == std::numeric_limits<int>::max()) && |
| 1077 | - (transform->instances == std::numeric_limits<int>::max()) && | |
| 1078 | - (transform->fraction >= 1)) | |
| 1080 | + (transform->instances == std::numeric_limits<int>::max()) && | |
| 1081 | + (transform->fraction >= 1)) | |
| 1079 | 1082 | return templates; |
| 1080 | 1083 | |
| 1081 | 1084 | const bool atLeast = transform->instances < 0; |
| ... | ... | @@ -1134,12 +1137,12 @@ class Independent : public MetaTransform |
| 1134 | 1137 | Q_PROPERTY(QList<Transform*> transforms READ get_transforms WRITE set_transforms STORED false) |
| 1135 | 1138 | BR_PROPERTY(QList<Transform*>, transforms, QList<Transform*>()) |
| 1136 | 1139 | |
| 1137 | -public: | |
| 1138 | - /*! | |
| 1139 | - * \brief Independent | |
| 1140 | - * \param transform | |
| 1141 | - */ | |
| 1142 | - Independent(Transform *transform) | |
| 1140 | + public: | |
| 1141 | + /*! | |
| 1142 | + * \brief Independent | |
| 1143 | + * \param transform | |
| 1144 | + */ | |
| 1145 | + Independent(Transform *transform) | |
| 1143 | 1146 | { |
| 1144 | 1147 | transform->setParent(this); |
| 1145 | 1148 | transforms.append(transform); | ... | ... |