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上执行时。

相关推荐
雷工笔记6 分钟前
AI根本没“觉醒“,别被这波“AI戏剧“骗了
人工智能
·云扬·13 分钟前
大模型训练三阶段与 LoRA 微调:从预训练到领域适配
人工智能·深度学习·ai
Psycho_MrZhang16 分钟前
Agent 测评、缺陷分级与发布流程
人工智能
朝朝辞暮i19 分钟前
VLA 系统学习第 17 课:正式进入 ACT——为什么需要 CVAE、潜变量 z 和 KL Loss?
人工智能·深度学习·神经网络·transformer·vla
小宋102130 分钟前
Agent轨迹级评测实战:工具选择、预算超限与回归门禁
android·网络·人工智能·回归
larance36 分钟前
[菜鸟教程] 机器学习教程九课-常用数据类型
人工智能·机器学习
宋哥转AI1 小时前
我的创作纪念日:成为创作者的第 128 天
人工智能·ai
AI编程教父1 小时前
WorkBuddy企业培训怎么选?腾讯云公开课程与红烁AI内训对比
大数据·人工智能
深蓝AI1 小时前
AI Agent 点了发布却超时:一条回执丢失,为什么能造成两篇文章?
人工智能·python
怪奇云呼军1 小时前
教育试听预约后没到课,闪电智能 Voice Agent 如何做分层回访?
人工智能·python·算法·云计算·音视频