---
title: "train(trainingData:parameters:sessionParameters:)"
framework: createml
role: symbol
role_heading: Type Method
path: "createml/mlimageclassifier/train(trainingdata:parameters:sessionparameters:)"
---

# train(trainingData:parameters:sessionParameters:)

Begins an asynchronous image classifier training session with a training dataset represented by a data source.

## Declaration

```swift
static func train(trainingData: MLImageClassifier.DataSource, parameters: MLImageClassifier.ModelParameters = ModelParameters(
            validation: .split(strategy: .automatic),
            augmentation: [],
            algorithm: .transferLearning(
                featureExtractor: .scenePrint(revision: 1),
                classifier: .logisticRegressor
            )
        ), sessionParameters: MLTrainingSessionParameters = _defaultSessionParameters) throws -> MLJob<MLImageClassifier>
```

## Parameters

- `trainingData`: Data source for training.
- `parameters`: Model training parameters. See doc://com.apple.createml/documentation/CreateML/MLImageClassifier/ModelParameters-swift.struct for the defaults.
- `sessionParameters`: Training session parameters. See doc://com.apple.createml/documentation/CreateML/MLTrainingSessionParameters for the defaults.

## Return Value

Return Value An MLJob that represents the image classifier training session.

## See Also

### Training an image classifier asynchronously

- [makeTrainingSession(trainingData:parameters:sessionParameters:)](createml/mlimageclassifier/maketrainingsession(trainingdata:parameters:sessionparameters:).md)
- [resume(_:)](createml/mlimageclassifier/resume(_:).md)
- [restoreTrainingSession(sessionParameters:)](createml/mlimageclassifier/restoretrainingsession(sessionparameters:).md)
