6#ifndef DEEPLIMA_LIBS_TASKS_GRAPH_DP_BIRNN_AND_DEEP_BIAFFINE_ATTENTION_H
7#define DEEPLIMA_LIBS_TASKS_GRAPH_DP_BIRNN_AND_DEEP_BIAFFINE_ATTENTION_H
33 const std::vector<nets::embd_descr_t>& embd_descr,
34 const std::vector<nets::rnn_descr_t>& rnn_descr,
35 const std::vector<nets::deep_biaffine_attention_descr_t>& decoder_descr,
36 const std::vector<std::string>& output_names,
38 const std::string& embd_fn,
39 bool input_includes_root,
40 int64_t num_labels = 0,
41 const std::vector<std::string>& rel_class_names = {})
44 generate_script(embd_descr, rnn_descr, decoder_descr, output_names, input_includes_root, num_labels)
54 for (
const auto& d : embd_descr )
60 virtual void load(torch::serialize::InputArchive& archive);
61 virtual void save(torch::serialize::OutputArchive& archive)
const;
63 void load(
const std::string& fn)
65 torch::load(*
this, fn, torch::Device(torch::kCPU));
74 const std::vector<std::string>& output_names,
77 torch::optim::Optimizer& opt,
78 double& best_eval_accuracy,
79 const torch::Device& device = torch::Device(torch::kCPU));
81 void evaluate(
const std::vector<std::string>& output_names,
82 std::shared_ptr<BatchIterator> dataset_iterator,
84 const torch::Device& device = torch::Device(torch::kCPU));
87 const torch::Tensor& inputs,
93 const std::vector<std::string>& outputs_names,
94 const torch::Device& device = torch::Device(torch::kCPU));
126 const std::vector<std::string>& output_names,
127 std::shared_ptr<BatchIterator> train_iterator,
128 torch::optim::Optimizer& opt,
130 const torch::Device& device);
134 const std::vector<std::string>& output_names,
135 const torch::Tensor& trainable_input,
136 const torch::Tensor& nontrainable_input,
137 const torch::Tensor& gold,
138 torch::optim::Optimizer& opt,
140 const torch::Device& device);
142 void evaluate(
const std::vector<std::string>& output_names,
143 const torch::Tensor& trainable_input,
144 const torch::Tensor& nontrainable_input,
145 const torch::Tensor& gold,
147 const torch::Device& device);
149 static std::string
generate_script(
const std::vector<nets::embd_descr_t>& embd_descr,
150 const std::vector<nets::rnn_descr_t>& rnn_descr,
151 const std::vector<nets::deep_biaffine_attention_descr_t>& decoder_descr,
152 const std::vector<std::string>& output_names,
153 bool input_includes_root=
false,
168 torch::serialize::OutputArchive& archive,
171 module.save(archive);
176 torch::serialize::InputArchive& archive,
179 module.load(archive);
BiRnnAndDeepBiaffineAttentionImpl()
const DictsHolder & get_classes() const
std::vector< std::string > m_input_class_names
BiRnnAndDeepBiaffineAttentionImpl(DictsHolder &&dicts, const std::vector< nets::embd_descr_t > &embd_descr, const std::vector< nets::rnn_descr_t > &rnn_descr, const std::vector< nets::deep_biaffine_attention_descr_t > &decoder_descr, const std::vector< std::string > &output_names, DictsHolder &&classes, const std::string &embd_fn, bool input_includes_root, int64_t num_labels=0, const std::vector< std::string > &rel_class_names={})
DictsHolder dicts_holder_t
const std::vector< std::string > & get_rel_class_names() const
std::vector< std::string > m_output_class_names
DictsHolder m_output_classes
DictsHolder m_input_classes
void train_batch(size_t batch_size, size_t seq_len, const std::vector< std::string > &output_names, const torch::Tensor &trainable_input, const torch::Tensor &nontrainable_input, const torch::Tensor &gold, torch::optim::Optimizer &opt, nets::epoch_stat_t &stat, const torch::Device &device)
void train_epoch(size_t batch_size, size_t seq_len, const std::vector< std::string > &output_names, std::shared_ptr< BatchIterator > train_iterator, torch::optim::Optimizer &opt, nets::epoch_stat_t &stat, const torch::Device &device)
void predict(size_t worker_id, const torch::Tensor &inputs, int64_t input_begin, int64_t input_end, int64_t output_begin, int64_t output_end, std::shared_ptr< StdMatrix< uint8_t > > &output, const std::vector< std::string > &outputs_names, const torch::Device &device=torch::Device(torch::kCPU))
std::vector< std::string > m_rel_class_names
const std::vector< std::string > & get_output_class_names() const
virtual void load(torch::serialize::InputArchive &archive)
void load(const std::string &fn)
const std::vector< std::string > & get_input_class_names() const
const std::string & get_embd_fn(size_t idx) const
size_t init_new_worker(size_t)
virtual void save(torch::serialize::OutputArchive &archive) const
void evaluate(const std::vector< std::string > &output_names, std::shared_ptr< BatchIterator > dataset_iterator, nets::epoch_stat_t &stat, const torch::Device &device=torch::Device(torch::kCPU))
static std::string generate_script(const std::vector< nets::embd_descr_t > &embd_descr, const std::vector< nets::rnn_descr_t > &rnn_descr, const std::vector< nets::deep_biaffine_attention_descr_t > &decoder_descr, const std::vector< std::string > &output_names, bool input_includes_root=false, int64_t num_labels=0)
torch::serialize::OutputArchive & operator<<(torch::serialize::OutputArchive &archive, const BiRnnAndDeepBiaffineAttentionImpl &module)
TORCH_MODULE(BiRnnAndDeepBiaffineAttention)
torch::serialize::InputArchive & operator>>(torch::serialize::InputArchive &archive, BiRnnAndDeepBiaffineAttentionImpl &module)
std::map< std::string, task_stat_t > epoch_stat_t