Skip to content
This repository was archived by the owner on Apr 23, 2025. It is now read-only.

s/CotangentVector/TangentVector/g #162

Merged
merged 2 commits into from
May 24, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions CIFAR/Helpers.swift
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ extension Array where Element: Differentiable {
func reduceDerivative<Result: Differentiable>(
_ initialResult: Result,
_ nextPartialResult: @differentiable (Result, Element) -> Result
) -> (Result, (Result.CotangentVector) -> (Array.CotangentVector, Result.CotangentVector)) {
var pullbacks: [(Result.CotangentVector)
-> (Result.CotangentVector, Element.CotangentVector)] = []
) -> (Result, (Result.TangentVector) -> (Array.TangentVector, Result.TangentVector)) {
var pullbacks: [(Result.TangentVector)
-> (Result.TangentVector, Element.TangentVector)] = []
let count = self.count
pullbacks.reserveCapacity(count)
var result = initialResult
Expand All @@ -38,14 +38,14 @@ extension Array where Element: Differentiable {
}
return (value: result, pullback: { cotangent in
var resultCotangent = cotangent
var elementCotangents = CotangentVector([])
var elementCotangents = TangentVector([])
elementCotangents.base.reserveCapacity(count)
for pullback in pullbacks.reversed() {
let (newResultCotangent, elementCotangent) = pullback(resultCotangent)
resultCotangent = newResultCotangent
elementCotangents.base.append(elementCotangent)
}
return (CotangentVector(elementCotangents.base.reversed()), resultCotangent)
return (TangentVector(elementCotangents.base.reversed()), resultCotangent)
})
}
}
6 changes: 3 additions & 3 deletions MiniGo/Models/GoModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -183,12 +183,12 @@ public struct GoModel: Layer {

@usableFromInline
func _vjpCall(_ input: Tensor<Float>)
-> (GoModelOutput, (GoModelOutput.CotangentVector)
-> (GoModel.CotangentVector, Tensor<Float>)) {
-> (GoModelOutput, (GoModelOutput.TangentVector)
-> (GoModel.TangentVector, Tensor<Float>)) {
// TODO(jekbradbury): add a real VJP
// (we're only interested in inference for now and have control flow in our `call(_:)` method)
return (self(input), {
seed in (GoModel.CotangentVector.zero, Tensor<Float>(0))
seed in (GoModel.TangentVector.zero, Tensor<Float>(0))
})
}
}
Expand Down
2 changes: 1 addition & 1 deletion MiniGo/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ gsutil cp 'gs://minigo-pub/v15-19x19/models/000939-heron.*' MiniGoCheckpoint/
```sh
# Run inference (self-plays).
cd swift-models
swift run -Xlinker -ltensorflow -c release MiniGo
swift run -Xlinker -ltensorflow -c release MiniGoDemo
```

[Swift for TensorFlow]: https://www.tensorflow.org/swift
Expand Down
6 changes: 3 additions & 3 deletions Transformer/Model.swift
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ func makeAttentionInput(query: Tensor<Float>, key: Tensor<Float>, value: Tensor<
}

func _vjpMakeAttentionInput(query: Tensor<Float>, key: Tensor<Float>, value: Tensor<Float>)
-> (AttentionInput, (AttentionInput.CotangentVector) -> (Tensor<Float>, Tensor<Float>, Tensor<Float>)) {
-> (AttentionInput, (AttentionInput.TangentVector) -> (Tensor<Float>, Tensor<Float>, Tensor<Float>)) {
let result = AttentionInput(query: query, key: key, value: value)
return (result, { seed in (seed.query, seed.key, seed.value) })
}
Expand All @@ -80,7 +80,7 @@ func makeAttentionContext(key: Tensor<Float>, value: Tensor<Float>)
}

func _vjpMakeAttentionContext(key: Tensor<Float>, value: Tensor<Float>)
-> (AttentionContext, (AttentionContext.CotangentVector) -> (Tensor<Float>, Tensor<Float>)) {
-> (AttentionContext, (AttentionContext.TangentVector) -> (Tensor<Float>, Tensor<Float>)) {
let result = AttentionContext(key: key, value: value)
return (result, { seed in (seed.key, seed.value) })
}
Expand Down Expand Up @@ -170,7 +170,7 @@ func splitQKV(_ input: Tensor<Float>) -> AttentionInput {
}

func _vjpSplitQKV(_ input: Tensor<Float>)
-> (AttentionInput, (AttentionInput.CotangentVector) -> Tensor<Float>) {
-> (AttentionInput, (AttentionInput.TangentVector) -> Tensor<Float>) {
let value = splitQKV(input)
return (value, { seed in
return Raw.concatV2([seed.query, seed.key, seed.value], axis: Tensor<Int32>(2))
Expand Down