将独热编码特征转换为PyTorch张量时应选用哪种dtype?
独热编码特征的类型选择:torch.float32 vs torch.bool
直接用torch.float32就行,完全不会有问题,理由如下:
- 代码复杂度低:不用搭建双分支模型,直接把定量特征和独热编码后的分类特征合并成一个张量输入模型,新手写代码更顺畅,减少出错概率。
- 计算无异常:独热特征的0/1转成float32后,所有PyTorch的层(线性层、激活函数等)都能直接处理,而且0.0和1.0在float32里是精确存储的,不会有精度损失。
- 行业常规操作:实际项目里几乎没人会用
torch.bool处理独热特征,除非是极端追求内存优化(但新手阶段完全没必要纠结这个,先把模型跑通才是重点)。
给个简单的合并代码示例:
import torch # 模拟定量特征(比如年龄、月收入) numeric_features = torch.tensor([[28, 45000], [35, 70000]], dtype=torch.float32) # 独热编码的分类特征(比如性别:男=1/0,女=0/1)转成float32 one_hot_features = torch.tensor([[1, 0], [0, 1]], dtype=torch.float32) # 合并成统一的输入张量 combined_input = torch.cat([numeric_features, one_hot_features], dim=1) print(combined_input)
如果之后你对模型优化有需求,再考虑内存层面的调整也不迟,现阶段优先保证代码简洁、模型能正常运行。
内容的提问来源于stack exchange,提问作者D Danne
相关产品推荐
相关产品推荐

