#ifndef DENSE_LAYER_H #define DENSE_LAYER_H #include #include #include #include #include "ilayer.cuh" namespace Layers { class Dense : public ILayer { public: Dense( int inputSize, int outputSize, Activation activation, cublasHandle_t cublasHandle ); ~Dense(); void forward(const float* d_input, float* d_output); void setWeights(const std::vector>& weights); void setBiases(const std::vector& biases); private: int inputSize; int outputSize; cublasHandle_t cublasHandle; float* d_weights; float* d_biases; std::vector weights; std::vector biases; Activation activation; void initializeWeights(); void initializeBiases(); void toCuda(); }; } // namespace Layers #endif // DENSE_LAYER_H