---
title: "convolution3DWeightsGradient(_:source:outputShapeTensor:forwardConvolutionDescriptor:name:)"
framework: metalperformanceshadersgraph
role: symbol
role_heading: Instance Method
path: "metalperformanceshadersgraph/mpsgraph/convolution3dweightsgradient(_:source:outputshapetensor:forwardconvolutiondescriptor:name:)"
---

# convolution3DWeightsGradient(_:source:outputShapeTensor:forwardConvolutionDescriptor:name:)

Creates a 3D convolution gradient operation with respect to the weights tensor of the forward convolution.

## Declaration

```swift
func convolution3DWeightsGradient(_ gradient: MPSGraphTensor, source: MPSGraphTensor, outputShapeTensor: MPSGraphTensor, forwardConvolutionDescriptor: MPSGraphConvolution3DOpDescriptor, name: String?) -> MPSGraphTensor
```

## Parameters

- `outputShapeTensor`: 4D int32 or Int64 Tensor. Shape of the forward pass source tensor
- `forwardConvolutionDescriptor`: Forward convolution 2D op descriptor
- `name`: The name for the operation.

## Return Value

Return Value A valid MPSGraphTensor object

## Discussion

Discussion If W is weights tensor to forward convolution, R is the result/returned tensor of forward convolution, and L is the loss function, convolution3DWeightsGradientWithIncomingGradientTensor returns tensor dL/dW = dL/dR * dR/dW, where dL/dR is the incomingGradient parameter.
