Skip to content

Commit 05629c1

Browse files
authored
[AutoDiff] Remove deprecated method-style differential operators. (#30108)
Remove deprecated APIs, since they've been deprecated for a full release cycle. Update checkout for tensorflow-swift-apis.
1 parent 7c265e7 commit 05629c1

File tree

7 files changed

+7
-108
lines changed

7 files changed

+7
-108
lines changed

stdlib/public/Differentiation/DifferentiationSupport.swift

Lines changed: 0 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -294,107 +294,6 @@ public extension Differentiable {
294294
}
295295
}
296296

297-
//===----------------------------------------------------------------------===//
298-
// Method-style differential operators
299-
//===----------------------------------------------------------------------===//
300-
301-
public extension Differentiable {
302-
@available(*, deprecated, message: """
303-
Method-style differential operators are deprecated and will be removed; \
304-
use top-level function 'Swift.valueWithPullback(at:in:)' instead
305-
""")
306-
@inlinable
307-
func valueWithPullback<R>(
308-
in f: @differentiable (Self) -> R
309-
) -> (value: R, pullback: (R.TangentVector) -> TangentVector) {
310-
return Builtin.applyDerivative_vjp_arity1(f, self)
311-
}
312-
313-
@available(*, deprecated, message: """
314-
Method-style differential operators are deprecated and will be removed; \
315-
use top-level function 'Swift.pullback(at:in:)' instead
316-
""")
317-
@inlinable
318-
func pullback<R>(
319-
in f: @differentiable (Self) -> R
320-
) -> (R.TangentVector) -> TangentVector {
321-
return Builtin.applyDerivative_vjp_arity1(f, self).1
322-
}
323-
324-
@available(*, deprecated, message: """
325-
Method-style differential operators are deprecated and will be removed; \
326-
use top-level function 'Swift.gradient(at:in:)' instead
327-
""")
328-
@inlinable
329-
func gradient<R>(
330-
in f: @differentiable (Self) -> R
331-
) -> TangentVector
332-
where R : FloatingPoint, R.TangentVector == R {
333-
return Swift.pullback(at: self, in: f)(R(1))
334-
}
335-
336-
@available(*, deprecated, message: """
337-
Method-style differential operators are deprecated and will be removed; \
338-
use top-level function 'Swift.valueWithGradient(at:in:)' instead
339-
""")
340-
@inlinable
341-
func valueWithGradient<R>(
342-
in f: @differentiable (Self) -> R
343-
) -> (value: R, gradient: TangentVector)
344-
where R : FloatingPoint, R.TangentVector == R {
345-
let (y, pb) = Swift.valueWithPullback(at: self, in: f)
346-
return (y, pb(R(1)))
347-
}
348-
349-
@available(*, deprecated, message: """
350-
Method-style differential operators are deprecated and will be removed; \
351-
use top-level function 'Swift.valueWithPullback(at:_:in:)' instead
352-
""")
353-
@inlinable
354-
func valueWithPullback<T, R>(
355-
at x: T, in f: @differentiable (Self, T) -> R
356-
) -> (value: R,
357-
pullback: (R.TangentVector) -> (TangentVector, T.TangentVector)) {
358-
return Builtin.applyDerivative_vjp_arity2(f, self, x)
359-
}
360-
361-
@available(*, deprecated, message: """
362-
Method-style differential operators are deprecated and will be removed; \
363-
use top-level function 'Swift.pullback(at:_:in:)' instead
364-
""")
365-
@inlinable
366-
func pullback<T, R>(
367-
at x: T, in f: @differentiable (Self, T) -> R
368-
) -> (R.TangentVector) -> (TangentVector, T.TangentVector) {
369-
return Builtin.applyDerivative_vjp_arity2(f, self, x).1
370-
}
371-
372-
@available(*, deprecated, message: """
373-
Method-style differential operators are deprecated and will be removed; \
374-
use top-level function 'Swift.gradient(at:_:in:)' instead
375-
""")
376-
@inlinable
377-
func gradient<T, R>(
378-
at x: T, in f: @differentiable (Self, T) -> R
379-
) -> (TangentVector, T.TangentVector)
380-
where R : FloatingPoint, R.TangentVector == R {
381-
return Swift.pullback(at: self, x, in: f)(R(1))
382-
}
383-
384-
@available(*, deprecated, message: """
385-
Method-style differential operators are deprecated and will be removed; \
386-
use top-level function 'Swift.valueWithGradient(at:_:in:)' instead
387-
""")
388-
@inlinable
389-
func valueWithGradient<T, R>(
390-
at x: T, in f: @differentiable (Self, T) -> R
391-
) -> (value: R, gradient: (TangentVector, T.TangentVector))
392-
where R : FloatingPoint, R.TangentVector == R {
393-
let (y, pb) = Swift.valueWithPullback(at: self, x, in: f)
394-
return (y, pb(R(1)))
395-
}
396-
}
397-
398297
//===----------------------------------------------------------------------===//
399298
// Free-function-style differential operators
400299
//===----------------------------------------------------------------------===//

test/AutoDiff/downstream/control_flow.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -536,9 +536,9 @@ ControlFlowTests.test("Enums") {
536536
}
537537
}
538538
expectEqual((Dense.TangentVector(w1: 10), 20),
539-
Dense(w1: 4, w2: 5).gradient(at: 2, in: { dense, x in dense(x) }))
539+
gradient(at: Dense(w1: 4, w2: 5), 2) { dense, x in dense(x) })
540540
expectEqual((Dense.TangentVector(w1: 2), 4),
541-
Dense(w1: 4, w2: nil).gradient(at: 2, in: { dense, x in dense(x) }))
541+
gradient(at: Dense(w1: 4, w2: nil), 2) { dense, x in dense(x) })
542542

543543
indirect enum Indirect {
544544
case e(Float, Enum)

test/AutoDiff/downstream/leakchecking.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ extension DummyLayer {
7777
-> (Output,
7878
(Self.Output.TangentVector)
7979
-> (Self.TangentVector, Self.Input.TangentVector)) {
80-
return Swift.valueWithPullback(at: self, input) { $0.requirement($1) }
80+
return valueWithPullback(at: self, input) { $0.requirement($1) }
8181
}
8282
}
8383

test/AutoDiff/downstream/protocol_requirement_autodiff.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ protocol DiffReq : Differentiable {
1515
extension DiffReq where TangentVector : AdditiveArithmetic {
1616
@inline(never) // Prevent specialization, to test all witness code.
1717
func gradF(at x: Tracked<Float>) -> (Self.TangentVector, Tracked<Float>) {
18-
return (valueWithPullback(at: x) { s, x in s.f(x) }).1(1)
18+
return (valueWithPullback(at: self, x) { s, x in s.f(x) }).1(1)
1919
}
2020
}
2121

test/AutoDiff/downstream/refcounting.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,4 +130,4 @@ struct UsesMethodOfNoDerivativeMember : Differentiable {
130130
}
131131
}
132132

133-
_ = UsesMethodOfNoDerivativeMember().pullback(at: .zero) { $0.applied(to: $1) }
133+
_ = pullback(at: UsesMethodOfNoDerivativeMember(), .zero) { $0.applied(to: $1) }

test/AutoDiff/downstream/simple_real_vector.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public struct TF189: Differentiable {
5959
@noDerivative public let nonTrivial: NonTrivial
6060

6161
func foo(input: Vector) -> Vector {
62-
return self.pullback(at: input) { m, x in
62+
return pullback(at: self, input) { m, x in
6363
m.applied(to: x)
6464
}(.zero).1
6565
}

utils/update_checkout/update-checkout-config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@
332332
"PythonKit": "master",
333333
"swift-format": "master",
334334
"tensorflow": "v2.1.0-rc1",
335-
"tensorflow-swift-apis": "6a67b4ef646222af1dc345d631019cc3602eb16b",
335+
"tensorflow-swift-apis": "cc2122763611f1be0c6cf8c4339547c3cf155a41",
336336
"tensorflow-swift-quote": "46c3d2996541d0ea902630eda11be5a9ccdeaba3"
337337
}
338338
}

0 commit comments

Comments
 (0)