Categories
程式開發

跨越重重“障礙”,我從PyTorch 轉換為了TensorFlow Lite


本文最初發表在Towards Data Science 博客,經原作者Ran Rubin 授權,InfoQ 中文站翻譯並分享。

本文作者分享了他在PyTorch 到TensorFlow 之間轉換的經驗,或許可以給我們一些啟發。

簡介

我最近不得不將深度學習模型(MobileNetV2的變體)從火炬轉換為TensorFlow Lite。這是一個漫長而復雜的旅程。需要跨越很多障礙才能成功。我發現自己從StackOverflow 帖子和GitHub 的問題中蒐集了一些信息。我的目標是分享我的經驗,以幫助其他像我一樣“迷失”的人。

免責聲明:本文並非關於如何正確進行轉換的指南。我只想分享我的經驗,但我也有可能做錯(尤其是因為我沒有TensorFlow 的經驗)。

任務

將深度學習模型(MobileNetV2 變體)從PyTorch 轉換為TensorFlow Lite,轉換過程應該是這樣的:

PyTorch→ONNX→TensorFlow→TFLite

測試

為了測試轉換後的模型,我生成了一組大約1000 個輸入張量,並為每個模型計算了PyTorch 模型的輸出。這個集合後來被用來測試每個轉換後的模型,方法是通過一個平均誤差度量,在整個集合中將它們的輸出與原始輸出進行比較。在相同的輸入下,平均誤差反映了在相同的輸入下,轉換後的模型輸出與原始PyTorch 模型輸出相比有多大的不同。

原文鏈接:【https://www.infoq.cn/article/ACQFj4IqyKL48NEXoeox】。未經作者許可,禁止轉載。