【💊 Python的解憂錦囊】torch.hub.load載入Local模型

2023/10/03閱讀時間約 2 分鐘
圖片來源

圖片來源

最近正好在研究「silero-vad」這套工具, 但根據官方教學,預設的載入方式會從網路上進行下載模型的動作:

model, utils = torch.hub.load(repo_or_dir='snakers4/silero-vad',
model='silero_vad',
force_reload=True)

而這樣的方式雖然簡易,但面對於大部分客戶來說,仍然希望能夠以本地端的方式來載入模型,來隔絕外網連線的風險可能性,俗話說遠水救不了近火,本地端載入肯定比遠端來的快啊! 因此我們基於這兩點的考量之下決定來研究看看如何進行本地端載入的模式。

那我們可以直接在「repo_or_dir」的參數將路徑指向實體路徑, 並配合「sorce=’local’」的參數即可,並且詳細說明在註解之中了,請取用…。

torch.hub.load(
# 本地的目錄位置
# P.S 預設的路徑會在「/root/.cache/torch/hub/…」。
repo_or_dir='/root/.cache/torch/hub/snakers4_silero-vad_master',

# 專案中「hubconf.py」的可呼叫function
# 白話來說就是模型的載入方式...
model='silero_vad',

# github or local
source='local'
)

關於model參數

我們可以看看「model」參數可以用哪些方式來載入模型,以silero-vad為例,我們可以看到以下四種方式可以載入:

https://github.com/snakers4/silero-vad/blob/master/hubconf.py#L30

raw-image


關於source參數

我們來看看原始碼的部份, 僅支援github與local。

https://github.com/pytorch/pytorch/blob/main/torch/hub.py#L558

raw-image


結語

AI領域的道路還真是走得不太容易,許多套件與模型的方式各有千秋,我們沒辦法只會一套功夫就走遍天下,因此只能不斷的學習與發問,深入探究問題的真正原因才能得到一個好的解答,我們分享解惑的過程也是為了讓大家培養問題解決的能力。

學習軟體開發的路上常常苦於網路資訊爆炸嗎? 教學何其多,但卻遇到無法明確選擇的困境呢? 歡迎加入「🔒 阿Han的軟體心法實戰營」, 這裡不給您冗餘的雜訊, 單刀直入直接送您業界開發重點, 避開選擇障礙的困境, 讓您獲得業界標準的開發起手式, 成為Top 1的頂尖人才。

91會員
260內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
發表第一個留言支持創作者!