25 : test_data_(max_memory), total_pages_(0), async_running_(false) {}
33 tprintf(
"Failed to load list of eval filenames from %s\n",
56 if (total_pages_ == 0) {
57 result.
add_str_int(
"No test data at iteration", iteration);
60 if (!LockIfNotRunning()) {
61 result.
add_str_int(
"Previous test incomplete, skipping test at iteration",
66 STRING prev_result = test_result_;
68 if (training_errors !=
nullptr) {
69 test_iteration_ = iteration;
70 test_training_errors_ = training_errors;
71 test_model_data_ = model_data;
72 test_training_stage_ = training_stage;
87 return "Deserialize failed";
89 int eval_iteration = 0;
90 double char_error = 0.0;
91 double word_error = 0.0;
93 while (error_count < total_pages_) {
104 char_error *= 100.0 / total_pages_;
105 word_error *= 100.0 / total_pages_;
121 void* LSTMTester::ThreadFunc(
void* lstmtester_void) {
123 lstmtester->test_result_ = lstmtester->
RunEvalSync(
124 lstmtester->test_iteration_, lstmtester->test_training_errors_,
125 lstmtester->test_model_data_, lstmtester->test_training_stage_);
126 lstmtester->UnlockRunning();
127 return lstmtester_void;
132 bool LSTMTester::LockIfNotRunning() {
134 if (async_running_)
return false;
135 async_running_ =
true;
140 void LSTMTester::UnlockRunning() {
142 async_running_ =
false;
const ImageData * GetPageBySerial(int serial)
void add_str_int(const char *str, int number)
const char * string() const
LSTMTester(inT64 max_memory)
bool ReadTrainingDump(const GenericVector< char > &data, LSTMTrainer *trainer)
static void StartThread(void *(*func)(void *), void *arg)
Create new thread.
double NewSingleError(ErrorTypes type) const
void add_str_double(const char *str, double number)
bool LoadFileLinesToStrings(const STRING &filename, GenericVector< STRING > *lines)
bool LoadDocuments(const GenericVector< STRING > &filenames, CachingStrategy cache_strategy, FileReader reader)
STRING RunEvalSync(int iteration, const double *training_errors, const GenericVector< char > &model_data, int training_stage)
Trainability PrepareForBackward(const ImageData *trainingdata, NetworkIO *fwd_outputs, NetworkIO *targets)
bool LoadAllEvalData(const STRING &filenames_file)
void SetIteration(int iteration)
STRING RunEvalAsync(int iteration, const double *training_errors, const GenericVector< char > &model_data, int training_stage)