def z_update(self, obs):
        '''
            updates Z_filter running obs mean and variance
            Args:
                obs: dictionary of batched observations
        '''
        if self.use_z_filter:
            obs_flat = self._gather_low_dim_input(obs)
            self.z_filter.z_update(obs_flat)
        else:
            raise ValueError('Z_update called when network is set to not use z_filter')

            updates Z_filter running obs mean and variance
            Args:
                obs: dictionary of batched observations
        
surreal/model/ppo_net.py