title: CNN for single image camera calibration
body: <p>I've been reading a paper <a href="https://arxiv.org/abs/1712.01259" rel="nofollow noreferrer">A Perceptual Measure for Deep Single Image Camera Calibration</a> where they adopt DenseNet with a last layer replaced by three separate heads.</p>
  
  <p>I take DenseNet from keras:</p>
  
  
  
  <pre class="lang-python prettyprint-override"><code>base_model = DenseNet169(include_top = False, weights = 'imagenet')
  </code></pre>
  
  <p>set trainable to False for it's layers and add those heads in a following manner:</p>
  
  <pre class="lang-python prettyprint-override"><code>x = base_model.output
  x = GlobalAveragePooling2D()(x)
  x = Dense(4096, activation = 'relu')(x)
  psi = Dense(256, activation = 'softmax')(x)
  </code></pre>
  
  <p>Unfortunately that doesn't converge at all: validation error just grow unbounded while training. I'm quite sure about training data, so my current theory is that heads should be a little more complicated.</p>
  
  <p>Does anybody implement that paper or have an idea of what those heads should look like?</p>