S4TF
2022/11/9にarchiveされている
2021の時点で止まっていたっぽい
install
installはしたが、import TensorFlowは一回もうまく行っていない,,,
replでも、xcode上でも、、、
tutorial
colab試すよう
https://www.youtube.com/watch?v=Yze693W4MaU
コード実行の前に行列計算の次元などの型チェックができる
具体的には?
研究のためのUsabilityとPerformanceを実現する
以下の3つの機能は、Swiftでなくても実装できる
automatic differentiation
Python language interoperability
tfのuserbilityを向上させることが目的
研究者や、エンジニア
tfを使う人が生産的で楽しめるものに
静的チェックが必要なためPythonはGraph Program Extractionを実現できない
プロジェクトの目的
表現力
メタプログラミングせずに、直接的に数値APIやホスト言語をプログラミングしてるように感じられるように
パフォーマンス
CPU, GPU, TPUなどの上で高速に
スケールする場面で使えるようにサポート
速い反復時間
生産的なワークフローにするためにツールが邪魔をしてはならない
デバッグの容易さ
etc
コミュニティ
学習曲線が緩やか
メモリ安全
など
パフォーマンス
並列性
Custom Ops
よくわからんmrsekut.icon
Custom Opsがそもそも何のためにあるのか
何が大変なのか
から未読
ユーザー定義のデータ構造をさぽーと
tf以外のライブラリにも組み込み可
コンパイラが必要なのでPythonでは実現できない
Graph Program Extraction
Python Interoperability
Pythonの長所の1つが科学計算ライブラリの充実
Swift for TensorflowではPythonライブラリをあたかもSwiftのライブラリのように使える
ptyhon のランタイムをembedしてる
pythonは動的型
swiftは静的型
pythonのライブラリをあたかもswiftのライブラリとして使う
swift 4.2
dynamic member lookup
rubyのmethod missingのようなもの
静的型付けなのに?
tf
python上でsyntax treeを作り、それを微分
メタプログラミングっぽい
DSL
pytorch
chainer
実行結果を全部記録
遅い
swiftのコードをパースし、構文木を取り出して、微分をさせる
コンパイラのAPIを使って(?)
既存のフレームワーク
Pythonのパースした結果を取るAPIを使ってPyTorchやCaffeの実行エンジンで動くものに変換する
Pythonのサブセットを使って、マシンラーニングのモデルを表現する
Swift for TensorflowはPythonのサブセットを使わない
というかサブセットじゃなくて良くする
Pythonで表現できないものは、Swiftに戻ってきて実行する
どんなコードを書いても
tfでできるところはtfで、できないところはSwiftのコンパイラがネイティブのコードにする
TF XLA
facebook
intel Ngraph
amazon nnvm
ためす
参考
一通り調べた後にもう一度読もう