Welcome to mirror list, hosted at ThFree Co, Russian Federation.

SearchNormalBatch.h « moses - github.com/moses-smt/mosesdecoder.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 1e8acc57929f2d6d460e2d555327b419578c3f62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#ifndef moses_SearchNormalBatch_h
#define moses_SearchNormalBatch_h

#include "SearchNormal.h"
#include "SentenceStats.h"

namespace Moses
{

class Manager;
class InputType;
class TranslationOptionCollection;

/** Implements the phrase-based stack decoding algorithm (no cube pruning) with a twist...
 *  Language model requests are batched together, duplicate requests are removed, and requests are sent together.
 *  Useful for distributed LM where network latency is an issue.
 */
class SearchNormalBatch: public SearchNormal
{
protected:

  // Added for asynclm decoding.
  std::vector<const StatelessFeatureFunction*> m_stateless_ffs;
  std::map<int, LanguageModel*> m_dlm_ffs;
  std::map<int, StatefulFeatureFunction*> m_stateful_ffs;
  std::vector<Hypothesis*> m_partial_hypos;
  uint32_t m_batch_size;
  int m_max_stack_size;

  // functions for creating hypotheses
  void ExpandHypothesis(const Hypothesis &hypothesis,const TranslationOption &transOpt, float expectedScore);
  void EvalAndMergePartialHypos();

public:
  SearchNormalBatch(Manager& manager, const InputType &source, const TranslationOptionCollection &transOptColl);
  ~SearchNormalBatch();

  void Decode();

};

}

#endif