Skip to content
Snippets Groups Projects
CNNNetwork.hpp 923 B
Newer Older
Franck Dary's avatar
Franck Dary committed
#ifndef CNNNETWORK__H
#define CNNNETWORK__H

#include "NeuralNetwork.hpp"
Franck Dary's avatar
Franck Dary committed
#include "CNN.hpp"
Franck Dary's avatar
Franck Dary committed

class CNNNetworkImpl : public NeuralNetworkImpl
{
  private :

  std::vector<int> focusedBufferIndexes;
  std::vector<int> focusedStackIndexes;
  std::vector<std::string> focusedColumns;
  std::vector<int> maxNbElements;
Franck Dary's avatar
Franck Dary committed
  torch::nn::Embedding wordEmbeddings{nullptr};
  torch::nn::Linear linear1{nullptr};
  torch::nn::Linear linear2{nullptr};
Franck Dary's avatar
Franck Dary committed
  CNN contextCNN{nullptr};
  std::vector<CNN> cnns;
Franck Dary's avatar
Franck Dary committed

  public :

  CNNNetworkImpl(int nbOutputs, int leftBorder, int rightBorder, int nbStackElements, std::vector<std::string> columns, std::vector<int> focusedBufferIndexes, std::vector<int> focusedStackIndexes, std::vector<std::string> focusedColumns, std::vector<int> maxNbElements);
Franck Dary's avatar
Franck Dary committed
  torch::Tensor forward(torch::Tensor input) override;
  std::vector<long> extractContext(Config & config, Dict & dict) const override;
};

#endif