With a typical vanilla Cocoa app with the name TFImageClassifier, I ventured to copy and paste portions of the existing MNIST example code into my Cocoa app without adding any interface sugar coating but I am getting the following error in Xcode 9.3:
CompileSwift normal x86_64 /Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift
cd /Users/testuser/Desktop/TFImageClassifier
/Library/Developer/Toolchains/swift-tensorflow-DEVELOPMENT-2018-04-26-a.xctoolchain/usr/bin/swift -frontend -c -primary-file /Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift /Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/AppDelegate.swift -target x86_64-apple-macosx10.13 -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -I /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Products/Debug -F /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Products/Debug -enable-testing -g -module-cache-path /Users/testuser/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -swift-version 4 -enforce-exclusivity=checked -Onone -D DEBUG -serialize-debugging-options -Xcc -I/Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/TFImageClassifier-generated-files.hmap -Xcc -I/Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/TFImageClassifier-own-target-headers.hmap -Xcc -I/Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/TFImageClassifier-all-target-headers.hmap -Xcc -iquote -Xcc /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/TFImageClassifier-project-headers.hmap -Xcc -I/Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Products/Debug/include -Xcc -I/Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/DerivedSources/x86_64 -Xcc -I/Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/DerivedSources -Xcc -DDEBUG=1 -Xcc -working-directory/Users/testuser/Desktop/TFImageClassifier -emit-module-doc-path /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/Objects-normal/x86_64/ViewController~partial.swiftdoc -serialize-diagnostics-path /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/Objects-normal/x86_64/ViewController.dia -module-name TFImageClassifier -emit-module-path /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/Objects-normal/x86_64/ViewController~partial.swiftmodule -emit-dependencies-path /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/Objects-normal/x86_64/ViewController.d -emit-reference-dependencies-path /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/Objects-normal/x86_64/ViewController.swiftdeps -o /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/Objects-normal/x86_64/ViewController.o -index-store-path /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Index/DataStore -index-system-modules
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:63:35: warning: value implicitly copied to the accelerator, use .toDevice() to make transfer explicit
let labels = Tensor<Float>(oneHotAtIndices: numericLabels, depth: 10, axis: -1)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:63:35: warning: value implicitly copied to the accelerator, use .toDevice() to make transfer explicit
let labels = Tensor<Float>(oneHotAtIndices: numericLabels, depth: 10, axis: -1)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:61:39: warning: class methods always cause a copy to the accelerator, use .toDevice() to make transfer explicit
let (images, numericLabels) = readMnist(imagesFile: imagesFile,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:63:34: note: value used here
let labels = Tensor<Float>(oneHotAtIndices: numericLabels, depth: 10, axis: -1)
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:71:30: warning: 'Tensor<Float>' implicitly copied to the accelerator, use .toDevice() to make transfer explicit
var w1 = Tensor<Float>(randomUniform: [784, 30])
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:72:30: warning: 'Tensor<Float>' implicitly copied to the accelerator, use .toDevice() to make transfer explicit
var w2 = Tensor<Float>(randomUniform: [30, 10])
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:73:30: warning: 'Tensor<Float>' implicitly copied to the accelerator, use .toDevice() to make transfer explicit
var b1 = Tensor<Float>(zeros: [1, 30])
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
IMPLICIT COPY TO ACCEL OF: %341 = apply %339<Int32>(%315) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@owned Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %345, %344, %342
IMPLICIT COPY TO ACCEL BY: %344 = builtin "__tfop_Fill,$in,$in"(%341 : $TensorHandle<Int32>, %343 : $TensorHandle<Float>) : $TensorHandle<Float> // users: %536, %347
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:73:30: warning: 'Tensor<Float>' implicitly copied to the accelerator, use .toDevice() to make transfer explicit
var b1 = Tensor<Float>(zeros: [1, 30])
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:74:30: warning: 'Tensor<Float>' implicitly copied to the accelerator, use .toDevice() to make transfer explicit
var b2 = Tensor<Float>(zeros: [1, 10])
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
IMPLICIT COPY TO ACCEL OF: %408 = apply %406<Int32>(%382) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@owned Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %412, %411, %409
IMPLICIT COPY TO ACCEL BY: %411 = builtin "__tfop_Fill,$in,$in"(%408 : $TensorHandle<Int32>, %410 : $TensorHandle<Float>) : $TensorHandle<Float> // users: %536, %414
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:74:30: warning: 'Tensor<Float>' implicitly copied to the accelerator, use .toDevice() to make transfer explicit
var b2 = Tensor<Float>(zeros: [1, 10])
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
IMPLICIT COPY TO ACCEL OF: %1253 = struct_extract %1252 : $Bool, #Bool._value // user: %1254
IMPLICIT COPY TO ACCEL BY: cond_br %1253, bb50, bb51 // id: %1254
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:106:19: warning: method result implicitly copied to the accelerator, use .toDevice() to make transfer explicit
} while i < iterationCount
~~^~~~~~~~~~~~~~~~
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:61:39: warning: class methods always cause a copy to the accelerator, use .toDevice() to make transfer explicit
let (images, numericLabels) = readMnist(imagesFile: imagesFile,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:82:29: note: value used here
let z1 = images ⊗ w1 + b1
IMPLICIT COPY TO ACCEL OF: %1255 = struct_extract %1066 : $Tensor<Float>, #Tensor.handle // user: %1259
IMPLICIT COPY TO ACCEL BY: %559 = builtin "__tfop_MatMul,$in,$in"(%135 : $TensorHandle<Float>, %541 : $TensorHandle<Float>) : $TensorHandle<Float> // users: %574, %570, %568
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:96:16: warning: method result implicitly copied to the accelerator, use .toDevice() to make transfer explicit
w1 -= dw1 * learningRate
~~~^~~~~~~~~~~~~~~~~~~~~
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:82:29: note: value used here
let z1 = images ⊗ w1 + b1
IMPLICIT COPY TO ACCEL OF: %1256 = struct_extract %1088 : $Tensor<Float>, #Tensor.handle // user: %1259
IMPLICIT COPY TO ACCEL BY: %570 = builtin "__tfop_Add,$in,$in"(%559 : $TensorHandle<Float>, %542 : $TensorHandle<Float>) : $TensorHandle<Float> // users: %1247, %598, %596, %595, %578, %571
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:97:16: warning: method result implicitly copied to the accelerator, use .toDevice() to make transfer explicit
b1 -= db1 * learningRate
~~~^~~~~~~~~~~~~~~~~~~~~
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:82:36: note: value used here
let z1 = images ⊗ w1 + b1
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:83:22: warning: value implicitly copied to the accelerator, use .toDevice() to make transfer explicit
let h1 = sigmoid(z1)
^~~~~~~~~~~
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:83:22: warning: value implicitly copied to the accelerator, use .toDevice() to make transfer explicit
let h1 = sigmoid(z1)
^~~~~~~~~~~
IMPLICIT COPY TO ACCEL OF: %1257 = struct_extract %1112 : $Tensor<Float>, #Tensor.handle // user: %1259
IMPLICIT COPY TO ACCEL BY: %632 = builtin "__tfop_MatMul,$in,$in"(%615 : $TensorHandle<Float>, %554 : $TensorHandle<Float>) : $TensorHandle<Float> // users: %646, %642, %640
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:98:16: warning: method result implicitly copied to the accelerator, use .toDevice() to make transfer explicit
w2 -= dw2 * learningRate
~~~^~~~~~~~~~~~~~~~~~~~~
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:84:25: note: value used here
let z2 = h1 ⊗ w2 + b2
IMPLICIT COPY TO ACCEL OF: %1258 = struct_extract %1134 : $Tensor<Float>, #Tensor.handle // user: %1259
IMPLICIT COPY TO ACCEL BY: %642 = builtin "__tfop_Add,$in,$in"(%632 : $TensorHandle<Float>, %555 : $TensorHandle<Float>) : $TensorHandle<Float> // users: %1245, %670, %668, %667, %650, %643
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:99:16: warning: method result implicitly copied to the accelerator, use .toDevice() to make transfer explicit
b2 -= db2 * learningRate
~~~^~~~~~~~~~~~~~~~~~~~~
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:84:32: note: value used here
let z2 = h1 ⊗ w2 + b2
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:85:31: warning: value implicitly copied to the accelerator, use .toDevice() to make transfer explicit
let predictions = sigmoid(z2)
^~~~~~~~~~~
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:85:31: warning: value implicitly copied to the accelerator, use .toDevice() to make transfer explicit
let predictions = sigmoid(z2)
^~~~~~~~~~~
IMPLICIT COPY TO ACCEL OF: %757 = apply %755<Int32>(%736) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@owned Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %764, %761, %760
IMPLICIT COPY TO ACCEL BY: %761 = builtin "__tfop_Transpose,$in,$in,Tperm"(%626 : $TensorHandle<Float>, %757 : $TensorHandle<Int32>, %759 : $@thin Int32.Type) : $TensorHandle<Float> // users: %776, %772, %770, %762
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:89:26: warning: method result implicitly copied to the accelerator, use .toDevice() to make transfer explicit
let dw2 = h1.transposed(withPermutations: 1, 0) ⊗ dz2
IMPLICIT COPY TO ACCEL OF: %823 = apply %820<Int32>(%806) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@owned Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // user: %826
IMPLICIT COPY TO ACCEL BY: %826 = builtin "__tfop_Sum,$in,$in,keep_dims,Tidx"(%701 : $TensorHandle<Float>, %823 : $TensorHandle<Int32>, %824 : $Builtin.Int1, %825 : $@thin Int32.Type) : $TensorHandle<Float> // users: %1241, %1121, %1120, %1118, %1117, %827
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:90:27: warning: method result implicitly copied to the accelerator, use .toDevice() to make transfer explicit
let db2 = dz2.sum(squeezingAxes: 0)
~~~~^~~~~~~~~~~~~~~~~~~~~
IMPLICIT COPY TO ACCEL OF: %883 = apply %881<Int32>(%862) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@owned Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %889, %887, %886
IMPLICIT COPY TO ACCEL BY: %887 = builtin "__tfop_Transpose,$in,$in,Tperm"(%565 : $TensorHandle<Float>, %883 : $TensorHandle<Int32>, %885 : $@thin Int32.Type) : $TensorHandle<Float> // users: %897, %895, %894
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:91:34: warning: method result implicitly copied to the accelerator, use .toDevice() to make transfer explicit
let dz1 = dz2.dot(w2.transposed(withPermutations: 1, 0)) * h1 * (1 - h1)
~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:61:39: warning: class methods always cause a copy to the accelerator, use .toDevice() to make transfer explicit
let (images, numericLabels) = readMnist(imagesFile: imagesFile,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:92:30: note: value used here
let dw1 = images.transposed(withPermutations: 1, 0) ⊗ dz1
IMPLICIT COPY TO ACCEL OF: %974 = apply %972<Int32>(%953) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@owned Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %980, %978, %977
IMPLICIT COPY TO ACCEL BY: %978 = builtin "__tfop_Transpose,$in,$in,Tperm"(%158 : $TensorHandle<Float>, %974 : $TensorHandle<Int32>, %976 : $@thin Int32.Type) : $TensorHandle<Float> // users: %992, %988, %986
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:92:30: warning: method result implicitly copied to the accelerator, use .toDevice() to make transfer explicit
let dw1 = images.transposed(withPermutations: 1, 0) ⊗ dz1
IMPLICIT COPY TO ACCEL OF: %1039 = apply %1036<Int32>(%1022) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@owned Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // user: %1042
IMPLICIT COPY TO ACCEL BY: %1042 = builtin "__tfop_Sum,$in,$in,keep_dims,Tidx"(%918 : $TensorHandle<Float>, %1039 : $TensorHandle<Int32>, %1040 : $Builtin.Int1, %1041 : $@thin Int32.Type) : $TensorHandle<Float> // users: %1238, %1075, %1074, %1072, %1071, %1043
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:93:27: warning: method result implicitly copied to the accelerator, use .toDevice() to make transfer explicit
let db1 = dz1.sum(squeezingAxes: 0)
~~~~^~~~~~~~~~~~~~~~~~~~~
IMPLICIT COPY TO ACCEL OF: %1192 = apply %1189<Int32>(%1170) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@owned Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // user: %1195
IMPLICIT COPY TO ACCEL BY: %1195 = builtin "__tfop_Mean,$in,$in,keep_dims,Tidx"(%1140 : $TensorHandle<Float>, %1192 : $TensorHandle<Int32>, %1193 : $Builtin.Int1, %1194 : $@thin Int32.Type) : $TensorHandle<Float> // users: %1219, %1211, %1210
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:102:34: warning: method result implicitly copied to the accelerator, use .toDevice() to make transfer explicit
loss = dz2.squared().mean(squeezingAxes: 1, 0).scalarized()
~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
IMPLICIT COPY TO ACCEL OF: %1209 = apply %1207<Int32>(%1203) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@owned Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // user: %1211
IMPLICIT COPY TO ACCEL BY: %1211 = builtin "__tfop_Reshape,$in,$in"(%1195 : $TensorHandle<Float>, %1209 : $TensorHandle<Int32>) : $TensorHandle<Float> // user: %1215
/Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:102:60: warning: method result implicitly copied to the accelerator, use .toDevice() to make transfer explicit
loss = dz2.squared().mean(squeezingAxes: 1, 0).scalarized()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
Assertion failed: (retainReleaseBalance >= 0), function balanceRetainReleaseCount, file /Users/danielzheng/swift-new/swift/lib/SILOptimizer/Mandatory/TFPartition.cpp, line 2775.
0 swift 0x00000001040c1d78 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40
1 swift 0x00000001040c2486 SignalHandler(int) + 694
2 libsystem_platform.dylib 0x00007fff64a4bf5a _sigtramp + 26
3 libsystem_platform.dylib 0x00007ffeef37ea01 _sigtramp + 2324900545
4 libsystem_c.dylib 0x00007fff64876312 abort + 127
5 libsystem_c.dylib 0x00007fff6483e368 basename_r + 0
6 swift 0x00000001012c93b4 (anonymous namespace)::TFFunctionPartition::insertTensorComputationStartEndTerminate(llvm::ArrayRef<swift::SILValue>) + 12084
7 swift 0x00000001012b73e2 (anonymous namespace)::TFFunctionPartition::partition() + 1986
8 swift 0x00000001012b2558 (anonymous namespace)::TFPartition::run() + 1080
9 swift 0x00000001011fdb53 swift::SILPassManager::runPassOnFunction(unsigned int, swift::SILFunction*) + 1475
10 swift 0x00000001011feaa3 swift::SILPassManager::runFunctionPasses(unsigned int, unsigned int) + 1315
11 swift 0x00000001011ff764 swift::SILPassManager::execute() + 660
12 swift 0x0000000100a3c63b swift::SILPassManager::executePassPipelinePlan(swift::SILPassPipelinePlan const&) + 187
13 swift 0x00000001012089a3 swift::runSILTFPartitionPass(swift::SILModule&) + 99
14 swift 0x00000001008cd8f2 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) + 13490
15 swift 0x00000001008c942e swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 3310
16 swift 0x000000010087ff83 main + 2051
17 libdyld.dylib 0x00007fff647ca115 start + 1
18 libdyld.dylib 0x0000000000000043 start + 2609078063
Stack dump:
0. Program arguments: /Library/Developer/Toolchains/swift-tensorflow-DEVELOPMENT-2018-04-26-a.xctoolchain/usr/bin/swift -frontend -c -primary-file /Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift /Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/AppDelegate.swift -target x86_64-apple-macosx10.13 -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -I /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Products/Debug -F /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Products/Debug -enable-testing -g -module-cache-path /Users/testuser/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -swift-version 4 -enforce-exclusivity=checked -Onone -D DEBUG -serialize-debugging-options -Xcc -I/Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/TFImageClassifier-generated-files.hmap -Xcc -I/Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/TFImageClassifier-own-target-headers.hmap -Xcc -I/Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/TFImageClassifier-all-target-headers.hmap -Xcc -iquote -Xcc /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/TFImageClassifier-project-headers.hmap -Xcc -I/Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Products/Debug/include -Xcc -I/Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/DerivedSources/x86_64 -Xcc -I/Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/DerivedSources -Xcc -DDEBUG=1 -Xcc -working-directory/Users/testuser/Desktop/TFImageClassifier -emit-module-doc-path /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/Objects-normal/x86_64/ViewController~partial.swiftdoc -serialize-diagnostics-path /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/Objects-normal/x86_64/ViewController.dia -module-name TFImageClassifier -emit-module-path /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/Objects-normal/x86_64/ViewController~partial.swiftmodule -emit-dependencies-path /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/Objects-normal/x86_64/ViewController.d -emit-reference-dependencies-path /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/Objects-normal/x86_64/ViewController.swiftdeps -o /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Build/Intermediates.noindex/TFImageClassifier.build/Debug/TFImageClassifier.build/Objects-normal/x86_64/ViewController.o -index-store-path /Users/testuser/Library/Developer/Xcode/DerivedData/TFImageClassifier-dhgxpyvnqbzvumbysistfzrsimkg/Index/DataStore -index-system-modules
1. While running pass #70 SILFunctionTransform "TFPartition" on SILFunction "@$S17TFImageClassifier14ViewControllerC4mainyyF".
for 'main()' at /Users/testuser/Desktop/TFImageClassifier/TFImageClassifier/ViewController.swift:47:5
//
// ViewController.swift
// TFImageClassifier
//
// Created by Shyamal Chandra on 4/26/18.
// Copyright © 2018 Shyamal Chandra. All rights reserved.
//
import Cocoa
import TensorFlow
class ViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
main()
// Do any additional setup after loading the view.
}
override var representedObject: Any? {
didSet {
// Update the view, if already loaded.
}
}
// Code taken from: https://raw.githubusercontent.com/tensorflow/swift-models/master/MNIST/MNIST.swift
public func readMnist(
imagesFile: String, labelsFile: String
) -> (Tensor<Float>, Tensor<Int32>) {
print("Reading data.")
let imageData =
try! Data(contentsOf: URL(fileURLWithPath: imagesFile)).dropFirst(16)
let labelData =
try! Data(contentsOf: URL(fileURLWithPath: labelsFile)).dropFirst(8)
let images = imageData.map { Float($0) }
let labels = labelData.map { Int32($0) }
let rowCount = Int32(labels.count)
let columnCount = Int32(images.count) / rowCount
print("Constructing data tensors.")
let imagesTensor = Tensor(shape: [rowCount, columnCount], scalars: images)
let labelsTensor = Tensor(labels)
return (imagesTensor.toDevice(), labelsTensor.toDevice())
}
func main() {
// Get script directory. This is necessary for MNIST.swift to work when
// invoked from any directory.
let currentDirectory =
URL(fileURLWithPath: FileManager.default.currentDirectoryPath)
let currentScriptPath =
URL(fileURLWithPath: CommandLine.arguments[0], relativeTo: currentDirectory)
let scriptDirectory = currentScriptPath.appendingPathComponent("..")
// Get training data.
let imagesFile =
scriptDirectory.appendingPathComponent("train-images-idx3-ubyte").path
let labelsFile =
scriptDirectory.appendingPathComponent("train-labels-idx1-ubyte").path
let (images, numericLabels) = readMnist(imagesFile: imagesFile,
labelsFile: labelsFile)
let labels = Tensor<Float>(oneHotAtIndices: numericLabels, depth: 10, axis: -1)
// Hyper-parameters.
let iterationCount: Int32 = 20
let learningRate: Float = 0.2
var loss = Float.infinity
// Parameters.
var w1 = Tensor<Float>(randomUniform: [784, 30])
var w2 = Tensor<Float>(randomUniform: [30, 10])
var b1 = Tensor<Float>(zeros: [1, 30])
var b2 = Tensor<Float>(zeros: [1, 10])
// Training loop.
print("Begin training for \(iterationCount) iterations.")
var i: Int32 = 0
repeat {
// Forward pass.
let z1 = images ⊗ w1 + b1
let h1 = sigmoid(z1)
let z2 = h1 ⊗ w2 + b2
let predictions = sigmoid(z2)
// Backward pass.
let dz2 = predictions - labels
let dw2 = h1.transposed(withPermutations: 1, 0) ⊗ dz2
let db2 = dz2.sum(squeezingAxes: 0)
let dz1 = dz2.dot(w2.transposed(withPermutations: 1, 0)) * h1 * (1 - h1)
let dw1 = images.transposed(withPermutations: 1, 0) ⊗ dz1
let db1 = dz1.sum(squeezingAxes: 0)
// Gradient descent.
w1 -= dw1 * learningRate
b1 -= db1 * learningRate
w2 -= dw2 * learningRate
b2 -= db2 * learningRate
// Update loss.
loss = dz2.squared().mean(squeezingAxes: 1, 0).scalarized()
// Update iteration count.
i += 1
} while i < iterationCount
// Print loss.
print("Loss: \(loss)")
}
}