// fully_connected_layer.h #ifndef DENSE_LAYER_H #define DENSE_LAYER_H #include #include #include namespace Layers { class Dense : public ILayer { public: Dense(int inputSize, int outputSize, cublasHandle_t cublasHandle); ~Dense(); void forward(const float* input, float* output); virtual void setWeights(const std::vector>& weights) = 0; virtual void setBiases(const std::vector& biases) = 0; private: int inputSize; int outputSize; cublasHandle_t cublasHandle; float* d_weights; float* d_biases; std::vector> weights; std::vector biases; void initializeWeights(); void initializeBiases(); void toCuda(); }; } // namespace Layers #endif // DENSE_LAYER_H