Python용 TensorFlow 코드를 Swift용으로 컨버팅
2023. 4. 21. 10:53ㆍ아이폰 개발
Swift용 TensorFlow 라이브러리에서는 tf.gather나 tf.broadcast_to 등과 같은 간단한 함수들조차 제공하지 않아서, Python에서는 쉽게 구현한 코드를 Swift용으로 컨버팅을 하려면 같은 결과를 만드는 사용자 정의 함수를 만들어서 사용해야 한다. Swift에서 이미 배열 연산을 제공하기 때문에 크게 어렵지 않게 직접 구현 가능하다.
https://www.tensorflow.org/api_docs/python/tf/gather
https://www.tensorflow.org/api_docs/python/tf/math/reduce_max
iOS 16부터 지원하는 BNNS 라이브러리에서 동일한 함수를 제공하기는 하는데, 굳이 사용할 필요가 없다.
https://developer.apple.com/documentation/accelerate/3929412-bnnsgather
Matft 라이브러리는 여전히 유용하게 사용 가능하다. 일반 배열을 MfArray로 변환해서 연산을 처리한 다음, 결과는 다시 일반 배열로 바꾸는 식으로 처리하면 된다.
https://github.com/jjjkkkjjj/Matft
번외로 Python 버전 TensorFlow 프로그램을 M2 맥북에어에서 실행하려니, tensorflow 라이브러리에서 문제가 생긴다.
python -m pip install tensorflow-macos==2.7.0