23 #ifndef SRC_ENCODERS_MATRIXSDRENCODER_HPP_
24 #define SRC_ENCODERS_MATRIXSDRENCODER_HPP_
40 template <
typename inputDataType,
typename outputDataType =
float>
64 virtual std::shared_ptr<mic::types::Matrix<outputDataType> >
encodeBatch(
const std::vector<std::shared_ptr<inputDataType> >& batch_) {
69 for (
size_t i=0; i < batch_.size(); i++ ) {
71 std::shared_ptr<mic::types::Matrix<outputDataType> > sample_sdr = this->
encodeSample(batch_[i]);
74 sdrs->col(i) = sample_sdr->col(0);
89 std::vector<std::shared_ptr<inputDataType> > output;
93 for (
size_t i=0; i < (size_t)sdrs_->cols(); i++ ) {
94 sample_sdr->col(0) = sdrs_->col(i);
95 std::shared_ptr<inputDataType> decoded = this->
decodeSample(sample_sdr);
97 output.push_back(decoded);
MatrixSDREncoder(size_t sdr_length_)
Constructor.
virtual ~MatrixSDREncoder()
virtual std::shared_ptr< inputDataType > decodeSample(const std::shared_ptr< mic::types::Matrix< outputDataType > > &sdr_)=0
Contains definition of basic matrix datatypes derived from Eigen.
Contains definition of an abstract, template parent class for all auto-encoders.
Abstract parent class for all encoders using MatrixXf as SDR datatype.
virtual std::vector< std::shared_ptr< inputDataType > > decodeBatch(const std::shared_ptr< mic::types::Matrix< outputDataType > > &sdrs_)
size_t sdr_length
Length of SDR.
void setSDRLength(size_t sdr_length_)
Abstract parent class for all encoders.
virtual std::shared_ptr< mic::types::Matrix< outputDataType > > encodeBatch(const std::vector< std::shared_ptr< inputDataType > > &batch_)
Template-typed Matrix of dynamic size. Uses OpenBLAS if found by CMAKE - overloaded, specializations of * operator for types: float, double.
virtual std::shared_ptr< mic::types::Matrix< outputDataType > > encodeSample(const std::shared_ptr< inputDataType > &sample_)=0
Method responsible for encoding input sample into SDR.