-autoscale of data during draw. data remains unchanged

git-svn-id: http://moon:8086/svn/software/trunk/projects/RBM@41 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2014-10-25 21:08:57 +00:00
parent 4d1f2f2e0c
commit 376f2dfa35
4 changed files with 31 additions and 23 deletions
+28 -4
View File
@@ -229,21 +229,45 @@ const VectorXd& DrawComponent::getData ()
void DrawComponent::setData (const VectorXd& data)
{
double a;
m_data = data;
DrawData(data);
}
for (int i=0; i < m_height; i++)
void DrawComponent::DrawData (const VectorXd& data)
{
double a;
VectorXd temp = data;
double min = +1E12;
double max = -1E12;
for (int i=0; i < m_width*m_height; i++)
{
min = std::min<double>(min, (double)temp[i]);
max = std::max<double>(max, (double)temp[i]);
}
for (int i=0; i < m_width*m_height; i++)
{
temp[i] -= min;
}
for (int i=0; i < m_width*m_height; i++)
{
temp[i] /= (max-min);
}
for (int i=0; i < m_height; i++)
{
for (int j=0; j < m_width; j++)
{
a = std::min<double>(std::max<double>((double)m_data[i*m_width + j], 0), 1);
a = std::min<double>(std::max<double>((double)temp[i*m_width + j], 0), 1);
m_pG->setColour(Colour(Colours::white).greyLevel(a));
m_pG->fillRect(m_scaleX*j, m_scaleY*i, m_scaleX, m_scaleY);
}
}
repaint();
}
//[/MiscUserCode]
+1
View File
@@ -57,6 +57,7 @@ public:
void setListener(DrawListener *pListener);
void drawAt(int x, int y, bool setColor);
void setData(const VectorXd& data);
void DrawData(const VectorXd& data);
const VectorXd& getData();
void clear();
//[/UserMethods]
+1 -19
View File
@@ -859,25 +859,7 @@ void MainComponent::redrawReconstruction()
void MainComponent::redrawWeights(int index)
{
VectorXd w = m_weights.weights().col(index);
VectorXd temp = w;
double min = +1E12;
double max = -1E12;
for (int i=0; i < m_vNumX*m_vNumY; i++)
{
min = std::min<double>(min, (double)temp[i]);
max = std::max<double>(max, (double)temp[i]);
}
for (int i=0; i < m_vNumX*m_vNumY; i++)
{
temp[i] -= min;
}
for (int i=0; i < m_vNumX*m_vNumY; i++)
{
temp[i] /= (max-min);
}
DrawWeights->setData(temp);
DrawWeights->setData(w);
}
void MainComponent::run()
+1
View File
@@ -117,6 +117,7 @@ public:
{
h.statesUpdateStochastic();
}
// Update weights (positive phase)
sumWeights += vt[t].states() * h.states().transpose();
sumBiasV += vt[t].states();