libcm is a C development framework with an emphasis on audio signal processing applications.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

cmRbm.h 935B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef cmRbm_h
  2. #define cmRbm_h
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. //( { file_desc:"Restricted Bolzmann Machine object." kw:[model] }
  7. enum
  8. {
  9. kOkRbmRC = cmOkRC,
  10. kInvalidParmRbmRC,
  11. kStackFailRbmRC,
  12. kMonitorWrFailRbmRC
  13. };
  14. typedef cmHandle_t cmRbmH_t;
  15. typedef cmRC_t cmRbmRC_t;
  16. extern cmRbmH_t cmRbmNullHandle;
  17. cmRbmRC_t cmRbmAllocate( cmCtx_t* ctx, cmRbmH_t* hp, const unsigned nodesPerLayer[], unsigned layerCnt );
  18. cmRbmRC_t cmRbmFree( cmRbmH_t* hp );
  19. bool cmRbmIsValid( cmRbmH_t h );
  20. cmRbmRC_t cmRbmConfigure( cmRbmH_t h, const unsigned nodesPerLayerV[], unsigned layerCnt );
  21. typedef struct
  22. {
  23. double maxX;
  24. double minX;
  25. double initW;
  26. double eta; // learning rate
  27. double holdOutFrac;
  28. unsigned epochCnt;
  29. unsigned batchCnt;
  30. double momentum;
  31. } cmRbmTrainParms_t;
  32. void cmRbmBinaryTest(cmCtx_t* ctx);
  33. //)
  34. #ifdef __cplusplus
  35. }
  36. #endif
  37. #endif