#ifndef SPLITTRANSMODULE__H #define SPLITTRANSMODULE__H #include <torch/torch.h> #include "Submodule.hpp" #include "MyModule.hpp" #include "LSTM.hpp" #include "GRU.hpp" class SplitTransModuleImpl : public Submodule { private : torch::nn::Embedding wordEmbeddings{nullptr}; std::shared_ptr<MyModule> myModule{nullptr}; int maxNbTrans; int inSize; public : SplitTransModuleImpl(std::string name, int maxNbTrans, const std::string & definition); torch::Tensor forward(torch::Tensor input); std::size_t getOutputSize() override; std::size_t getInputSize() override; void addToContext(std::vector<std::vector<long>> & context, const Config & config) override; void registerEmbeddings() override; }; TORCH_MODULE(SplitTransModule); #endif