Oops.  I posted too soon.  Wrapping the variance value in a Variable fixed the problem.  Just had to change the last line of forward() to this:
return input / Variable((self.running_var + self.eps).sqrt()) * self.weight