   x = xt << testImages;
   y = yt << testLabels;
   
-  graph.forward(numofdata);
+  graph.forward(BATCH_SIZE);
   auto results = predict.val();
   graph.backward();
   

    //}
    //std::cerr << ")" << std::endl;
  }
  std::cerr << "ACC: " << float(acc)/numofdata << std::endl;

  return 0;
}

  
  const size_t IMAGE_SIZE = 784;
  const size_t LABEL_SIZE = 10;
  
  std::cerr << "Loading test set...";
  std::vector<float> testImages = datasets::mnist::ReadImages("../examples/mnist/t10k-images-idx3-ubyte", numofdata, IMAGE_SIZE);
  std::vector<float> testLabels = datasets::mnist::ReadLabels("../examples/mnist/t10k-labels-idx1-ubyte", numofdata, LABEL_SIZE);
  std::cerr << "Done." << std::endl;

  const size_t BATCH_SIZE = testLabels.size();
  
  std::cerr << "Loading model params...";
  NpzConverter converter("../scripts/test_model/model.npz");

  std::vector<float> wData, bData;
  Shape wShape, bShape;
  converter.Load("weights", wData, wShape);
  converter.Load("bias", bData, bShape);

  std::cerr << "Done." << std::endl;

  auto x = input(shape={whatevs, IMAGE_SIZE}, name="X");
  auto y = input(shape={whatevs, LABEL_SIZE}, name="Y");
  
  auto w = param(shape={IMAGE_SIZE, LABEL_SIZE}, name="W0",
                 init=[wData](Tensor t) { t.set(wData); });
  auto b = param(shape={1, LABEL_SIZE}, name="b0",
                 init=[bData](Tensor t) {t.set(bData); });

  std::cerr << "Building model...";
  auto predict = softmax(dot(x, w) + b,
