From 697abcc99318dcaf3f0536c2c07a6e8fc8c69d0e Mon Sep 17 00:00:00 2001 From: Stephen Johnson Date: Tue, 2 Jul 2019 22:48:48 -0700 Subject: [PATCH 1/3] _vjpConv2DBackpropInput using shape instead of using filter size for filterSizes argument. --- Sources/TensorFlow/Operators/NN.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/TensorFlow/Operators/NN.swift b/Sources/TensorFlow/Operators/NN.swift index 6c90ae4da..8125eeb01 100644 --- a/Sources/TensorFlow/Operators/NN.swift +++ b/Sources/TensorFlow/Operators/NN.swift @@ -184,8 +184,8 @@ func _vjpConv2DBackpropInput( ) -> (Tensor, (Tensor) -> (Tensor, Tensor)) { let value = conv2DBackpropInput(x, shape: shape, filter: filter, strides: strides, padding: padding, dilations: dilations) - return (value, { v in - (conv2DBackpropFilter(x, input: v, filterSizes: shape, strides: strides, + return (value, { [filterShape = filter.shapeTensor] v in + (conv2DBackpropFilter(x, input: v, filterSizes: filterShape, strides: strides, padding: padding, dilations: dilations), conv2D(v, filter: filter, strides: strides, padding: padding, dilations: dilations)) }) From 61a5d30ac5854f3024c9f9bcd2583a37ccd8b5c1 Mon Sep 17 00:00:00 2001 From: Richard Wei Date: Tue, 2 Jul 2019 22:57:29 -0700 Subject: [PATCH 2/3] Restore indentation --- Sources/TensorFlow/Operators/NN.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/TensorFlow/Operators/NN.swift b/Sources/TensorFlow/Operators/NN.swift index 8125eeb01..d412b8f70 100644 --- a/Sources/TensorFlow/Operators/NN.swift +++ b/Sources/TensorFlow/Operators/NN.swift @@ -184,7 +184,7 @@ func _vjpConv2DBackpropInput( ) -> (Tensor, (Tensor) -> (Tensor, Tensor)) { let value = conv2DBackpropInput(x, shape: shape, filter: filter, strides: strides, padding: padding, dilations: dilations) - return (value, { [filterShape = filter.shapeTensor] v in + return (value, { [filterShape = filter.shapeTensor] v in (conv2DBackpropFilter(x, input: v, filterSizes: filterShape, strides: strides, padding: padding, dilations: dilations), conv2D(v, filter: filter, strides: strides, padding: padding, dilations: dilations)) From 6f8987106efa741c04279db622f85adc88d93562 Mon Sep 17 00:00:00 2001 From: Richard Wei Date: Tue, 2 Jul 2019 22:59:09 -0700 Subject: [PATCH 3/3] Not capture shape because `filter` is already being captured. --- Sources/TensorFlow/Operators/NN.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/TensorFlow/Operators/NN.swift b/Sources/TensorFlow/Operators/NN.swift index d412b8f70..dc43087d3 100644 --- a/Sources/TensorFlow/Operators/NN.swift +++ b/Sources/TensorFlow/Operators/NN.swift @@ -184,8 +184,8 @@ func _vjpConv2DBackpropInput( ) -> (Tensor, (Tensor) -> (Tensor, Tensor)) { let value = conv2DBackpropInput(x, shape: shape, filter: filter, strides: strides, padding: padding, dilations: dilations) - return (value, { [filterShape = filter.shapeTensor] v in - (conv2DBackpropFilter(x, input: v, filterSizes: filterShape, strides: strides, + return (value, { v in + (conv2DBackpropFilter(x, input: v, filterSizes: filter.shapeTensor, strides: strides, padding: padding, dilations: dilations), conv2D(v, filter: filter, strides: strides, padding: padding, dilations: dilations)) })