<!--
{
  "availability" : [
    "iOS: 14.0.0 - 17.4.0",
    "iPadOS: 14.0.0 - 17.4.0",
    "macCatalyst: 14.0.0 - 17.4.0",
    "macOS: 11.0.0 - 14.3.0",
    "tvOS: 14.0.0 - 17.4.0"
  ],
  "documentType" : "symbol",
  "framework" : "MLCompute",
  "identifier" : "/documentation/MLCompute/MLCLSTMDescriptor",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "ML Compute"
    ],
    "preciseIdentifier" : "c:objc(cs)MLCLSTMDescriptor"
  },
  "title" : "MLCLSTMDescriptor"
}
-->

# MLCLSTMDescriptor

The configuration object you use to create the LSTM layer.

```
class MLCLSTMDescriptor
```

## Topics

### Creating LSTM Descriptors

[`init(inputSize:hiddenSize:layerCount:)`](/documentation/MLCompute/MLCLSTMDescriptor/init(inputSize:hiddenSize:layerCount:))

Creates a batch first LSTM descriptor with the input size and number of layers you specify.

[`init(inputSize:hiddenSize:layerCount:usesBiases:isBidirectional:dropout:)`](/documentation/MLCompute/MLCLSTMDescriptor/init(inputSize:hiddenSize:layerCount:usesBiases:isBidirectional:dropout:))

Creates a batch first LSTM descriptor with bias and bidirectional options you specify.

[`init(inputSize:hiddenSize:layerCount:usesBiases:batchFirst:isBidirectional:dropout:)`](/documentation/MLCompute/MLCLSTMDescriptor/init(inputSize:hiddenSize:layerCount:usesBiases:batchFirst:isBidirectional:dropout:))

Creates a batch first LSTM descriptor that allows you to indicate whether the input and output shape is batch first.

[`init(inputSize:hiddenSize:layerCount:usesBiases:batchFirst:isBidirectional:returnsSequences:dropout:)`](/documentation/MLCompute/MLCLSTMDescriptor/init(inputSize:hiddenSize:layerCount:usesBiases:batchFirst:isBidirectional:returnsSequences:dropout:))

Creates a batch first LSTM descriptor that allows you to indicate whether the layer returns output for all sequences, or output for only the last sequence.

[`init(inputSize:hiddenSize:layerCount:usesBiases:batchFirst:isBidirectional:returnsSequences:dropout:resultMode:)`](/documentation/MLCompute/MLCLSTMDescriptor/init(inputSize:hiddenSize:layerCount:usesBiases:batchFirst:isBidirectional:returnsSequences:dropout:resultMode:))

Creates a descriptor with the number of features and layers, dropout, and options for use of biases, batch order, return sequences, bidirectionality, and expected tensors you specify.

### Inspecting LSTM Descriptors

[`batchFirst`](/documentation/MLCompute/MLCLSTMDescriptor/batchFirst)

A Boolean that indicates whether the input and output shape is batch first.

[`dropout`](/documentation/MLCompute/MLCLSTMDescriptor/dropout)

The dropout probability.

[`hiddenSize`](/documentation/MLCompute/MLCLSTMDescriptor/hiddenSize)

The number of features in the hidden state.

[`inputSize`](/documentation/MLCompute/MLCLSTMDescriptor/inputSize)

The number of expected features in the input.

[`isBidirectional`](/documentation/MLCompute/MLCLSTMDescriptor/isBidirectional)

A Boolean that indicates whether the layer is bidirectional.

[`layerCount`](/documentation/MLCompute/MLCLSTMDescriptor/layerCount)

The number of recurrent layers.

[`resultMode`](/documentation/MLCompute/MLCLSTMDescriptor/resultMode)

The mode that indicates whether the layer produces a single result tensor or three result tensors — final output, last hidden state, and the cell state.

[`returnsSequences`](/documentation/MLCompute/MLCLSTMDescriptor/returnsSequences)

A Boolean that indicates whether the layer returns output for all sequences.

[`usesBiases`](/documentation/MLCompute/MLCLSTMDescriptor/usesBiases)

A Boolean that indicates whether you use bias weights.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)