title: Caffe net.predict() outputs random results (GoogleNet)
body: <p>I used pretrained GoogleNet from <a href="https://github.com/BVLC/caffe/tree/master/models/bvlc_googlenet">https://github.com/BVLC/caffe/tree/master/models/bvlc_googlenet</a> and finetuned it with my own data (~ 100k images, 101 classes).
  After one day training I achieved 62% in top-1 and 85% in top-5 classification and try to use this network to predict several images. </p>
  
  <p>I just followed example from <a href="https://github.com/BVLC/caffe/blob/master/examples/classification.ipynb">https://github.com/BVLC/caffe/blob/master/examples/classification.ipynb</a>,</p>
  
  <p>Here is my Python code:</p>
  
  <pre><code>import caffe
  import numpy as np
  
  
  caffe_root = './caffe'
  
  
  MODEL_FILE = 'caffe/models/bvlc_googlenet/deploy.prototxt'
  PRETRAINED = 'caffe/models/bvlc_googlenet/bvlc_googlenet_iter_200000.caffemodel'
  
  caffe.set_mode_gpu()
  
  net = caffe.Classifier(MODEL_FILE, PRETRAINED,
                 mean=np.load('ilsvrc_2012_mean.npy').mean(1).mean(1),
                 channel_swap=(2,1,0),
                 raw_scale=255,
                 image_dims=(224, 224))
  
  def caffe_predict(path):
          input_image = caffe.io.load_image(path)
          print path
          print input_image
          prediction = net.predict([input_image])
  
  
          print prediction
          print "----------"
  
          print 'prediction shape:', prediction[0].shape
          print 'predicted class:', prediction[0].argmax()
  
  
          proba = prediction[0][prediction[0].argmax()]
          ind = prediction[0].argsort()[-5:][::-1] # top-5 predictions
  
  
          return prediction[0].argmax(), proba, ind
  </code></pre>
  
  <p>In my deploy.prototxt I changed the last layer only to predict my 101 classes.</p>
  
  <pre><code>layer {
    name: "loss3/classifier"
    type: "InnerProduct"
    bottom: "pool5/7x7_s1"
    top: "loss3/classifier"
    param {
      lr_mult: 1
      decay_mult: 1
    }
    param {
      lr_mult: 2
      decay_mult: 0
    }
    inner_product_param {
      num_output: 101
      weight_filler {
        type: "xavier"
      }
      bias_filler {
        type: "constant"
        value: 0
      }
    }
  }
  layer {
    name: "prob"
    type: "Softmax"
    bottom: "loss3/classifier"
    top: "prob"
  }
  </code></pre>
  
  <p>Here is the distribution of softmax output:</p>
  
  <pre><code>[[ 0.01106235  0.00343131  0.00807581  0.01530041  0.01077161  0.0081002
     0.00989228  0.00972753  0.00429183  0.01377776  0.02028225  0.01209726
     0.01318955  0.00669979  0.00720005  0.00838189  0.00335461  0.01461464
     0.01485041  0.00543212  0.00400191  0.0084842   0.02134697  0.02500303
     0.00561895  0.00776423  0.02176422  0.00752334  0.0116104   0.01328687
     0.00517187  0.02234021  0.00727272  0.02380056  0.01210031  0.00582192
     0.00729601  0.00832637  0.00819836  0.00520551  0.00625274  0.00426603
     0.01210176  0.00571806  0.00646495  0.01589645  0.00642173  0.00805364
     0.00364388  0.01553882  0.01549598  0.01824486  0.00483241  0.01231962
     0.00545738  0.0101487   0.0040346   0.01066607  0.01328133  0.01027429
     0.01581303  0.01199994  0.00371804  0.01241552  0.00831448  0.00789811
     0.00456275  0.00504562  0.00424598  0.01309276  0.0079432   0.0140427
     0.00487625  0.02614347  0.00603372  0.00892296  0.00924052  0.00712763
     0.01101298  0.00716757  0.01019373  0.01234141  0.00905332  0.0040798
     0.00846442  0.00924353  0.00709366  0.01535406  0.00653238  0.01083806
     0.01168014  0.02076091  0.00542234  0.01246306  0.00704035  0.00529556
     0.00751443  0.00797437  0.00408798  0.00891858  0.00444583]]
  </code></pre>
  
  <p>It seems just like random distribution with no sense.</p>
  
  <p>Thank you for any help or hint and best regards,
  Alex</p>