Program Listing for File vector_collector.h¶
↰ Return to documentation for file (src/embedder/vector_collector.h
)
#pragma once
#include "common/options.h"
#include "common/definitions.h"
#include "common/file_stream.h"
#include <map>
#include <mutex>
namespace marian {
// This class manages multi-threaded writing of embedded vectors to stdout or an output file.
// It will either output string versions of float vectors or binary equal length versions depending
// on its binary_ flag.
class VectorCollector {
public:
VectorCollector(const Ptr<Options>& options);
virtual ~VectorCollector() {}
virtual void Write(long id, const std::vector<float>& vec);
protected:
long nextId_{0};
UPtr<std::ostream> outStrm_;
bool binary_; // output binary floating point vectors if set
std::mutex mutex_;
typedef std::map<long, std::vector<float>> Outputs;
Outputs outputs_;
virtual void WriteVector(const std::vector<float>& vec);
};
} // namespace marian