Skip to content

Commit

Permalink
Internal Change
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 584404376
  • Loading branch information
cpka145 authored and LIT team committed Nov 21, 2023
1 parent 7bcdb19 commit 0dcb31d
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 6 deletions.
8 changes: 8 additions & 0 deletions lit_nlp/api/dtypes.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,14 @@ class FeatureSalience(DataTuple):
salience: dict[str, float]


@attr.s(auto_attribs=True, frozen=True, slots=True)
class FrameSalience(DataTuple):
"""Dataclass for a salience map over image frames in a video."""

# A map of salience score and image string by frame number
salience: dict[str, tuple[float, str]]


# TODO(b/196886684): document API for salience interpreters.
@attr.s(auto_attribs=True, frozen=True, slots=True)
class SequenceSalienceMap(DataTuple):
Expand Down
7 changes: 7 additions & 0 deletions lit_nlp/api/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -849,6 +849,13 @@ class FeatureSalience(Salience):
default: dtypes.FeatureSalience = None


@attr.s(auto_attribs=True, frozen=True, kw_only=True)
class FrameSalience(Salience):
"""Metadata about a returned frame salience map."""

default: dtypes.FrameSalience = None


@attr.s(auto_attribs=True, frozen=True, kw_only=True)
class ImageSalience(Salience):
"""Metadata about a returned image saliency.
Expand Down
5 changes: 5 additions & 0 deletions lit_nlp/client/lib/dtypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,11 @@ export interface FeatureSalience extends DataTuple {
salience: {[key: string]: number};
}

/** Dataclass for a salience map over image frames in a video. */
export interface FrameSalience extends DataTuple {
salience: {[key: string]: [number, string]};
}

// TODO(b/196886684): document API for salience interpreters.
/** Dataclass for a salience map over a target sequence. */
export interface SequenceSalienceMap extends DataTuple {
Expand Down
10 changes: 9 additions & 1 deletion lit_nlp/client/lib/lit_types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
// their Python counterparts.
// tslint:disable:no-new-decorators class-name enforce-name-casing

import {AnnotationCluster, EdgeLabel, FeatureSalience as FeatureSalienceDType, ScoredTextCandidates, SequenceSalienceMap, SpanLabel, TokenSalience as TokenSalienceDType} from './dtypes';
import {AnnotationCluster, EdgeLabel, FeatureSalience as FeatureSalienceDType, ScoredTextCandidates, SequenceSalienceMap, SpanLabel, TokenSalience as TokenSalienceDType, FrameSalience as FrameSalienceDType} from './dtypes';

/**
* A dictionary of registered LitType names mapped to their constructor.
Expand Down Expand Up @@ -544,6 +544,14 @@ export class FeatureSalience extends Salience {
override default: FeatureSalienceDType|undefined = undefined;
}

/**
* Metadata about a returned frame salience map.
*/
@registered
export class FrameSalience extends Salience {
override default: FrameSalienceDType|undefined = undefined;
}

/**
* Metadata about a returned image saliency.
* The data is returned as an image in the base64 URL encoded format, e.g.,
Expand Down
9 changes: 4 additions & 5 deletions lit_nlp/client/modules/salience_map_module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ import {LitModule} from '../core/lit_module';
import {LegendType} from '../elements/color_legend';
import {InterpreterClick} from '../elements/interpreter_controls';
import {TokenWithWeight} from '../elements/token_chips';
import {FeatureSalience, FieldMatcher, ImageGradients, ImageSalience, LitTypeTypesList, LitTypeWithParent, MulticlassPreds, RegressionScore, Salience, SalienceTargetInfo, TokenGradients, TokenSalience} from '../lib/lit_types';
import {FeatureSalience, FieldMatcher, ImageGradients, ImageSalience, LitTypeTypesList, LitTypeWithParent, MulticlassPreds, RegressionScore, Salience, SalienceTargetInfo, TokenGradients, TokenSalience, FrameSalience} from '../lib/lit_types';
import {styles as sharedStyles} from '../lib/shared_styles.css';
import {CallConfig, IndexedInput, ModelInfoMap, Preds, SCROLL_SYNC_CSS_CLASS, Spec} from '../lib/types';
import {argmax, cloneSpec, findSpecKeys, makeModifiedInput} from '../lib/utils';
Expand Down Expand Up @@ -64,12 +64,11 @@ interface FeatureSalienceResult {
[key: string]: {salience: FeatureSalienceMap};
}

type SalienceResult = TokenSalienceResult | ImageSalienceResult |
/** Different types of salience results supported in this module. */
export type SalienceResult = TokenSalienceResult | ImageSalienceResult |
FeatureSalienceResult;

// Notably, not SequenceSalience as that is handled by a different module.
const SUPPORTED_SALIENCE_TYPES =
[TokenSalience, FeatureSalience, ImageSalience];
const SUPPORTED_SALIENCE_TYPES = [TokenSalience, FeatureSalience, ImageSalience, FrameSalience];

const TARGET_SELECTOR_SUPPORTED_TYPES: LitTypeTypesList =
[MulticlassPreds, RegressionScore];
Expand Down

0 comments on commit 0dcb31d

Please sign in to comment.