mirror of
https://github.com/moses-smt/mosesdecoder.git
synced 2025-01-02 17:09:36 +03:00
delete beam threshold variable, keep worse score discarding
This commit is contained in:
parent
525d7272e1
commit
b572841b09
@ -22,8 +22,8 @@ HypothesisColl::HypothesisColl(const ManagerBase &mgr)
|
|||||||
:m_coll(MemPoolAllocator<const HypothesisBase*>(mgr.GetPool()))
|
:m_coll(MemPoolAllocator<const HypothesisBase*>(mgr.GetPool()))
|
||||||
,m_sortedHypos(NULL)
|
,m_sortedHypos(NULL)
|
||||||
{
|
{
|
||||||
m_bestScore = -std::numeric_limits<float>::infinity();
|
//m_bestScore = -std::numeric_limits<float>::infinity();
|
||||||
m_minBeamScore = -std::numeric_limits<float>::infinity();
|
//m_minBeamScore = -std::numeric_limits<float>::infinity();
|
||||||
m_worseScore = std::numeric_limits<float>::infinity();
|
m_worseScore = std::numeric_limits<float>::infinity();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,15 +63,21 @@ void HypothesisColl::Add(
|
|||||||
<< GetSize() << " "
|
<< GetSize() << " "
|
||||||
<< endl;
|
<< endl;
|
||||||
*/
|
*/
|
||||||
if (futureScore < m_minBeamScore
|
if (GetSize() >= stackSize && futureScore < m_worseScore) {
|
||||||
|| (GetSize() >= stackSize) && futureScore < m_worseScore ) {
|
|
||||||
// beam threshold or really bad hypo that won't make the pruning cut
|
// beam threshold or really bad hypo that won't make the pruning cut
|
||||||
// as more hypos are added, the m_worseScore stat gets out of date and isn't the optimum cut-off point
|
// as more hypos are added, the m_worseScore stat gets out of date and isn't the optimum cut-off point
|
||||||
//cerr << "Discard:" << hypo->Debug(system) << endl;
|
//cerr << "Discard, really bad score:" << hypo->Debug(system) << endl;
|
||||||
|
hypoRecycle.Recycle(hypo);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
if (futureScore < m_minBeamScore) {
|
||||||
|
// beam threshold or really bad hypo that won't make the pruning cut
|
||||||
|
// as more hypos are added, the m_worseScore stat gets out of date and isn't the optimum cut-off point
|
||||||
|
//cerr << "Discard, below beam:" << hypo->Debug(system) << endl;
|
||||||
hypoRecycle.Recycle(hypo);
|
hypoRecycle.Recycle(hypo);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//cerr << "OK:" << hypo->Debug(system) << endl;
|
|
||||||
|
|
||||||
if (futureScore > m_bestScore) {
|
if (futureScore > m_bestScore) {
|
||||||
m_bestScore = hypo->GetFutureScore();
|
m_bestScore = hypo->GetFutureScore();
|
||||||
@ -83,6 +89,8 @@ void HypothesisColl::Add(
|
|||||||
m_minBeamScore = m_bestScore + beamWidth;
|
m_minBeamScore = m_bestScore + beamWidth;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//cerr << "OK:" << hypo->Debug(system) << endl;
|
||||||
|
*/
|
||||||
|
|
||||||
StackAdd added = Add(hypo);
|
StackAdd added = Add(hypo);
|
||||||
|
|
||||||
@ -211,8 +219,9 @@ void HypothesisColl::Clear()
|
|||||||
{
|
{
|
||||||
m_sortedHypos = NULL;
|
m_sortedHypos = NULL;
|
||||||
m_coll.clear();
|
m_coll.clear();
|
||||||
m_bestScore = -std::numeric_limits<float>::infinity();
|
|
||||||
m_minBeamScore = -std::numeric_limits<float>::infinity();
|
//m_bestScore = -std::numeric_limits<float>::infinity();
|
||||||
|
//m_minBeamScore = -std::numeric_limits<float>::infinity();
|
||||||
m_worseScore = std::numeric_limits<float>::infinity();
|
m_worseScore = std::numeric_limits<float>::infinity();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,7 +60,9 @@ protected:
|
|||||||
_HCType m_coll;
|
_HCType m_coll;
|
||||||
mutable Hypotheses *m_sortedHypos;
|
mutable Hypotheses *m_sortedHypos;
|
||||||
|
|
||||||
SCORE m_bestScore, m_worseScore, m_minBeamScore;
|
//SCORE m_bestScore;
|
||||||
|
SCORE m_worseScore;
|
||||||
|
//SCORE m_minBeamScore;
|
||||||
|
|
||||||
StackAdd Add(const HypothesisBase *hypo);
|
StackAdd Add(const HypothesisBase *hypo);
|
||||||
void SortAndPruneHypos(const ManagerBase &mgr, ArcLists &arcLists) const;
|
void SortAndPruneHypos(const ManagerBase &mgr, ArcLists &arcLists) const;
|
||||||
|
Loading…
Reference in New Issue
Block a user