def _make_columnar(self, x):
if tensorshape_util.rank(x.shape) is not None:<EOL><INDENT>if tensorshape_util.rank(x.shape) == <NUM_LIT:1>:<EOL><INDENT>x = x[tf.newaxis, :]<EOL><DEDENT>return x<EOL><DEDENT>shape = tf.shape(input=x)<EOL>maybe_expanded_shape = tf.concat([<EOL>shape[:-<NUM_LIT:1>],<EOL>distribution_util.pick_vector(<EOL>tf.equal(tf.rank(x), <NUM_LIT:1>), [<NUM_LIT:1>], np.array([], dtype=np.int32)),<EOL>shape[-<NUM_LIT:1>:],<EOL>], <NUM_LIT:0>)<EOL>return tf.reshape(x, maybe_expanded_shape)<EOL>
Ensures non-scalar input has at least one column.

        Example:
          If `x = [1, 2, 3]` then the output is `[[1], [2], [3]]`.

          If `x = [[1, 2, 3], [4, 5, 6]]` then the output is unchanged.

          If `x = 1` then the output is unchanged.

        Args:
          x: `Tensor`.

        Returns:
          columnar_x: `Tensor` with at least two dimensions.