【AI訓練故障篇】FloatTensor and cuda.FloatTensor should be the same

更新於 發佈於 閱讀時間約 3 分鐘
raw-image
圖片來源

我們已經介紹過關於Transformer模型的平台「【Hugging Face】Ep.1 平凡人也能玩的起的AI平台」,而操作的過程中相信也會有不少玩家會遇到這樣的狀況,因此將遇到的問題整理並分享解決方法,讓需要的朋友可以參考一下。

問題

Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be the same or input should be a MKLDNN tensor and weight is a dense tensor

前景提要

故事是這樣的, 小明是個軟體工程師, 專門研究語音辨識領域的技術, 有一天進行wav2vec2的語音辨識模型進行辨識時, 竟然在關鍵時刻發生了錯誤, 而這個錯誤可能也會是其他人遇到的狀況, 因此決定將過程好好整理一番, 以幫助在相同技術道路上的夥伴一起突破難關。

raw-image

圖片來源...

首先小明使用了wav2vec2的語辨模型, 並載入中文模型「wav2vec2-large-xlsr-53-chinese-zh-cn-gpt」, 並期望使用GPU加速辨識速度, 因此將DEVICE設定為cuda。

from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor
SRC_MODEL = 'ydshieh/wav2vec2-large-xlsr-53-chinese-zh-cn-gpt'
DEVICE = 'cuda'
processor = Wav2Vec2Processor.from_pretrained(SRC_MODEL)
model = Wav2Vec2ForCTC.from_pretrained(SRC_MODEL).to(DEVICE)

接著就直接對音檔進行辨識。

audio_buffer, _ = sf.read('test.wav')

input_values = processor(audio_buffer, sampling_rate=16000, return_tensors="pt").input_values

logits = model(input_values).logits

predicted_ids = torch.argmax(logits, dim=-1)

transcription = processor.decode(predicted_ids[0])

transcription

結果竟然出錯了…, 這應該怎麼辦呢?

RuntimeError: Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) ...

原因

根據錯誤訊息推測大致是輸入類型是CPU(torch.FloatTensor), 但模型類型是GPU(torch.cuda.FloatTensor), 因此需要將數據來源轉成GPU的類型才能相符。

如何解決

我們試著將音訊數據轉成「torch.cuda.FloatTensor」類型的資料。

input_values = input_values.to(DEVICE)

如此一來模型與數據的資料型態就會都一致了, 畢竟GPU與CPU並不相容,因此進行運算時也要非常的小心…。

留言
avatar-img
留言分享你的想法!
avatar-img
阿Han的沙龍
129會員
282內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
阿Han的沙龍的其他內容
2025/01/29
🤔 簡單且靜態就足夠了? 相信我們在開發Python應用程式的過程中, 常常會借用Enum來定義我們可能的選項, 就像顏色紅、綠、黃會有這樣的結構: class Color(str, Enum): RED = 'red' GREED = 'green' YELLOW = 'yel
Thumbnail
2025/01/29
🤔 簡單且靜態就足夠了? 相信我們在開發Python應用程式的過程中, 常常會借用Enum來定義我們可能的選項, 就像顏色紅、綠、黃會有這樣的結構: class Color(str, Enum): RED = 'red' GREED = 'green' YELLOW = 'yel
Thumbnail
2025/01/08
當我們的系統發展到一定程度時, 難免會面臨到正式上線的問題, 要如何讓維運更加簡易呢? 尤其隨著複雜的客製化配置的出現時, 我們應該如何有效的管理, 甚至驗證配置是否如預期資料型態、格式…, 而正好 pydantic 可以滿足這樣的需求, 就讓我們來看看怎麼使用吧! 需安裝的套件 pip i
Thumbnail
2025/01/08
當我們的系統發展到一定程度時, 難免會面臨到正式上線的問題, 要如何讓維運更加簡易呢? 尤其隨著複雜的客製化配置的出現時, 我們應該如何有效的管理, 甚至驗證配置是否如預期資料型態、格式…, 而正好 pydantic 可以滿足這樣的需求, 就讓我們來看看怎麼使用吧! 需安裝的套件 pip i
Thumbnail
2025/01/02
要如何使用unicorn啟動多個FastAPI服務, 歡迎參考我們的「【💊 Python的解憂錦囊 - FastAPI】如何啟動多個Workers」。 當我們試著設計帶入模組化時… 我們在「【💊 Python的解憂錦囊 - FastAPI】使用 lifespan 來共享資料與管理生命週期
Thumbnail
2025/01/02
要如何使用unicorn啟動多個FastAPI服務, 歡迎參考我們的「【💊 Python的解憂錦囊 - FastAPI】如何啟動多個Workers」。 當我們試著設計帶入模組化時… 我們在「【💊 Python的解憂錦囊 - FastAPI】使用 lifespan 來共享資料與管理生命週期
Thumbnail
看更多
你可能也想看
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 129 中說,Bidirectional Encoder Representations from Transformers (BER
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 129 中說,Bidirectional Encoder Representations from Transformers (BER
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在 AI說書 - 從0開始 - 127 中提及: Transformer 的關鍵參數為: 原始 Transformer 模型中,左圖的 N = 6 原始 Tran
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在 AI說書 - 從0開始 - 127 中提及: Transformer 的關鍵參數為: 原始 Transformer 模型中,左圖的 N = 6 原始 Tran
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 39 至 AI說書 - 從0開始 - 69 的第二章內容,我們拿 Encoder 出來看: 幾點注意如下: BERT 模型使用 M
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 39 至 AI說書 - 從0開始 - 69 的第二章內容,我們拿 Encoder 出來看: 幾點注意如下: BERT 模型使用 M
Thumbnail
本文介紹了self-attention在處理不固定大小輸入值時的應用,並討論瞭如何計算self-attention以及transformer中的multi-head self-attention。此外,文章還探討了在語音辨識和圖片處理中使用self-attention的方法,以及與CNN的比較。
Thumbnail
本文介紹了self-attention在處理不固定大小輸入值時的應用,並討論瞭如何計算self-attention以及transformer中的multi-head self-attention。此外,文章還探討了在語音辨識和圖片處理中使用self-attention的方法,以及與CNN的比較。
Thumbnail
前言 在先前的文章中,我們探討了 IBM Watsonx 在客戶滿意度分析中的應用。今天,我們將利用 Google 的兩款大型語言模型(LLM)— flan-ul2 和 flan-t5-xxl,展示它們如何串聯起來生成關於特定主題的隨機問題和回答。 在這篇文章中,將使用 SimpleSequen
Thumbnail
前言 在先前的文章中,我們探討了 IBM Watsonx 在客戶滿意度分析中的應用。今天,我們將利用 Google 的兩款大型語言模型(LLM)— flan-ul2 和 flan-t5-xxl,展示它們如何串聯起來生成關於特定主題的隨機問題和回答。 在這篇文章中,將使用 SimpleSequen
Thumbnail
前言 在上一篇文章中,分享了第一次使用 IBM Watsonx 的經歷,以及我對 Prompt lab 功能的初步探索。繼續這個話題,本文將探討 Watsonx 平台對 Python SDK 的支持,以及實作幾個 LLM 的應用,這一特性為開發者提供了極大的便利,使得在此平台上進行開發和應用大型語
Thumbnail
前言 在上一篇文章中,分享了第一次使用 IBM Watsonx 的經歷,以及我對 Prompt lab 功能的初步探索。繼續這個話題,本文將探討 Watsonx 平台對 Python SDK 的支持,以及實作幾個 LLM 的應用,這一特性為開發者提供了極大的便利,使得在此平台上進行開發和應用大型語
Thumbnail
本篇文章為大家導讀近日火熱的Mamba Paper,新聞標題說它是Transformer的繼任者,是否真是如此? 讓我們一起一探究竟,本文著重介紹論文前半部分。
Thumbnail
本篇文章為大家導讀近日火熱的Mamba Paper,新聞標題說它是Transformer的繼任者,是否真是如此? 讓我們一起一探究竟,本文著重介紹論文前半部分。
Thumbnail
要檢查兩段長篇文字,內容是否雷同,長久以來困擾著大家,沒有好的嵌入模型,會耗費大量人力,需要對長篇文檔進行人工閱讀然後人工分類。本文除了展示如何能完美的解決這個痛點以外,也提供一些延伸應用思路,學習CP值很高。期待你能從本文取得許多新的應用思路與應用潛力!
Thumbnail
要檢查兩段長篇文字,內容是否雷同,長久以來困擾著大家,沒有好的嵌入模型,會耗費大量人力,需要對長篇文檔進行人工閱讀然後人工分類。本文除了展示如何能完美的解決這個痛點以外,也提供一些延伸應用思路,學習CP值很高。期待你能從本文取得許多新的應用思路與應用潛力!
Thumbnail
嘗試一個微調金融領域的 LLM:FinGPT (一個追求開源、輕量、低成本的微調在金融領域的 LLM(大型語言模型)),來做新聞標題情感(Sentiment)極性辨識。 PS. 有附註 Hugging Face 模型下載與 cache 路徑自定義說明 因為研究題目,最近在接觸各種金融領域微調(
Thumbnail
嘗試一個微調金融領域的 LLM:FinGPT (一個追求開源、輕量、低成本的微調在金融領域的 LLM(大型語言模型)),來做新聞標題情感(Sentiment)極性辨識。 PS. 有附註 Hugging Face 模型下載與 cache 路徑自定義說明 因為研究題目,最近在接觸各種金融領域微調(
Thumbnail
Hi, 我是茶桁。 在前一讲中,我们观察到大型模型的确表现出良好效果。在情感分析任务中,通过使用 OpenAI API 提供的 Embedding,我们得到的结果要比能在单个机器上运行的较小模型(如T5-base)要好得多。然而,我们之前所选择的问题确实有些过于简单。我们将5个不同的评分分成了正面
Thumbnail
Hi, 我是茶桁。 在前一讲中,我们观察到大型模型的确表现出良好效果。在情感分析任务中,通过使用 OpenAI API 提供的 Embedding,我们得到的结果要比能在单个机器上运行的较小模型(如T5-base)要好得多。然而,我们之前所选择的问题确实有些过于简单。我们将5个不同的评分分成了正面
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News