Pytorch实用教程:torch.from_numpy(X_train)和torch.from_numpy(X_train).float()的区别

在PyTorch中,torch.from_numpy()函数和.float()方法被用来从NumPy数组创建张量,并可能改变张量的数据类型。两者之间的区别主要体现在数据类型的转换上:

  1. torch.from_numpy(X_train) :这行代码将NumPy数组X_train转换为一个PyTorch张量,保留了原始NumPy数组的数据类型。

    如果X_train是一个64位浮点数组(即dtype=np.float64),则转换后的PyTorch张量也将具有相同的数据类型torch.float64

    同样,如果原始NumPy数组是整数类型(比如np.int32),转换后的张量也会保持这个数据类型(比如torch.int32)。

  2. torch.from_numpy(X_train).float() :这行代码首先将NumPy数组X_train转换为一个PyTorch张量,然后通过.float()方法将张量的数据类型转换为torch.float32

    不管原始NumPy数组的数据类型是什么,应用.float()之后,得到的PyTorch张量都将是单精度浮点数类型。

简单来说,不加.float()的版本保留了NumPy数组的原始数据类型,而加上.float()的版本将数据类型统一转换为了torch.float32

这个转换在深度学习中很常见,因为大多数神经网络操作都使用单精度浮点数进行计算,这样既可以节省内存空间,也可以加快计算速度,尤其是在GPU上执行时。

相关推荐
图特摩斯科技1 分钟前
本体智能应用案例实践分享:汽车零部件库存优化与召回应急保障
人工智能·汽车·palantir·ontology·ontoflow·ontoos
专业工业电源打工人12 分钟前
F0505S-2WR3 适配优选 钡特电源 DF2-05S05LS|2W 隔离 DC-DC 模块电源5V转5V硬件选型参数规格解析
大数据·网络·人工智能
a11177624 分钟前
三色软糖坠落玻璃池 THreeJS kimi
前端·人工智能·threejs
xian_wwq26 分钟前
【学习笔记】解剖 Claude Code —— Anthropic 的 Harness 参考实现-09/15
人工智能·笔记·学习
Black_Rock_br28 分钟前
打通 PyTorch Monarch 与 ROCm:单 Controller 架构的异构算力实战
人工智能·pytorch·python·开源
其实防守也摸鱼35 分钟前
Kimi K3深度测评:长文本之外的真实力
运维·开发语言·网络·人工智能·python·学习·安全
wu85877345740 分钟前
从 Prompt 到 Loop:拆解 AI 工程化四范式的演进逻辑与落地边界
人工智能·ai·prompt·aigc·ai编程
爱查宝小二43 分钟前
爱查宝 AIGC 检测与改写实效评测
人工智能·aigc
AI新角度43 分钟前
增量测试与影响分析:只跑受变更波及的用例
人工智能
FII工业富联科技服务1 小时前
从85% AI应用覆盖到规模化运营:制造企业灯塔AI转型架构与落地方法解析
人工智能·架构·制造