番外篇: Mac Xcode 集成 Swift for TensorFlow
前置條件
- mac 系統(tǒng)版本 >= 10.13.5
- Xcode 版本 >=10.0bata
本人mac系統(tǒng)版本
d7359a32-3128-4a40-be63-5d9d54b8ec5d.png
本人Xcode版本
40217fba-dc8e-470b-9891-560789ef2d2f.png
安裝步驟
-
下載最新的安裝包,下載路徑見原文鏈接,然后雙擊安裝。
e75cd72d-5dbe-42d5-80b8-dbedc3200308.png
cf641cad-8f68-4f15-9e79-7194e393a529.png
4efb7500-dd97-42e6-a801-1c5b88eb5230.png
6b0d33ae-f6a0-4d18-b763-08387fb45429.png
- 安裝完成之后,打開你的 Xcode => Preferences(偏好設(shè)置),選擇 Components > Toolchains 然后勾選安裝Swift for TensorFlow。
09ca6f1b-6ee2-4ff5-9c2a-78c80ed24811.png
-
新建一個(gè) macOS 項(xiàng)目
5e776057-193b-44b0-9644-2db077c3f83c.png
- 新建一個(gè)ts_01.swift文件,文件名稱你可以隨便命名
import Foundation
import TensorFlow
struct TS_01 {
func test() {
let x = Tensor<Float>(shape: [1,2],scalars: [3,4])
print("hello TensorFlow")
print(x + x)
}
}
// 然后在 ViewController.swift 中調(diào)用
import Cocoa
class ViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
TS_01().test()
// Do any additional setup after loading the view.
}
override var representedObject: Any? {
didSet {
// Update the view, if already loaded.
}
}
}
理所當(dāng)然,肯定會(huì)報(bào)錯(cuò),官方文檔看多了,我已經(jīng)有心理準(zhǔn)備了!
dyld: Library not loaded: @rpath/libtensorflow.so.1
Referenced from: /Users/wang/Library/Developer/Xcode/DerivedData/TS_01-boxngrdtwugyroapoqjtekrpvatl/Build/Products/Debug/TS_01.app/Contents/Frameworks/libswiftTensorFlow.dylib
Reason: no suitable image found. Did find:
/Library/Developer/Toolchains/swift-tensorflow-RELEASE-0.6.xctoolchain/usr/lib/swift/macosx/libtensorflow.so.1: code signature in (/Library/Developer/Toolchains/swift-tensorflow-RELEASE-0.6.xctoolchain/usr/lib/swift/macosx/libtensorflow.so.1) not valid for use in process using Library Validation: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.
可以理解為 swift-tensorflow-RELEASE-0.6.xctoolchain
沒有生產(chǎn)簽名,只是開發(fā)用的,直接運(yùn)行的話 Xcode 認(rèn)為 這個(gè) xctoolchain 是不合法的。因此需要額外設(shè)置。參考githubhttps://github.com/tensorflow/swift/issues/351
3edd47dd-76a1-45b4-af39-24d8ac9b8ca9.png
重新跑一下項(xiàng)目,如果你看到如下輸出,恭喜你成功了!
image.png
轉(zhuǎn)載請(qǐng)注明出處,thanks