def update_summary_field(self, field_name):
        """Updates the summary field based on the current values of its source
        field.

        Args:
            field_name: the summary field
        """

        # This prevents a "weakly-referenced object no longer exists" error
        # from occurring when updating multiple summary fields sequentially
        # @todo diagnose and cure root cause so this isn't needed
        self._reload(hard=True)

        field = self.get_field(field_name)
        if field is None or _SUMMARY_FIELD_KEY not in field.info:
            raise ValueError(f"Field {field_name} is not a summary field")

        summary_info = field.info[_SUMMARY_FIELD_KEY]
        summary_info["last_modified_at"] = datetime.utcnow()
        field.save(_enforce_read_only=False)

        self._populate_summary_field(field_name, summary_info)
Updates the summary field based on the current values of its source
        field.

        Args:
            field_name: the summary field
        
fiftyone/core/dataset.py