v2.0.0
Loading...
Searching...
No Matches
inv_cmne.h
Go to the documentation of this file.
1//=============================================================================================================
34
35#ifndef INV_CMNE_H
36#define INV_CMNE_H
37
38//=============================================================================================================
39// INCLUDES
40//=============================================================================================================
41
42#include "../inv_global.h"
44#include "inv_cmne_settings.h"
45
46//=============================================================================================================
47// EIGEN INCLUDES
48//=============================================================================================================
49
50#include <Eigen/Core>
51#include <Eigen/Dense>
52
53//=============================================================================================================
54// FORWARD DECLARATIONS
55//=============================================================================================================
56
57#ifndef WASMBUILD
58namespace UTILSLIB { struct PythonRunnerResult; }
59#endif
60
61//=============================================================================================================
62// DEFINE NAMESPACE INVLIB
63//=============================================================================================================
64
65namespace INVLIB
66{
67
68//=============================================================================================================
81
82//=============================================================================================================
93{
94public:
95 //=========================================================================================================
107 static InvCMNEResult compute(
108 const Eigen::MatrixXd& matEvoked,
109 const Eigen::MatrixXd& matGain,
110 const Eigen::MatrixXd& matNoiseCov,
111 const Eigen::MatrixXd& matSrcCov,
112 const InvCMNESettings& settings);
113
114 //=========================================================================================================
124 static Eigen::MatrixXd applyLstmCorrection(
125 const Eigen::MatrixXd& matDspmData,
126 const QString& onnxModelPath,
127 int lookBack);
128
129 //=========================================================================================================
130#ifndef WASMBUILD
156 const QString& fwdPath,
157 const QString& covPath,
158 const QString& epochsPath,
159 const QString& outOnnxPath,
160 const InvCMNESettings& settings,
161 const QString& gtStcPrefix = {},
162 int hiddenSize = 256,
163 int numLayers = 1,
164 int trainEpochs = 50,
165 double learningRate = 1e-3,
166 int batchSize = 64,
167 const QString& finetuneOnnxPath = {},
168 const QString& pythonExe = QStringLiteral("python3"));
169#endif
170
171private:
172 //=========================================================================================================
183 static Eigen::MatrixXd computeDspmKernel(
184 const Eigen::MatrixXd& matGain,
185 const Eigen::MatrixXd& matNoiseCov,
186 const Eigen::MatrixXd& matSrcCov,
187 double lambda2);
188
189 //=========================================================================================================
197 static Eigen::MatrixXd zScoreRectify(
198 const Eigen::MatrixXd& matStcData);
199};
200
201} // namespace INVLIB
202
203#endif // INV_CMNE_H
InvSourceEstimate class declaration.
inverse library export/import macros.
#define INVSHARED_EXPORT
Definition inv_global.h:52
InvCMNESettings struct declaration.
Shared utilities (I/O helpers, spectral analysis, layout management, warp algorithms).
Inverse source estimation (MNE, dSPM, sLORETA, dipole fitting).
CMNE result.
Definition inv_cmne.h:75
InvSourceEstimate stcDspm
Definition inv_cmne.h:76
InvSourceEstimate stcCmne
Definition inv_cmne.h:77
Eigen::MatrixXd matKernelDspm
Definition inv_cmne.h:79
InvSourceEstimate stcLstmPredict
Definition inv_cmne.h:78
CMNE inverse solver.
Definition inv_cmne.h:93
static InvCMNEResult compute(const Eigen::MatrixXd &matEvoked, const Eigen::MatrixXd &matGain, const Eigen::MatrixXd &matNoiseCov, const Eigen::MatrixXd &matSrcCov, const InvCMNESettings &settings)
Definition inv_cmne.cpp:77
static Eigen::MatrixXd applyLstmCorrection(const Eigen::MatrixXd &matDspmData, const QString &onnxModelPath, int lookBack)
Definition inv_cmne.cpp:234
static UTILSLIB::PythonRunnerResult trainLstm(const QString &fwdPath, const QString &covPath, const QString &epochsPath, const QString &outOnnxPath, const InvCMNESettings &settings, const QString &gtStcPrefix={}, int hiddenSize=256, int numLayers=1, int trainEpochs=50, double learningRate=1e-3, int batchSize=64, const QString &finetuneOnnxPath={}, const QString &pythonExe=QStringLiteral("python3"))
Definition inv_cmne.cpp:329
Script execution result container.