diff --git a/src/test.cpp b/src/test.cpp index 9c47f730..5cce1114 100644 --- a/src/test.cpp +++ b/src/test.cpp @@ -3,14 +3,16 @@ #include "marian.h" -marian::Var layer(size_t max) { - - using namespace marian; - +using namespace marian; + +Var layer(size_t max, std::vector& x) { Var x0 = 1, x1 = 2, x2 = 3; + x = { x0, x1, x2 }; + Var y = 0.0; for(int i = 0; i < max; i++) { Var xi = i; + x.push_back(xi); y = y + x0 + log(x2) + x1; for(int j = 0; j < i; ++j) { y = y + xi; @@ -22,11 +24,10 @@ marian::Var layer(size_t max) { int main(int argc, char** argv) { srand(time(NULL)); - - using namespace marian; - - Var y1 = layer(10); - Var y2 = layer(rand() % 20 + 1); + + std::vector x1, x2; + Var y1 = layer(10, x1); + Var y2 = layer(rand() % 20 + 1, x2); Var y = y1 + log(y2); @@ -40,4 +41,9 @@ int main(int argc, char** argv) { std::cerr << "dy/dy1 = " << y1.grad() << std::endl; std::cerr << "dy/dy2 = " << y2.grad() << std::endl; + for(size_t i = 0; i < x1.size(); ++i) + std::cerr << "dy/dx1_" << i << " = " << x1[i].grad() << std::endl; + for(size_t i = 0; i < x2.size(); ++i) + std::cerr << "dy/dx2_" << i << " = " << x2[i].grad() << std::endl; + } \ No newline at end of file