Remove .batch_size instance attribute. Call data callable without any arguments.
Replace tensor RandomStreams with MRG version (runs on GPU). Generate dropout noise for masking using .binomial() to avoid weird theano casting issues.