def __init__(self,<EOL>distributions,<EOL>dtype_override=None,<EOL>validate_args=False,<EOL>allow_nan_stats=False,<EOL>name='<STR_LIT>'):
parameters = dict(locals())<EOL>with tf.name_scope(name) as name:<EOL><INDENT>self._assertions = _maybe_validate_distributions(<EOL>distributions, dtype_override, validate_args)<EOL>if dtype_override is not None:<EOL><INDENT>dtype = dtype_override<EOL><DEDENT>else:<EOL><INDENT>dtype = set(<EOL>dtype_util.base_dtype(d.dtype)<EOL>for d in distributions<EOL>if d.dtype is not None)<EOL>if len(dtype) == <NUM_LIT:0>:  <EOL><INDENT>dtype = tf.float32<EOL><DEDENT>elif len(dtype) == <NUM_LIT:1>:<EOL><INDENT>dtype = dtype.pop()<EOL><DEDENT>else:<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT><DEDENT>reparameterization_type = set(d.reparameterization_type<EOL>for d in distributions)<EOL>reparameterization_type = (reparameterization_type.pop()<EOL>if len(reparameterization_type) == <NUM_LIT:1><EOL>else reparameterization.NOT_REPARAMETERIZED)<EOL>self._distributions = distributions<EOL>super(Blockwise, self).__init__(<EOL>dtype=dtype,<EOL>validate_args=validate_args,<EOL>allow_nan_stats=allow_nan_stats,<EOL>reparameterization_type=reparameterization_type,<EOL>parameters=parameters,<EOL>graph_parents=_flatten(d._graph_parents for d in distributions),  <EOL>name=name)<EOL><DEDENT>
Construct the `Blockwise` distribution.

        Args:
          distributions: Python `list` of `tfp.distributions.Distribution`
            instances. All distribution instances must have the same `batch_shape`
            and all must have `event_ndims==1`, i.e., be vector-variate
            distributions.
          dtype_override: samples of `distributions` will be cast to this `dtype`.
            If unspecified, all `distributions` must have the same `dtype`.
            Default value: `None` (i.e., do not cast).
          validate_args: Python `bool`, default `False`. When `True` distribution
            parameters are checked for validity despite possibly degrading runtime
            performance. When `False` invalid inputs may silently render incorrect
            outputs.
          allow_nan_stats: Python `bool`, default `True`. When `True`, statistics
            (e.g., mean, mode, variance) use the value "`NaN`" to indicate the
            result is undefined. When `False`, an exception is raised if one or
            more of the statistic's batch members are undefined.
          name: Python `str` name prefixed to Ops created by this class.