Home | Develop | Download | Contact
OptAdam.hpp
1/*
2 * OptAdam.hpp
3 *
4 * Copyright 2018 Fernando Pujaico Rivera <fernando.pujaico.rivera@gmail.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19 * MA 02110-1301, USA.
20 *
21 */
22
32#ifndef __PDS_OPTADAM_HPP__
33#define __PDS_OPTADAM_HPP__
34
35#include <string>
36#include <Pds/Vector>
37#include <Pds/Shape>
38
49namespace Pds{
50
51
60{
61
62private:
63
66 double beta1;
67 double beta2;
68 double epsilon;
69 unsigned int t;
70
72public:
73
91 OptAdam(void);
92
107 OptAdam(unsigned int N, double beta1=0.9,double beta2=0.999, double epsilon=1e-8);
108
123 OptAdam(Pds::Size Sz, double beta1=0.9,double beta2=0.999, double epsilon=1e-8);
124
140 OptAdam(unsigned int Nch, Pds::Size Sz, double beta1=0.9,double beta2=0.999, double epsilon=1e-8);
141
151
152
154
159public:
160
188
201 bool Copy(const Pds::OptAdam &B);
202
216 void MakeEmpty(void);
217
231 bool Reset(void);
232
238 bool IsEmpty(void) const;
243public:
244
270
295public:
296
306 bool SetT(unsigned int t);
307
313 double GetBeta1(void) const;
314
320 double GetBeta2(void) const;
321
326 Pds::Shape GetShape(void) const;
327
333 double GetEpsilon(void) const;
334
340public:
341
350 void Print(std::string str="") const;
351
352
356}; // Class OptAdam
357
358} // namespace Pds
359
360
376 std::ostream& operator<<(std::ostream &out,const Pds::OptAdam &z);
377
378
388#endif
389
La clase tipo Pds::Matrix . Esta clase genera una matriz de Nlin lineas y Ncol columnas....
Definition: Matrix.hpp:96
La clase tipo Pds::OptAdam . Esta clase genera un objeto con dos parametros Nlin y Ncol....
Definition: OptAdam.hpp:60
Pds::SampleBlock tmp
Definition: OptAdam.hpp:71
double beta1
Definition: OptAdam.hpp:66
double beta2
Definition: OptAdam.hpp:67
Pds::SampleBlock v
Definition: OptAdam.hpp:65
double epsilon
Definition: OptAdam.hpp:68
unsigned int t
Definition: OptAdam.hpp:69
Pds::SampleBlock m
Definition: OptAdam.hpp:64
La clase tipo Pds::Shape . Esta clase genera un objeto con dos parametros Nlin y Ncol....
Definition: Shape.hpp:57
La clase tipo Pds::Size . Esta clase genera un objeto con dos parametros Nlin y Ncol....
Definition: Size.hpp:57
std::vector< Pds::Matrix > SampleBlock
Definición de un tipo de dato Pds::SampleBlock.
Definition: Matrix.hpp:8147
bool SetT(unsigned int t)
Establece el parámetro .
double GetBeta2(void) const
Retorna el parámetro .
OptAdam(unsigned int N, double beta1=0.9, double beta2=0.999, double epsilon=1e-8)
Crea un objeto de tipo Pds::OptAdam.
bool Reset(void)
Reinicia los datos internos.
OptAdam(const Pds::OptAdam &B)
Crea un objeto de tipo Pds::OptAdam copiando datos desde otra.
OptAdam(Pds::Size Sz, double beta1=0.9, double beta2=0.999, double epsilon=1e-8)
Crea un objeto de tipo Pds::OptAdam.
void Print(std::string str="") const
Muestra en pantalla el contenido de Pds::OptAdam, elementos separados por tabulador.
Pds::OptAdam & operator=(const Pds::OptAdam &B)
Copia en si mismo (A), un Shape B. Este operador es similar al método Copy().
std::ostream & operator<<(std::ostream &out, const Pds::OptAdam &z)
Retorna el contenido del objeto por la salida estándar.
double GetBeta1(void) const
Retorna el parámetro .
Pds::Shape GetShape(void) const
Retorna el tamaño de la matriz acumuladora.
bool OptimizeGradient(Pds::Matrix &g)
Calcula el gradiente optimizado .
double GetEpsilon(void) const
Retorna el parámetro .
bool IsEmpty(void) const
Verifica si el objeto está vacio (no usable).
void MakeEmpty(void)
Cera los datos internos.
OptAdam(unsigned int Nch, Pds::Size Sz, double beta1=0.9, double beta2=0.999, double epsilon=1e-8)
Crea un objeto de tipo Pds::OptAdam.
OptAdam(void)
Crea un objeto de tipo Pds::OptAdam.
bool OptimizeGradient(Pds::SampleBlock &g)
Calcula el gradiente optimizado .
bool Copy(const Pds::OptAdam &B)
Copia en si mismo (A), el contenido de un Shape B. Este método es similar a usar el operador = .
Nombre de espacio para Pds (Procesamiento Digital de Senales)
Definition: AbstractRV.hpp:42

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed