小编kak*_*208的帖子

c ++ - default_random_engine始终创建相同系列的数字

我正在使用神经网络,我想随机创建权重.因此,如果我创建30个神经网络,每个神经网络最终都具有相同的权重(应该是随机的),所以当我给它们所有相同的输入时,输出是相同的,当它不应该时.有帮助吗?

这是主要功能

int main(){
std::vector<Improved_NN> v;
std::random_device rd;
std::default_random_engine generator(rd());
std::uniform_real_distribution<double> distribution(-1.0,1.0);
for(int i = 0; i < 30; i++)
{
    Improved_NN temp;
    temp.initialize_weights(generator, distribution);
    v.push_back(temp);
}

Board temp;

for(int i = 0; i < 30; i++)
{
    std::cout <<"\n" << v[i].executeFromExternal(temp);
}
Run Code Online (Sandbox Code Playgroud)

而initialize_weights就在这里:

 void Improved_NN::initialize_weights(std::default_random_engine gen,std::uniform_real_distribution<double> dist){
int k,v = 0;
for(k = 0;k<NUM_HIDDEN_1;k++){
    for(v = 0 ; v < NUM_INPUTS; v++){
        mlp_t.w_h1_i[k][v]=dist(gen);
        //std::cout<<mlp_t.w_h1_i[k][v]<<std::endl;
    }
}
for(k = 0;k<NUM_HIDDEN_2;k++){
    for(v = 0 ; v < NUM_HIDDEN_1; v++){
        mlp_t.w_h2_h1[k][v]=dist(gen);
        //std::cout<<mlp_t.w_h2_h1[k][v]<<std::endl; …
Run Code Online (Sandbox Code Playgroud)

c++ random

5
推荐指数
1
解决办法
5385
查看次数

标签 统计

c++ ×1

random ×1