Program Listing for File run.h
↰ Return to documentation for file (include/cpphots/run.h)
#ifndef CPPHOTS_RUN_H
#define CPPHOTS_RUN_H
#include <vector>
#include <string>
#include <utility>
#include "layer.h"
#include "network.h"
#include "classification.h"
namespace cpphots {
template<typename P>
Events process(P& processor, const Events& events, bool reset = true, bool skip_check = false) {
if (reset) {
processor.reset();
}
Events ret;
for (const auto& ev : events) {
auto rev = processor.process(ev, skip_check);
if (rev != invalid_event)
ret.push_back(rev);
}
return ret;
}
template<typename P>
std::vector<Events> process(P& processor, const std::vector<Events>& events, bool reset = true, bool skip_check = false) {
std::vector<Events> ret;
for (const auto& evts : events) {
ret.push_back(process(processor, evts, reset, skip_check));
}
return ret;
}
template <typename TSC>
std::vector<TimeSurfaceType> generateTS(TSC& calculator, const Events& events, bool reset = true, bool skip_check = false) {
if (reset) {
calculator.reset();
}
std::vector<TimeSurfaceType> ret;
for (const auto& ev : events) {
auto [ts, good] = calculator.updateAndCompute(ev);
if (good || skip_check) {
ret.push_back(ts);
}
}
return ret;
}
template <typename TSC>
std::vector<std::vector<TimeSurfaceType>> generateTS(TSC& calculator, const std::vector<Events>& events, bool reset = true, bool skip_check = false) {
std::vector<std::vector<TimeSurfaceType>> ret;
for (const auto& evts : events) {
ret.push_back(generateTS(calculator, evts, reset, skip_check));
}
return ret;
}
Events train(Network& network, Events training_events, const ClustererSeedingType& seeding, bool skip_check = false);
std::vector<Events> train(Network& network, std::vector<Events> training_events, const ClustererSeedingType& seeding, bool use_all = true, bool skip_check = false);
}
#endif