implemented cuda rbm and simplified  the dataproviders