- Noise_Init() depoends only on seed

- more detrmistic calls of shuffle()
- Shuffle() init weights with uniform noise

git-svn-id: http://moon:8086/svn/software/trunk/projects/RBM@599 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2019-10-29 07:02:45 +00:00
parent 2ac8d27e75
commit 756c4d8670
2 changed files with 10 additions and 6 deletions
+9 -5
View File
@@ -82,23 +82,27 @@ public:
m_w.resize(m_numVisible, m_numHidden);
m_bv.resize(m_numVisible);
m_bh.resize(m_numHidden);
shuffle(0.01);
}
void shuffle(double stdDev)
{
uint32_t i, j;
m_bv.array().fill(stdDev*Noise_Gaussian(&m_noise));
m_bh.array().fill(stdDev*Noise_Gaussian(&m_noise));
for (i=0; i < m_numVisible; i++)
{
for (j=0; j < m_numHidden; j++)
{
m_w(i,j) = stdDev*Noise_Gaussian(&m_noise);
m_w(i,j) = stdDev*(Noise_Uniform(&m_noise) - 0.5);
}
}
for (i=0; i < m_numVisible; i++)
{
m_bv(i) = stdDev*(Noise_Uniform(&m_noise) - 0.5);
}
for (i=0; i < m_numHidden; i++)
{
m_bh(i) = stdDev*(Noise_Uniform(&m_noise) - 0.5);
}
}
Weights& operator= (const Weights &rhs)
+1 -1
View File
@@ -46,7 +46,7 @@ double ran0(long *idum)
void Noise_Init(noise_gen_t *pObj, long seed)
{
pObj->state = seed ^ clock();
pObj->state = seed;
}
void Noise_Free(noise_gen_t *pObj)