MCPcopy
hub / github.com/mosaicml/composer / fit

Method fit

composer/trainer/trainer.py:1933–2260  ·  view source on GitHub ↗

Train the model. The Composer :class:`.Trainer` supports multiple calls to :meth:`.fit`. Any arguments specified during the call to :meth:`.fit` will override the values specified when constructing the :class:`.Trainer`. All arguments are optional, with the following excepti

(
        self,
        *,
        # Train Dataloader
        train_dataloader: Optional[Union[Iterable, DataSpec, dict[str, Any]]] = None,
        train_dataloader_label: str = 'train',
        train_subset_num_batches: Optional[int] = None,
        spin_dataloaders: Optional[bool] = None,

        # Timing
        duration: Optional[Union[int, str, Time[int]]] = None,
        reset_time: bool = False,

        # Schedulers
        schedulers: Optional[Union[
            ComposerScheduler,
            LRScheduler,
            Sequence[Union[ComposerScheduler, LRScheduler]],
        ]] = None,
        scale_schedule_ratio: float = 1.0,
        step_schedulers_every_batch: Optional[bool] = None,

        # Evaluation
        eval_dataloader: Optional[Union[Iterable, DataSpec, Evaluator, Sequence[Evaluator]]] = None,
        eval_subset_num_batches: int = -1,
        eval_interval: Union[int, str, Time, Callable[[State, Event], bool]] = 1,

        # Numerics
        device_train_microbatch_size: Optional[Union[int, float, str]] = None,
        precision: Optional[Union[str, Precision]] = None,
    )

Source from the content-addressed store, hash-verified

1931 return latest_checkpoint_path
1932
1933 def fit(
1934 self,
1935 *,
1936 # Train Dataloader
1937 train_dataloader: Optional[Union[Iterable, DataSpec, dict[str, Any]]] = None,
1938 train_dataloader_label: str = 'train',
1939 train_subset_num_batches: Optional[int] = None,
1940 spin_dataloaders: Optional[bool] = None,
1941
1942 # Timing
1943 duration: Optional[Union[int, str, Time[int]]] = None,
1944 reset_time: bool = False,
1945
1946 # Schedulers
1947 schedulers: Optional[Union[
1948 ComposerScheduler,
1949 LRScheduler,
1950 Sequence[Union[ComposerScheduler, LRScheduler]],
1951 ]] = None,
1952 scale_schedule_ratio: float = 1.0,
1953 step_schedulers_every_batch: Optional[bool] = None,
1954
1955 # Evaluation
1956 eval_dataloader: Optional[Union[Iterable, DataSpec, Evaluator, Sequence[Evaluator]]] = None,
1957 eval_subset_num_batches: int = -1,
1958 eval_interval: Union[int, str, Time, Callable[[State, Event], bool]] = 1,
1959
1960 # Numerics
1961 device_train_microbatch_size: Optional[Union[int, float, str]] = None,
1962 precision: Optional[Union[str, Precision]] = None,
1963 ):
1964 """Train the model.
1965
1966 The Composer :class:`.Trainer` supports multiple calls to :meth:`.fit`. Any arguments specified during
1967 the call to :meth:`.fit` will override the values specified when constructing the :class:`.Trainer`.
1968 All arguments are optional, with the following exceptions:
1969
1970 * The ``train_dataloader`` must be specified here if not provided when constructing the :class:`.Trainer`.
1971 * The ``duration`` must be specified here if not provided when constructing the :class:`.Trainer`,
1972 or if this is a subsequent call to :meth:`.fit`.
1973
1974 For example, the following are equivalent:
1975
1976 .. testcode::
1977
1978 # The `train_dataloader` and `duration` can be specified
1979 # when constructing the Trainer
1980 trainer_1 = Trainer(
1981 model=model,
1982 train_dataloader=train_dataloader,
1983 max_duration="1ep",
1984 )
1985 trainer_1.fit()
1986
1987 # Or, these arguments can be specified on `fit()`
1988 trainer_2 = Trainer(model)
1989 trainer_2.fit(
1990 train_dataloader=train_dataloader,

Calls 15

_use_closuresMethod · 0.95
_train_loopMethod · 0.95
ensure_data_specFunction · 0.90
TimestampClass · 0.90
ensure_timeFunction · 0.90
ensure_tupleFunction · 0.90
ensure_evaluatorFunction · 0.90
PrecisionClass · 0.90
_validate_precisionFunction · 0.90
ClosureGradScalerClass · 0.90