anchor.diff:  
   (defun init-bpn-weights (bpn &key stddev)
     (map-segments (lambda (weight)
  -                  (gaussian-random! (nodes weight) :stddev stddev))
  +                  (cond ((find :scale (name weight))
  +                         (fill! 1 (nodes weight)))
  +                        ((or (find :shift (name weight))
  +                             (find :bias (name weight)))
  +                         (fill! 0 (nodes weight)))
  +                        (t
  +                         (gaussian-random! (nodes weight) :stddev stddev))))
                   bpn))
   
   (defun train-mnist/3 (&key training test quick-run-p bpn-var bpn-filename)
  
positive.code: /5+L1:
  
  (alexandria:mean '(99.04 99.28 99.10 98.92 99.01 99.14 99.16)) => 99.09286
  
  2014-09-20 12:02:26: n-inputs: 60000000
  2014-09-20 12:02:26: cuda mats: 70307, copies: h->d: 800008, d->h: 2085009
  
negative.code:                                             :key #'image-label))
                                 :pass-fold t))
  
  (repeatably ()
    (with-example-log ()
      (let ((*default-mat-ctype* :float)
            (*cuda-enabled* t))
        (train-mnist/6 :training (training-images) :test (test-images)))))
  
  (with-example-log ()
    ;; This only works with doubles for now, because boltzmann
  