- added grayscale display

- reconstruction and hidden probs can be displayed

git-svn-id: http://moon:8086/svn/software/trunk/projects/RBM@15 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2014-09-26 05:30:16 +00:00
parent 470437eecb
commit b1a0c90ea0
10 changed files with 216 additions and 194 deletions
+20 -17
View File
@@ -96,6 +96,8 @@ class Rbm
public:
Rbm(uint32_t numVisible, uint32_t numHidden)
: m_w(numVisible, numHidden)
, tv(numVisible)
, th(numHidden)
, m_numVisible(numVisible)
, m_numHidden(numHidden)
, m_numTrainingPatterns(0)
@@ -313,48 +315,44 @@ public:
delete [] h;
}
void toHidden(const double *pVisible)
const double* toHidden(const double *pVisible)
{
double p;
uint32_t i;
VisibleLayer v(m_numVisible);
HiddenLayer h(m_numHidden);
tv.setInput(pVisible);
tv.statesAssignfromInput();
v.setInput(pVisible);
v.statesAssignfromInput();
h.probsUpdate(v, m_w);
th.probsUpdate(tv, m_w);
printf("pi(t) = (pi^, v>)\n");
for (i=0; i < m_numHidden; i++)
{
p = h.getProbs()[i];
p = th.getProbs()[i];
printf("%3.6f\n", p);
}
printf("\n");
return th.getProbs();
}
void toVisible(const double *pHidden)
const double* toVisible(const double *pHidden)
{
double p;
uint32_t i;
VisibleLayer v(m_numVisible);
HiddenLayer h(m_numHidden);
th.setInput(pHidden);
th.statesAssignfromInput();
h.setInput(pHidden);
h.statesAssignfromInput();
v.probsUpdate(h, m_w);
tv.probsUpdate(th, m_w);
printf("pi(t) = (pi^, v>)\n");
for (i=0; i < m_numVisible; i++)
{
p = v.getProbs()[i];
p = tv.getProbs()[i];
printf("%3.6f\n", p);
}
printf("\n");
return tv.getProbs();
}
void weightsPrint()
@@ -367,9 +365,15 @@ public:
m_w.shuffle(stdDev);
}
double **getWeights()
{
return m_w.getWeights();
}
private:
Weights m_w;
VisibleLayer tv;
HiddenLayer th;
uint32_t m_numVisible;
uint32_t m_numHidden;
uint32_t m_numTrainingPatterns;
@@ -404,7 +408,6 @@ private:
delete [] m_pVisibleTraining;
m_pVisibleTraining = nullptr;
}
m_numTrainingPatterns = 0;
}
};