alexgkendall / caffe-segnet

Implementation of SegNet: A Deep Convolutional Encoder-Decoder Architecture for Semantic Pixel-Wise Labelling

Home Page:http://mi.eng.cam.ac.uk/projects/segnet/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

the problem with compute_bn_statistics

hrbspider opened this issue · comments

commented

Hi, Alex and guys:

I don't understand why compute the mean and var value in the for iterations and what does net.forward() do when no input data feed in.
`

--
  |  net = caffe.Net(testable_net_path, train_weights_path, caffe.TEST)
  | # init our blob stores with the first forward pass
  | res = net.forward()
  | bn_avg_mean = {bn_mean: np.squeeze(res[bn_mean]).copy() for bn_mean in bn_means}
  | bn_avg_var = {bn_var: np.squeeze(res[bn_var]).copy() for bn_var in bn_vars}
  |  
  | # iterate over the rest of the training set
  | for i in xrange(1, num_iterations):
  | res = net.forward()
  | for bn_mean in bn_means:
  | bn_avg_mean[bn_mean] += np.squeeze(res[bn_mean])
  | for bn_var in bn_vars:
  | bn_avg_var[bn_var] += np.squeeze(res[bn_var])
  | print 'progress: {}/{}'.format(i, num_iterations)

questions: 1.in every iteration ,there 's ares = net.forward(), and followed by computing _res[bn_mean]_ and _res[bn_var]._ what does net.forward() actually do when there's no data feed in? 2.why _res[bn_mean]_ and _res[bn_var]_ computed after res = net.forward()` and why in the for iteration?

thanks very much!

commented

I also have the confusion. the goal of compute_bn_statistics.py is? when I test one image, why do not I fix the mean and the var gained in the training phase.