Skip to content

Commit 4a33cb2

Browse files
Resolve Swift toolchain build errors (#316)
This week, the S4TF team encountered several failures building toolchains: 1. Outdated Package.resolved in [swift/FastaiNotebook_11_imagenette](https://github.com/fastai/fastai_dev/blob/master/swift/FastaiNotebook_11_imagenette/Package.resolved). 2. A regression in `ParameterlessLayer` caused by a change in type inference behavior in [swiftlang/swift#32578](swiftlang/swift#32578). This PR includes two workarounds that unblock toolchain builds: 1. Remove Package.resolved ([swift-apis/1036](tensorflow/swift-apis#1036)). Since this file is regenerated on build, it's often not necessary to include in source control. 2. Add a typealias to instances conforming to `ParameterlessLayer`, which was effective in swift-apis and swift-models (see [tensorflow/swift-apis#1037](tensorflow/swift-apis#1037)). I'm happy to create an additional PR to remove the other Package.resolved files in this repo and add to .gitignore, if desired.
1 parent 9ba4512 commit 4a33cb2

File tree

18 files changed

+67
-34
lines changed

18 files changed

+67
-34
lines changed

swift/01a_fastai_layers.ipynb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,8 @@
460460
"\n",
461461
"@frozen\n",
462462
"public struct FAAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,ParameterlessLayer {\n",
463+
" // swift-apis#1037 workaround.\n",
464+
" public typealias TangentVector = EmptyTangentVector\n",
463465
" // TF-603 workaround.\n",
464466
" public typealias Input = Tensor<Scalar>\n",
465467
" public typealias Output = Tensor<Scalar>\n",
@@ -508,6 +510,8 @@
508510
"\n",
509511
"@frozen\n",
510512
"public struct FAGlobalAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,ParameterlessLayer {\n",
513+
" // swift-apis#1037 workaround.\n",
514+
" public typealias TangentVector = EmptyTangentVector\n",
511515
" // TF-603 workaround.\n",
512516
" public typealias Input = Tensor<Scalar>\n",
513517
" public typealias Output = Tensor<Scalar>\n",

swift/FastaiNotebook_01a_fastai_layers/Sources/FastaiNotebook_01a_fastai_layers/01a_fastai_layers.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,8 @@ public extension FAConv2D {
223223

224224
@frozen
225225
public struct FAAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,ParameterlessLayer {
226+
// swift-apis#1037 workaround.
227+
public typealias TangentVector = EmptyTangentVector
226228
// TF-603 workaround.
227229
public typealias Input = Tensor<Scalar>
228230
public typealias Output = Tensor<Scalar>
@@ -263,6 +265,8 @@ public struct FAAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,Parameterles
263265

264266
@frozen
265267
public struct FAGlobalAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,ParameterlessLayer {
268+
// swift-apis#1037 workaround.
269+
public typealias TangentVector = EmptyTangentVector
266270
// TF-603 workaround.
267271
public typealias Input = Tensor<Scalar>
268272
public typealias Output = Tensor<Scalar>

swift/FastaiNotebook_02_fully_connected/Sources/FastaiNotebook_02_fully_connected/01a_fastai_layers.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,8 @@ public extension FAConv2D {
223223

224224
@frozen
225225
public struct FAAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,ParameterlessLayer {
226+
// swift-apis#1037 workaround.
227+
public typealias TangentVector = EmptyTangentVector
226228
// TF-603 workaround.
227229
public typealias Input = Tensor<Scalar>
228230
public typealias Output = Tensor<Scalar>
@@ -263,6 +265,8 @@ public struct FAAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,Parameterles
263265

264266
@frozen
265267
public struct FAGlobalAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,ParameterlessLayer {
268+
// swift-apis#1037 workaround.
269+
public typealias TangentVector = EmptyTangentVector
266270
// TF-603 workaround.
267271
public typealias Input = Tensor<Scalar>
268272
public typealias Output = Tensor<Scalar>

swift/FastaiNotebook_02a_why_sqrt5/Sources/FastaiNotebook_02a_why_sqrt5/01a_fastai_layers.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,8 @@ public extension FAConv2D {
223223

224224
@frozen
225225
public struct FAAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,ParameterlessLayer {
226+
// swift-apis#1037 workaround.
227+
public typealias TangentVector = EmptyTangentVector
226228
// TF-603 workaround.
227229
public typealias Input = Tensor<Scalar>
228230
public typealias Output = Tensor<Scalar>
@@ -263,6 +265,8 @@ public struct FAAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,Parameterles
263265

264266
@frozen
265267
public struct FAGlobalAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,ParameterlessLayer {
268+
// swift-apis#1037 workaround.
269+
public typealias TangentVector = EmptyTangentVector
266270
// TF-603 workaround.
267271
public typealias Input = Tensor<Scalar>
268272
public typealias Output = Tensor<Scalar>

swift/FastaiNotebook_03_minibatch_training/Sources/FastaiNotebook_03_minibatch_training/01a_fastai_layers.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,8 @@ public extension FAConv2D {
223223

224224
@frozen
225225
public struct FAAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,ParameterlessLayer {
226+
// swift-apis#1037 workaround.
227+
public typealias TangentVector = EmptyTangentVector
226228
// TF-603 workaround.
227229
public typealias Input = Tensor<Scalar>
228230
public typealias Output = Tensor<Scalar>
@@ -263,6 +265,8 @@ public struct FAAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,Parameterles
263265

264266
@frozen
265267
public struct FAGlobalAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,ParameterlessLayer {
268+
// swift-apis#1037 workaround.
269+
public typealias TangentVector = EmptyTangentVector
266270
// TF-603 workaround.
267271
public typealias Input = Tensor<Scalar>
268272
public typealias Output = Tensor<Scalar>

swift/FastaiNotebook_04_callbacks/Sources/FastaiNotebook_04_callbacks/01a_fastai_layers.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,8 @@ public extension FAConv2D {
223223

224224
@frozen
225225
public struct FAAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,ParameterlessLayer {
226+
// swift-apis#1037 workaround.
227+
public typealias TangentVector = EmptyTangentVector
226228
// TF-603 workaround.
227229
public typealias Input = Tensor<Scalar>
228230
public typealias Output = Tensor<Scalar>
@@ -263,6 +265,8 @@ public struct FAAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,Parameterles
263265

264266
@frozen
265267
public struct FAGlobalAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,ParameterlessLayer {
268+
// swift-apis#1037 workaround.
269+
public typealias TangentVector = EmptyTangentVector
266270
// TF-603 workaround.
267271
public typealias Input = Tensor<Scalar>
268272
public typealias Output = Tensor<Scalar>

swift/FastaiNotebook_05_anneal/Sources/FastaiNotebook_05_anneal/01a_fastai_layers.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,8 @@ public extension FAConv2D {
223223

224224
@frozen
225225
public struct FAAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,ParameterlessLayer {
226+
// swift-apis#1037 workaround.
227+
public typealias TangentVector = EmptyTangentVector
226228
// TF-603 workaround.
227229
public typealias Input = Tensor<Scalar>
228230
public typealias Output = Tensor<Scalar>
@@ -263,6 +265,8 @@ public struct FAAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,Parameterles
263265

264266
@frozen
265267
public struct FAGlobalAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,ParameterlessLayer {
268+
// swift-apis#1037 workaround.
269+
public typealias TangentVector = EmptyTangentVector
266270
// TF-603 workaround.
267271
public typealias Input = Tensor<Scalar>
268272
public typealias Output = Tensor<Scalar>

swift/FastaiNotebook_05b_early_stopping/Sources/FastaiNotebook_05b_early_stopping/01a_fastai_layers.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,8 @@ public extension FAConv2D {
223223

224224
@frozen
225225
public struct FAAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,ParameterlessLayer {
226+
// swift-apis#1037 workaround.
227+
public typealias TangentVector = EmptyTangentVector
226228
// TF-603 workaround.
227229
public typealias Input = Tensor<Scalar>
228230
public typealias Output = Tensor<Scalar>
@@ -263,6 +265,8 @@ public struct FAAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,Parameterles
263265

264266
@frozen
265267
public struct FAGlobalAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,ParameterlessLayer {
268+
// swift-apis#1037 workaround.
269+
public typealias TangentVector = EmptyTangentVector
266270
// TF-603 workaround.
267271
public typealias Input = Tensor<Scalar>
268272
public typealias Output = Tensor<Scalar>

swift/FastaiNotebook_06_cuda/Sources/FastaiNotebook_06_cuda/01a_fastai_layers.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,8 @@ public extension FAConv2D {
223223

224224
@frozen
225225
public struct FAAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,ParameterlessLayer {
226+
// swift-apis#1037 workaround.
227+
public typealias TangentVector = EmptyTangentVector
226228
// TF-603 workaround.
227229
public typealias Input = Tensor<Scalar>
228230
public typealias Output = Tensor<Scalar>
@@ -263,6 +265,8 @@ public struct FAAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,Parameterles
263265

264266
@frozen
265267
public struct FAGlobalAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,ParameterlessLayer {
268+
// swift-apis#1037 workaround.
269+
public typealias TangentVector = EmptyTangentVector
266270
// TF-603 workaround.
267271
public typealias Input = Tensor<Scalar>
268272
public typealias Output = Tensor<Scalar>

swift/FastaiNotebook_07_batchnorm/Sources/FastaiNotebook_07_batchnorm/01a_fastai_layers.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,8 @@ public extension FAConv2D {
223223

224224
@frozen
225225
public struct FAAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,ParameterlessLayer {
226+
// swift-apis#1037 workaround.
227+
public typealias TangentVector = EmptyTangentVector
226228
// TF-603 workaround.
227229
public typealias Input = Tensor<Scalar>
228230
public typealias Output = Tensor<Scalar>
@@ -263,6 +265,8 @@ public struct FAAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,Parameterles
263265

264266
@frozen
265267
public struct FAGlobalAvgPool2D<Scalar: TensorFlowFloatingPoint>: FALayer,ParameterlessLayer {
268+
// swift-apis#1037 workaround.
269+
public typealias TangentVector = EmptyTangentVector
266270
// TF-603 workaround.
267271
public typealias Input = Tensor<Scalar>
268272
public typealias Output = Tensor<Scalar>

0 commit comments

Comments
 (0)