基于Pytorch之深度学习模型数据类型和维度转换个人总结

简介: 基于Pytorch之深度学习模型数据类型和维度转换个人总结

博主近期在学习深度学习模型时,发现这个数据类型转换和维度的重构既细节又容易出错,特总结此篇文章,用于自己回顾和分享给有需要的朋友,总结可能不是很全面,不足之处还望大家多多包涵!

一、数据类型基本主要是:整形、浮点型、字符串型、list列表格式、numpy数组格式、tensor张量格式等。数据类型之间的转换参考下面的代码:

  • 整型转浮点型
a =1
a = float(a) # 整型转浮点型
print(a)

  • 整型转字符串型
a =1
a = str(a) # 整型转字符串型
print(type(a))

  • 整型转tensor格式(包含先转numpy,原因是:若整型直接转换成tensor张量格式后会发生数值溢出,这是内存机制本身设计的问题
import numpy as np
import torch as t
a = 1
a = np.array(a, dtype=np.float32) # 整型转numpy
a = t.LongTensor(a) # numpy转tensor
print(a)

  • 浮点型转整型
a = 1.0
a = int(a) # 浮点型转整型
print(a)

  • 浮点型转字符串型
a = 1.0
a = str(a)  # 浮点型转字符串型
print(type(a))

  • 字符串转整型
s = '666'
s = int(s) # 字符串转整型
print(type(s))

  • 字符串转浮点型
s = '666.0'
s = float(s) # 字符串转浮点型
print(s)
print(type(s))

二、list列表格式、numpy数组格式、tensor格式数据维度之间的转换涉及多维度降维,因此比较容易出错,谨慎为上。

  • 列表list维度降维,下面以二维举例。
a = [[1,2,3],[6,8,5]] # 二维列表
a = [i for item in a for i in item] # 二维双层循环,三维三层循环
print(a)

  • numpy维度降维,分两种情况:(1)针对有维度为1的维度进行压缩实现降维,两种方式(2)针对无维度为1的维度进行重构造实现降维,下面以二维举例。
# 方式一
import numpy
a = numpy.array([[1],[2],[3]])
a = a.squeeze() # 针对有维度为1的维度进行压缩
print(a)

# 方式二
import numpy
a = numpy.array([[1],[2],[3]])
a = numpy.squeeze(a) # 针对有维度为1的维度进行压缩
print(a)

import numpy
a = numpy.array([[1,2],[2,4],[3,5]])
a = [i for item in a for i in item] # 针对无维度为1的维度进行重构造
print(a)

  • tensor维度降维,分两种情况:(1)针对有维度为1的维度进行压缩实现降维,点击打开《python以三维tensor为例详细理解unsqueeze和squeeze函数》文章 作为参考(2)针对无维度为1的维度进行重构造实现降维并转换为list,下面以二维举例。(还有一种方式用for循环结合torch.cat函数进行两个tensor拼接实现,注意:两个tensor除了要拼接的维度外,其他维度数值必须保持一致,否则会报错)
import torch
a = torch.LongTensor([[1,2,3],[6,8,5]])
a = [i.tolist() for item in a for i in item] # 针对无维度为1的维度进行重构造实现降维并转换为list
print(a)

三、总结

数据类型转换和维度降维是结合操作,博主分开阐述是方便大家理解,但在理解后要结合起来对数据进行适当的转换和操作达到自己数据预处理的目的。比如:数据集导入程序是list格式,但我们需要将数据集转换成tensor格式,最后算法模型输出对比时需要降维再对比等,这个例子具体内容详情可以参考博主的下一篇关于GCN(图卷积网络)3.0的文章。

文章知识点与官方知识档案匹配,可进一步学习相关知识

Python入门技能树科学计算基础软件包NumPyNumPy概述214084 人正在系统学习中


相关文章
|
15天前
|
机器学习/深度学习 数据可视化 算法
PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络
神经常微分方程(Neural ODEs)是深度学习领域的创新模型,将神经网络的离散变换扩展为连续时间动力系统。本文基于Torchdyn库介绍Neural ODE的实现与训练方法,涵盖数据集构建、模型构建、基于PyTorch Lightning的训练及实验结果可视化等内容。Torchdyn支持多种数值求解算法和高级特性,适用于生成模型、时间序列分析等领域。
162 77
PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络
|
22天前
|
机器学习/深度学习 搜索推荐 PyTorch
基于昇腾用PyTorch实现传统CTR模型WideDeep网络
本文介绍了如何在昇腾平台上使用PyTorch实现经典的WideDeep网络模型,以处理推荐系统中的点击率(CTR)预测问题。
189 66
|
2月前
|
机器学习/深度学习 数据可视化 TensorFlow
使用Python实现深度学习模型的分布式训练
使用Python实现深度学习模型的分布式训练
195 73
|
1月前
|
机器学习/深度学习 存储 人工智能
MNN:阿里开源的轻量级深度学习推理框架,支持在移动端等多种终端上运行,兼容主流的模型格式
MNN 是阿里巴巴开源的轻量级深度学习推理框架,支持多种设备和主流模型格式,具备高性能和易用性,适用于移动端、服务器和嵌入式设备。
390 18
MNN:阿里开源的轻量级深度学习推理框架,支持在移动端等多种终端上运行,兼容主流的模型格式
|
1天前
|
机器学习/深度学习 PyTorch TensorFlow
深度学习工具和框架详细指南:PyTorch、TensorFlow、Keras
在深度学习的世界中,PyTorch、TensorFlow和Keras是最受欢迎的工具和框架,它们为研究者和开发者提供了强大且易于使用的接口。在本文中,我们将深入探索这三个框架,涵盖如何用它们实现经典深度学习模型,并通过代码实例详细讲解这些工具的使用方法。
|
1天前
|
机器学习/深度学习 数据采集 自然语言处理
深度学习实践技巧:提升模型性能的详尽指南
深度学习模型在图像分类、自然语言处理、时间序列分析等多个领域都表现出了卓越的性能,但在实际应用中,为了使模型达到最佳效果,常规的标准流程往往不足。本文提供了多种深度学习实践技巧,包括数据预处理、模型设计优化、训练策略和评价与调参等方面的详细操作和代码示例,希望能够为应用实战提供有效的指导和支持。
|
2月前
|
机器学习/深度学习 数据采集 供应链
使用Python实现智能食品消费需求分析的深度学习模型
使用Python实现智能食品消费需求分析的深度学习模型
98 21
|
2月前
|
机器学习/深度学习 数据采集 搜索推荐
使用Python实现智能食品消费偏好预测的深度学习模型
使用Python实现智能食品消费偏好预测的深度学习模型
115 23
|
2月前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费习惯预测的深度学习模型
使用Python实现智能食品消费习惯预测的深度学习模型
161 19
|
2月前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费趋势分析的深度学习模型
使用Python实现智能食品消费趋势分析的深度学习模型
156 18

推荐镜像

更多