title: Result of multiple test stages is incorrect
body: <p>I tried to make use of the <code>test_state</code> functionality in caffe solver while training. To implement this I added the following code to solver.prototxt</p>
  
  <pre><code>test_state: { stage: 'test-on-testSet0' }
  test_iter: 726
  test_state: { stage: 'test-on-testSet1' }
  test_iter: 363
  </code></pre>
  
  <p>Then I modified the train_val.prototxt like this:</p>
  
  <pre><code>layer {
    name: "data"
    type: "ImageData"
    top: "data"
    top: "label"
    include {
      phase: TEST
      stage: "test-on-testSet0"
    }
    transform_param {
      mirror: false
      scale: 0.0039215684
    }
    image_data_param {
      source: "./set0.lst"
      batch_size: 1
    }
  }
  
  layer {
    name: "data"
    type: "ImageData"
    top: "data"
    top: "label"
    include {
      phase: TEST
      stage: "test-on-testSet1"
    }
    transform_param {
      mirror: false
      scale: 0.0039215684
    }
    image_data_param {
      source: "./set0.lst"
      batch_size: 2
    }
  }
  </code></pre>
  
  <p>It has to be noted that both the test cases are ideally the same and the test runs on the complete set of images present in the ./set0.lst file.</p>
  
  <p>Still while training using <code>build/tools/caffe</code>, the results of the accuracy printed for both the test states are not identical.
  The accuracy layers are connected correctly too.
  What could be the reason for this mismatch?</p>