     (when-not (coll? shape)
       (error "logistic layer constructor requires a shape vector"))
     (cortex.impl.layers.Dropout.
-      (m/ensure-mutable (m/new-array :vectorz shape))
-      (m/ensure-mutable (m/new-array :vectorz shape))
+      (util/empty-array shape)
+      (util/empty-array shape)
       (double probability)
-      (m/ensure-mutable (m/new-array :vectorz shape)))))
+      (util/empty-array shape))))
 
 (defn scale
   "Creates a scaling layer with the specified shape and multiplication factor"

    (when-not (coll? shape)
      (error "logistic layer constructor requires a shape vector"))
    (cortex.impl.layers.Logistic.
      (m/ensure-mutable (m/new-array :vectorz shape))
      (m/ensure-mutable (m/new-array :vectorz shape)))))

(defn dropout
  "Creates a dropout module of the given shape.

    (when-not (coll? shape)
      (error "softmax layer constructor requires a shape vector"))
    (cortex.impl.layers.Softmax.
        (util/empty-array shape)
        (util/empty-array shape))))

(defn relu
  "Creates a rectified linear (ReLU) module of the given shape.
