into DataParallel but some types are specially handled. tensors
   will be scattered on dim specified (default 0). tuple, list and
   dict types will be shallow copied. The other types will be shared
   among different threads and can be corrupted if written to in the
   model's forward pass.
The parallelized "module" must have its parameters and buffers on
   "device_ids[0]" before running this "DataParallel" module.
Warning:
 In each forward, "module" is **replicated** on each device, so
 any updates to the running module in "forward" will be lost. For
 example, if "module" has a counter attribute that is incremented
 in each "forward", it will always stay at the initial value
 because the update is done on the replicas which are destroyed
 after "forward". However, "DataParallel" guarantees that the
 replica on "device[0]" will have its parameters and buffers
 sharing storage with the base parallelized "module". So **in-
