def tf_initialize(self, x_init, b):
if x_init is None:<EOL><INDENT>x_init = [tf.zeros(shape=util.shape(t)) for t in b]<EOL><DEDENT>initial_args = super(ConjugateGradient, self).tf_initialize(x_init)<EOL>conjugate = residual = [t - fx for t, fx in zip(b, self.fn_x(x_init))]<EOL>squared_residual = tf.add_n(inputs=[tf.reduce_sum(input_tensor=(res * res)) for res in residual])<EOL>return initial_args + (conjugate, residual, squared_residual)<EOL>
Initialization step preparing the arguments for the first iteration of the loop body:  
$x_0, 0, p_0, r_0, r_0^2$.

Args:
    x_init: Initial solution guess $x_0$, zero vector if None.
    b: The right-hand side $b$ of the system of linear equations.

Returns:
    Initial arguments for tf_step.