📄 artmapdebug.cpp
字号:
/**
* \file
* artmapDebug.cpp - Utility routines for printing model internals
*
* Copyleft (C) - Boston University CELEST Technology Laboratory
*/
#include "Logger.h"
#include "artmap.h"
/**
Logs the network's dimensions
*/
void artmap::toStr_dimensions() {
LOG ("M: " << M << ", L: " << L << ", C: " << C << "N: " << N << "\n");
}
/**
Logs the activations of the F1 node field, that is, the complement-coded input vector
*/
void artmap::toStr_A() {
LOG ("A: (");
for (i = 0; i < M; i++) LOGF(A[i]);
LOG (") ( ");
for (i = M; i < _2M; i++) { LOGF(A[i]); }
LOG (")\n");
}
/**
Logs the F2 input signal, along with its tonic and phasic components (H = \f$\Theta\f$)
*/
void artmap::toStr_nodeJTSH(int j) {
LOG ("(S: " << std::fixed << std::setprecision (2) << S[j] << ", H: " << std::fixed << std::setprecision (2) << H[j] << ") -> T: " << std::fixed << std::setprecision (2) << T[j] << "\n");
}
/**
Logs the F2 node activation (pre/post normalization = y/Y), and the class to which the node maps.
*/
void artmap::toStr_nodeJdetails(int j) {
LOG ("y: " << y[j] << " (c: " << c[j] << ") -> Y: " << Y[j] << " (-> class " << kap[j] << ")\n");
}
/**
Logs the Jth node's bottom-up thresholds (\f$\tau_{ij}\f$)
*/
void artmap::toStr_nodeJtauIj(int j) {
LOG ("tauIj[" << j << "]: ( ");
for (i = 0; i < M; i++) LOG(tauIj(i, j) << " ");
LOG (") ( ");
for (i = M; i < _2M; i++) LOG(tauIj(i, j) << " ");
LOG (")\n");
}
/**
Logs the Jth node's top-down thresholds (\f$\tau_{ji}\f$)
*/
void artmap::toStr_nodeJtauJi(int j) {
LOG ("tauJi[" << j << "]: ( ");
for (i = 0; i < M; i++) LOG(tauJi(i, j) << " ");
LOG (") ( ");
for (i = M; i < _2M; i++) LOG(tauJi(i, j) << " ");
LOG (")\n");
}
/**
Logs the match field activations
*/
void artmap::toStr_x() {
LOG ("x: (");
for (i = 0; i < M; i++) LOGF(x[i]);
LOG (") ( ");
for (i = M; i < _2M; i++) LOGF(x[i]);
LOG (")\n");
}
/**
Logs the F3->F1 signal \f$\sigma_i\f$
*/
void artmap::toStr_sigma_i() {
LOG ("sigma_i: (");
for (i = 0; i < M; i++) LOGF(sigma_i[i]);
LOG (") ( ");
for (i = M; i < _2M; i++) LOGF(sigma_i[i]);
LOG (")\n");
}
/**
Logs the output prediction \f$\sigma_k\f$
*/
void artmap::toStr_sigma_k() {
LOG ("sigma_k: ");
for (k = 0; k < L; k++) LOG (sigma_k[k] << " ");
LOG ("\n");
}
/****************************************************************************/
/**
Logs all the ARTMAP network details
*/
void artmap::toStr() {
LOG ("*******************************************************\n");
toStr_dimensions();
LOG ("J: " << J << ", K: " << K << "\n\n");
toStr_A();
LOG ("\n--------------------------------------------\n");
foreach_j {
LOG ("Node " << j << "\n");
toStr_nodeJdetails(j);
toStr_nodeJtauIj(j);
toStr_nodeJtauJi(j);
LOG ("--------------------------------------------\n");
}
toStr_x ();
toStr_sigma_i ();
toStr_sigma_k ();
LOG ("=======================================================\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -