我已经使用二进制数据实现了RBM并且它可以工作。但是现在我一直试图改变我的能量函数,以便它需要真实的数据(高斯可见单位RBM)。但是当我编译我的代码时,我收到以下错误:
error C2661: 'pow' : no overloaded function takes 1 arguments
此处下面只是我代码的修改部分:
for(int i = 0; i < n_hidden; i++)
{
for(int j = 0; j < n_visible; j++)
{
//W[i][j] += lr * (ph_mean[i] * input[j] - nh_means[i] * nv_means[j]);
// trying to compute the Gaussian visible units
W[i][j] += lr * (pow(ph_mean[i] * input[j])*(ph_mean[i] * input[j])/2 - nh_means[i] * nv_means[j]);
}
hbias[i] += lr * (nh_means[i] - ph_mean[i]);
}
答案 0 :(得分:0)
根据文档,pow
采用两个没有默认值的参数:
答案 1 :(得分:0)
将pow(ph_mean[i] * input[j])*(ph_mean[i] * input[j])
更改为
pow((ph_mean[i] * input[j]),2)
将为您评估产品的平方。