code: def with_cpu(ops, model):
      
      model.to_cpu()
  
      def with_cpu_forward(inputs, drop=0.0):
          cpu_outputs, backprop = model.begin_update(_to_cpu(inputs), drop=drop)
          gpu_outputs = _to_device(ops, cpu_outputs)
  
          def with_cpu_backprop(d_outputs, sgd=None):
              cpu_d_outputs = _to_cpu(d_outputs)
              return backprop(cpu_d_outputs, sgd=sgd)
  
          return gpu_outputs, with_cpu_backprop
  
      return wrap(with_cpu_forward, model)
docs: Wrap a model that should run on CPU, transferring inputs and outputs
      as necessary.