fix optimiser interface

git-svn-id: https://mosesdecoder.svn.sourceforge.net/svnroot/mosesdecoder/branches/mira-mtm5@3468 1f5c12ca-751b-0410-a591-d2e778427230
This commit is contained in:
bhaddow 2010-09-15 16:09:43 +00:00
parent 8c078cdde7
commit f1515e5dac
2 changed files with 17 additions and 14 deletions

View File

@ -117,22 +117,25 @@ int main(int argc, char** argv) {
//Main loop:
srand(time(NULL));
bool converged = false;
Decoder* decoder = new MosesDecoder();
Optimiser* optimiser = new DummyOptimiser();
size_t epochs = 1;
while (!converged) {
//pick sentence (TODO: batch)
int sentenceId = rand() % inputSentences.size();
const string& input = inputSentences[sentenceId];
const vector<string>& refs = referenceSentences[sentenceId];
for (size_t epoch = 0; epoch < epochs; ++epoch) {
//TODO: batch
for (size_t sid = 0; sid < inputSentences.size(); ++sid) {
const string& input = inputSentences[sid];
const vector<string>& refs = referenceSentences[sid];
//run decoder (TODO: hope & fear)
TrellisPathList sentences;
decoder->getNBest(input, 100, sentences);
//run optimiser
//run decoder (TODO: hope & fear)
TrellisPathList sentences;
decoder->getNBest(input, 100, sentences);
//extract scores from nbest + oracle
//update moses weights
//run optimiser
//update moses weights
}
}

View File

@ -30,7 +30,7 @@ namespace Mira {
public:
virtual void updateWeights(const Moses::ScoreComponentCollection& currWeights,
const std::vector< std::vector<Moses::ScoreComponentCollection> >& scores,
const std::vector<float>& losses,
const std::vector<std::vector<float> >& losses,
const Moses::ScoreComponentCollection oracleScores,
Moses::ScoreComponentCollection& newWeights) = 0;
};
@ -39,9 +39,9 @@ namespace Mira {
public:
virtual void updateWeights(const Moses::ScoreComponentCollection& currWeights,
const std::vector< std::vector<Moses::ScoreComponentCollection> >& scores,
const std::vector<float>& losses,
const std::vector<std::vector<float> >& losses,
const Moses::ScoreComponentCollection oracleScores,
Moses::ScoreComponentCollection& newWeights) {/* do nothing */}
Moses::ScoreComponentCollection& newWeights) {newWeights = currWeights;}
};
}