 
   Session* session = Session::GetNewSession();
   session->gpu = true;
-  session->batch_size = 1;
+  session->batch_size = 64;
   size_t batch_size = session->batch_size;
 
-
-  Data<float> data_layer(batch_size, "datasets/cifar10/train1.txt");
+  
+  Data<float> data_layer(batch_size, "datasets/cifar10/train.txt");
   // vector<size_t*> data_tops_dims;
   size_t data_tops_dims0[4];
   size_t data_tops_dims1[4];

  to_fc4_dims[1] = 1;
  to_fc4_dims[2] = 1;
  to_fc4_dims[3] = relu3_top_dims[1]*relu3_top_dims[2]*relu3_top_dims[3];
  FC<float> fc4(to_fc4_dims[3],64);
  size_t fc4_top_dims[4];
  fc4.GetTopsDims({to_fc4_dims}, {fc4_top_dims});
  Tensor<float> * fc4_top = Tensor<float>::CreateTensorGPU(fc4_top_dims);
  Tensor<float> * fc4_top_diff = Tensor<float>::CreateTensorGPU(fc4_top_dims);

  FC<float> fc5(64, 10);
  size_t fc5_top_dims[4];
  fc5.GetTopsDims({fc4_top_dims}, {fc5_top_dims});
  Tensor<float> * fc5_top = Tensor<float>::CreateTensorGPU(fc5_top_dims);

      }
    }

    Tensor<float> * relu3_top_diff = Tensor<float>::TensorCPUtoGPU(relu3_top_diff_cpu);    

    cudaStatus = cudaGetLastError();
    checkCudaErrors(cudaStatus);
    // relu3.Backward({pool3_top}, {pool3_top_diff}, {reshaped_relu3_top}, {reshaped_relu3_top_diff});
    relu3.Backward({relu3_top}, {relu3_top_diff}, {pool3_top}, {pool3_top_diff});

    cudaStatus = cudaGetLastError();
    checkCudaErrors(cudaStatus);
    pool3.Backward({pool3_top}, {pool3_top_diff}, {conv3_top}, {conv3_top_diff});
