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

相关推荐
在钱塘江4 分钟前
LangGraph构建Ai智能体-11-高级RAG之Self-RAG
人工智能·python
爱吃猪排20 分钟前
基于 Paddle Inference 3.0 的高性能 OCR 服务实现
人工智能·命令行
小阿鑫33 分钟前
MCP神器!MCP-USE 一键部署连接任何MCP服务器
服务器·人工智能·aigc·部署·ai落地·mcp·mcpserver·部署mcpserver·部署mcp
xw337340956444 分钟前
《卷积神经网络(CNN):解锁视觉与多模态任务的深度学习核心》
人工智能·pytorch·深度学习·神经网络·cnn
极客BIM工作室1 小时前
机器学习阶段性总结:对深度学习本质的回顾 20250813
人工智能·深度学习·机器学习
程序员海军1 小时前
MCP神器!MCP-USE 一键部署连接任何MCP服务器
人工智能·aigc·mcp
Python测试之道1 小时前
利用生成式AI与大语言模型(LLM)革新自动化软件测试 —— 测试工程师必读深度解析
人工智能·语言模型·自动化
Christo31 小时前
ECCV-2018《Variational Wasserstein Clustering》
人工智能·机器学习·支持向量机
victory04311 小时前
音频重采样使用RandomOverSampler 还是 SMOTE
人工智能·深度学习·机器学习
飞翔的佩奇1 小时前
【完整源码+数据集+部署教程】武器目标检测系统源码和数据集:改进yolo11-AggregatedAtt
人工智能·python·yolo·目标检测·计算机视觉·数据集·yolo11