繁体   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