Пожалуйста, мне нужна помощь здесь:
void RBM::sample_v_given_h(int *h0_sample, double *mean, int *sample) {
int c = 0;
double r;
for(int i=0; i<n_visible; i++) {
mean[i] = propdown(h0_sample, i, vbias[i]);if(mean[i] < 0 || mean[i] > 1)
sample[i] = 0;
else{
r = rand() / (RAND_MAX + 1.0);
if (r < mean[i]) c++;
sample[i] = c;
}
}
}
когда я использую rand () для генерации случайного числа, как в предыдущем примере, компилятор PGI выдает мне ошибку:
Procedures called in a compute region must have acc routine information: rand (./RBM.cpp: 166)
или как следует
Accelerator restriction: call to 'rand' with no acc routine
когда я вызываю функцию, которая имеет rand ()
Задача ещё не решена.
Других решений пока нет …