簡體   English   中英

我可以向我的RNN / LSTM模型輸入字節張量嗎?

[英]Can I input a Byte Tensor to my RNN/LSTM model?

我正在開發一個RNN / LSTM模型,我想在ByteTensor中對序列進行編碼以節省內存,因為我限於非常緊湊的內存。 但是,當我這樣做時,模型將返回以下錯誤:

標量類型為Byte的預期對象,但參數#2'mat2'的標量類型為Float

因此,似乎還有其他需要字節張量的東西,但是我不知道它是什么,因為控制台僅在該行顯示錯誤:

output = model(predictor)

這意味着在model內部有用於對字節張量進行運算的浮點張量(矩陣乘法,加法等中最有可能的操作數)。 我相信您可以通過執行model.type(torch.uint8)技術上將其轉換為字節,但是您的方法遲早會失敗-由於整數是離散的,因此無法在反向傳播所需的梯度計算中使用它們。 uint8值可用於深度學習中,以改善已經經過訓練的網絡中推理的性能和內存占用,但這是一項高級技術。 對於此任務,最好的選擇是常規float32 如果您的GPU支持它,那么您也可以使用float16 aka half ,盡管它引入了額外的復雜性,我不建議初學者使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM