Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Snorkel team Snorkel Task Init

From Leeroopedia
Knowledge Sources
Domains Multi_Task_Learning, Computation_Graphs, PyTorch
Last Updated 2026-02-14 20:00 GMT

Overview

Concrete tool for defining task computation graphs using Operations and Tasks, provided by the Snorkel library.

Description

Operation specifies a single forward pass through a module, referencing inputs from previous operations or the raw input. Task bundles a module pool, operation sequence, loss function, output function, and scorer into a complete task definition for MultitaskClassifier.

Usage

Import these classes when configuring computation graphs for MultitaskClassifier.

Code Reference

Source Location

  • Repository: snorkel
  • File: snorkel/classification/task.py
  • Lines: L14-126

Signature

class Operation:
    def __init__(
        self,
        module_name: str,
        inputs: Sequence[Union[str, Tuple[str, str]]],
        name: Optional[str] = None,
    ) -> None:
        """
        Args:
            module_name: Name of module in module_pool.
            inputs: Input sources - operation names or ("_input_", field_name) tuples.
            name: Operation name (defaults to module_name).
        """

class Task:
    def __init__(
        self,
        name: str,
        module_pool: nn.ModuleDict,
        op_sequence: Sequence[Operation],
        scorer: Scorer = Scorer(metrics=["accuracy"]),
        loss_func: Optional[Callable[..., torch.Tensor]] = None,
        output_func: Optional[Callable[..., torch.Tensor]] = None,
    ) -> None:
        """
        Args:
            name: Task name (must match Y_dict key).
            module_pool: Dict of named nn.Module instances.
            op_sequence: Ordered operations defining data flow.
            scorer: Evaluation scorer (default: accuracy).
            loss_func: Loss function (default: F.cross_entropy).
            output_func: Output function (default: F.softmax(dim=1)).
        """

Import

from snorkel.classification import Task, Operation

I/O Contract

Inputs

Name Type Required Description
module_name str Yes References a module in the module_pool
inputs Sequence[Union[str, Tuple[str, str]]] Yes Input operation names or ("_input_", field) tuples
name (Task) str Yes Task name matching Y_dict key
module_pool nn.ModuleDict Yes Dictionary of nn.Module instances
op_sequence Sequence[Operation] Yes Ordered operations for data flow

Outputs

Name Type Description
Task instance Task Complete task definition for MultitaskClassifier
Operation instance Operation Single computation step in the task graph

Usage Examples

import torch.nn as nn
from snorkel.classification import Task, Operation
from snorkel.analysis import Scorer

# Define modules
module_pool = nn.ModuleDict({
    "encoder": nn.Linear(100, 64),
    "relu": nn.ReLU(),
    "head": nn.Linear(64, 2),
})

# Define operation sequence: encoder -> relu -> head
op_sequence = [
    Operation(module_name="encoder", inputs=[("_input_", "features")]),
    Operation(module_name="relu", inputs=["encoder"]),
    Operation(module_name="head", inputs=["relu"]),
]

# Create task
task = Task(
    name="sentiment",
    module_pool=module_pool,
    op_sequence=op_sequence,
    scorer=Scorer(metrics=["accuracy", "f1"]),
)

Related Pages

Implements Principle

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment