6#ifndef DEEPLIMA_LIBS_NN_BIRNN_SEQ2SEQ_H
7#define DEEPLIMA_LIBS_NN_BIRNN_SEQ2SEQ_H
24 const std::vector<embd_descr_t>& encoder_embd_descr,
25 const std::vector<rnn_descr_t>& encoder_rnn_descr,
26 const std::vector<embd_descr_t>& decoder_embd_descr,
27 const std::vector<rnn_descr_t>& decoder_rnn_descr,
28 const std::vector<embd_descr_t>& cat_embd_descr)
31 decoder_embd_descr, decoder_rnn_descr,
32 cat_embd_descr, dicts[1]->size())),
37 virtual void load(torch::serialize::InputArchive& archive);
38 virtual void save(torch::serialize::OutputArchive& archive)
const;
40 void evaluate(
const std::vector<std::string>& output_names,
44 const torch::Device& device = torch::Device(torch::kCPU));
47 std::string
generate_script(
const std::vector<embd_descr_t>& encoder_embd_descr,
48 const std::vector<rnn_descr_t>& encoder_rnn_descr,
49 const std::vector<embd_descr_t>& decoder_embd_descr,
50 const std::vector<rnn_descr_t>& decoder_rnn_descr,
51 const std::vector<embd_descr_t>& cat_embd_descr,
52 size_t n_output_classes);
54 void train_batch(
const std::vector<std::string>& output_names,
55 const torch::Tensor& input,
56 const std::vector<torch::Tensor>& input_cat,
57 const torch::Tensor& target,
58 torch::optim::Optimizer& opt,
60 const torch::Device& device);
64 const std::vector<T>& b,
65 const std::vector<T>& c = {})
67 std::vector<T> out = a;
68 out.insert(out.end(), b.begin(), b.end());
69 out.insert(out.end(), c.begin(), c.end());
78 torch::serialize::OutputArchive& archive,
86 torch::serialize::InputArchive& archive,
std::string generate_script(const std::vector< embd_descr_t > &encoder_embd_descr, const std::vector< rnn_descr_t > &encoder_rnn_descr, const std::vector< embd_descr_t > &decoder_embd_descr, const std::vector< rnn_descr_t > &decoder_rnn_descr, const std::vector< embd_descr_t > &cat_embd_descr, size_t n_output_classes)
void train_batch(const std::vector< std::string > &output_names, const torch::Tensor &input, const std::vector< torch::Tensor > &input_cat, const torch::Tensor &target, torch::optim::Optimizer &opt, epoch_stat_t &stat, const torch::Device &device)
std::vector< embd_descr_t > m_cat_embd_descr
virtual void save(torch::serialize::OutputArchive &archive) const
virtual void load(torch::serialize::InputArchive &archive)
static std::vector< T > concatenate(const std::vector< T > &a, const std::vector< T > &b, const std::vector< T > &c={})
void evaluate(const std::vector< std::string > &output_names, const TorchMatrix< int64_t > &input, const TorchMatrix< int64_t > &gold, epoch_stat_t &stat, const torch::Device &device=torch::Device(torch::kCPU))
BiRnnSeq2SeqImpl(DictsHolder &&dicts, const std::vector< embd_descr_t > &encoder_embd_descr, const std::vector< rnn_descr_t > &encoder_rnn_descr, const std::vector< embd_descr_t > &decoder_embd_descr, const std::vector< rnn_descr_t > &decoder_rnn_descr, const std::vector< embd_descr_t > &cat_embd_descr)
torch::serialize::OutputArchive & operator<<(torch::serialize::OutputArchive &archive, const BiRnnSeq2SeqImpl &module)
std::map< std::string, task_stat_t > epoch_stat_t
torch::serialize::InputArchive & operator>>(torch::serialize::InputArchive &archive, BiRnnSeq2SeqImpl &module)
TORCH_MODULE(BiRnnSeq2Seq)