anchor.diff:            (do-clouds (cloud rbm)
               (if (bias-cloud-p cloud)
                   (fill (storage (weights cloud)) #.(flt 0))
  -                (map-into (storage (weights cloud))
  -                          (lambda () (flt (* (this stddev)
  -                                             (gaussian-random-1))))))))))
  +                (progn
  +                  (log-msg "init: ~A ~A~%" cloud (this stddev))
  +                  (map-into (storage (weights cloud))
  +                            (lambda () (flt (* (this stddev)
  +                                               (gaussian-random-1)))))))))))
   
   (defun train-mnist-dbn (dbn &key n-epochs n-gibbs learning-rate decay
  -                        visible-sampling)
  -  (loop for rbm in (rbms dbn)
  -        for i upfrom 0 do
  +                        visible-sampling (start-level 0))
  +  (loop for rbm in (subseq (rbms dbn) start-level)
  +        for i upfrom start-level do
           (log-msg "Starting to train level ~S RBM in DBN.~%" i)
           (flet ((this (x)
                    (if (listp x)
                        (elt x i)
                        x)))
  +          (dolist (cloud (clouds rbm))
  +            (log-msg "~A: ~A~%" cloud (xxx (weights cloud))))
             (train (make-sampler *training-images*
                                  :max-n (* n-epochs (length *training-images*))
                                  :sample-visible-p (this visible-sampling))
  
positive.code: 
  #|
  
  (train-mnist/1)
  
  (train-mnist/1 :load-dbn-p t)
  
negative.code: (defclass mnist-logging-trainer (logging-trainer) ())
  
  (defmethod log-training-period ((trainer mnist-logging-trainer) learner)
    10000)
  
  (defmethod log-test-period ((trainer mnist-logging-trainer) learner)
    (length *training-images*))
  
  
  