#include "network.hpp" void Network::init_normal_distribution(double m,double d){ default_random_engine generator; normal_distribution distribution(m,d); for(size_t l=1;l distribution(0,1); for(size_t l=1;l distribution2(0,1/sqrt(sizes[l-1])); w.get(i)=distribution2(generator); } } } const Vector& Network::feed_forward(const Vector& x){ a[0]=x; for(size_t l=1;lget_test_size(); size_t nb=0; for(size_t i=0;i t=dataset->get_test(i); const Vector& a=feed_forward(t.first); if(a.argmax()==t.second.argmax()) ++nb; } double res=double(nb)/double(n)*100; cout<<"> Res = "<get_train_size(); size_t nb_batchs=(train_size-1)/batch_size+1; size_t* indices=new size_t[train_size]; for(size_t i=0;i distribution(0,size-1); for(size_t k=0;k data=dataset->get_train(indices[i]); back_propagation(data.first,data.second,eta); } double eta_batch=eta/batch_size; for(size_t l=1;l=1;--l){ compute_delta(l); } for(size_t l=1;l