mse_0_u = tf.reduce_mean(tf.square(u_weights*(u0 - u0_pred)))
mse_f_u = tf.reduce_mean(tf.square(col_weights*f_u_pred))
order your paper,

mse_0_u and mse_f_u should be:
mse_0_u = tf.reduce_mean(u_weightstf.square((u0 - u0_pred)))
mse_f_u = tf.reduce_mean(col_weightstf.square(f_u_pred))
I am not sure for this, is it right?
mse_0_u = tf.reduce_mean(tf.square(u_weights*(u0 - u0_pred)))
mse_f_u = tf.reduce_mean(tf.square(col_weights*f_u_pred))
order your paper,

mse_0_u and mse_f_u should be:
mse_0_u = tf.reduce_mean(u_weightstf.square((u0 - u0_pred)))
mse_f_u = tf.reduce_mean(col_weightstf.square(f_u_pred))
I am not sure for this, is it right?