46 const std::vector<embd_descr_t>& embd_descr,
47 const std::vector<rnn_descr_t>& rnn_descr,
48 const std::vector<std::string>& output_names,
49 const std::vector<uint32_t>& classes,
50 float input_dropout_prob)
52 generate_script(embd_descr, rnn_descr, output_names, classes, input_dropout_prob)),
58 const std::vector<embd_descr_t>& embd_descr,
59 const std::string& script)
70 virtual void load(torch::serialize::InputArchive& archive);
71 virtual void save(torch::serialize::OutputArchive& archive)
const;
73 void train(
size_t epochs,
76 const std::vector<std::string>& output_names,
81 torch::optim::Optimizer& opt,
82 const std::string& model_name =
"",
83 const torch::Device& device = torch::Device(torch::kCPU));
85 void evaluate(
const std::vector<std::string>& output_name,
89 const torch::Device& device = torch::Device(torch::kCPU));
91 torch::Tensor
predict(
const std::string& output_name,
92 const torch::Tensor& input,
93 const torch::Device& device = torch::Device(torch::kCPU));
95 torch::Tensor
predict(
const std::vector<std::string>& output_names,
96 const torch::Tensor& input,
97 const torch::Device& device = torch::Device(torch::kCPU));
100 const torch::Tensor& inputs,
103 int64_t output_begin,
106 const std::vector<std::string>& outputs_names,
107 const torch::Device& device = torch::Device(torch::kCPU));
112 std::map<std::string, torch::Tensor>& dst,
113 const torch::Device& device);
115 void evaluate(
const std::vector<std::string>& output_names,
116 const std::map<std::string, torch::Tensor>& input,
117 const torch::Tensor& target,
119 const torch::Device& device);
123 const std::vector<std::string>& output_names,
124 const torch::Tensor& input_batches,
125 const torch::Tensor& gold_batches,
126 torch::optim::Optimizer& opt,
128 const torch::Device& device);
132 const std::vector<std::string>& output_names,
133 const torch::Tensor& input,
134 const torch::Tensor& gold,
135 torch::optim::Optimizer& opt,
137 const torch::Device& device);
141 const std::vector<std::string>& output_names,
142 const std::map<std::string, torch::Tensor>& input,
143 const torch::Tensor& target,
144 torch::optim::Optimizer& opt,
146 const torch::Device& device);
148 static std::string
generate_script(
const std::vector<embd_descr_t>& embd_descr,
149 const std::vector<rnn_descr_t>& rnn_descr,
150 const std::vector<std::string>& output_names,
151 const std::vector<uint32_t>& classes,
152 float input_dropout_prob);
void train_epoch(size_t batch_size, size_t seq_len, const std::vector< std::string > &output_names, const torch::Tensor &input_batches, const torch::Tensor &gold_batches, torch::optim::Optimizer &opt, epoch_stat_t &stat, const torch::Device &device)
void train_batch(size_t batch_size, size_t seq_len, const std::vector< std::string > &output_names, const torch::Tensor &input, const torch::Tensor &gold, torch::optim::Optimizer &opt, epoch_stat_t &stat, const torch::Device &device)
BiRnnClassifierImpl(DictsHolder &&dicts, const std::vector< embd_descr_t > &embd_descr, const std::vector< rnn_descr_t > &rnn_descr, const std::vector< std::string > &output_names, const std::vector< uint32_t > &classes, float input_dropout_prob)