- 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:
+20
-17
@@ -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;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user