<!--
{
  "availability" : [
    "iOS: 26.0.0 -",
    "iPadOS: 26.0.0 -",
    "macCatalyst: -",
    "macOS: 26.0.0 -",
    "tvOS: 26.0.0 -",
    "visionOS: 26.0.0 -",
    "watchOS: 26.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/BNNSGraph/Builder",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Accelerate"
    ],
    "preciseIdentifier" : "s:10Accelerate9BNNSGraphO7BuilderV"
  },
  "title" : "BNNSGraph.Builder"
}
-->

# BNNSGraph.Builder

A structure thats provides a closure you can use to define the arguments and operations of a
BNNS Graph.

```
struct Builder
```

## Topics

### Protocols

[`protocol OperationParameter`](/documentation/Accelerate/BNNSGraph/Builder/OperationParameter)

A protocol that allows functions to accept either tensors or collections.

[`protocol SliceIndex`](/documentation/Accelerate/BNNSGraph/Builder/SliceIndex)

A protocol that the BNNS graph builder uses to specify slice indices.

### Structures

[`struct SliceRange`](/documentation/Accelerate/BNNSGraph/Builder/SliceRange)

A structure that represents a range.

[`struct Tensor`](/documentation/Accelerate/BNNSGraph/Builder/Tensor)

A structure that represents an abstract handle to a tensor that you use within a `BNNSGraph.makeContext` closure.

### Instance Methods

[`func argument<T>(name: String?, dataType: T.Type, shape: [Int], intent: BNNSGraph.Builder.Intent) -> BNNSGraph.Builder.Tensor<T>`](/documentation/Accelerate/BNNSGraph/Builder/argument(name:dataType:shape:intent:))

Registers and returns an input or in-out tensor argument to the graph.

[`func concatenate<T>([BNNSGraph.Builder.Tensor<T>], axis: Int) -> BNNSGraph.Builder.Tensor<T>`](/documentation/Accelerate/BNNSGraph/Builder/concatenate(_:axis:))

Adds a concatenation operation to the current graph.

[`func constant<T>(name: String?, value: T) -> BNNSGraph.Builder.Tensor<T>`](/documentation/Accelerate/BNNSGraph/Builder/constant(name:value:))

Registers and returns a tensor that contains a constant scalar value.

[`func constant<T>(name: String?, values: some AccelerateBuffer, shape: [Int]?) -> BNNSGraph.Builder.Tensor<T>`](/documentation/Accelerate/BNNSGraph/Builder/constant(name:values:shape:))

Registers and returns a tensor with the specified shape that contains constant data, such as weight or bias values.

[`func constant(values: Array<Array<Float>>, rowMajor: Bool) -> BNNSGraph.Builder.Tensor<Float>`](/documentation/Accelerate/BNNSGraph/Builder/constant(values:rowMajor:)-6b7b8)

Returns a rank 2 tensor from an array of arrays.

[`func constant(values: Array<Array<Float16>>, rowMajor: Bool) -> BNNSGraph.Builder.Tensor<Float16>`](/documentation/Accelerate/BNNSGraph/Builder/constant(values:rowMajor:)-7b4v2)

### Type Aliases

[`typealias PoolingPadding`](/documentation/Accelerate/BNNSGraph/Builder/PoolingPadding)

The padding that you use for pooling operations to specify zero-padding.

### Enumerations

[`enum Activation`](/documentation/Accelerate/BNNSGraph/Builder/Activation)

The activation function that a recurrent operation uses.

[`enum CeilingMode`](/documentation/Accelerate/BNNSGraph/Builder/CeilingMode)

The pooling ceiling mode.

[`enum ConvolutionPadding`](/documentation/Accelerate/BNNSGraph/Builder/ConvolutionPadding)

The padding that you use for convolution operations to specify zero-padding.

[`enum Direction`](/documentation/Accelerate/BNNSGraph/Builder/Direction)

The direction of a recurrent operation.

[`enum Intent`](/documentation/Accelerate/BNNSGraph/Builder/Intent)

Constants that describe argument intents.

[`enum Padding`](/documentation/Accelerate/BNNSGraph/Builder/Padding)

The padding that you use for pad operations.

[`enum PoolingFunction`](/documentation/Accelerate/BNNSGraph/Builder/PoolingFunction)

The pooling function

[`enum ScatterMode`](/documentation/Accelerate/BNNSGraph/Builder/ScatterMode)

Constants that specify how scatter operations overwrite destination elements.

[`enum SortOrder`](/documentation/Accelerate/BNNSGraph/Builder/SortOrder)

The sort order for functions such as `argsort`.

---

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)