pytorch快速搭建神经网络--pytorch基本操作学习

序言:最近准备一直在用pytorch,特地总结一下如何快速用pytorch搭建神经网络学习人工智能。

目录

1.pytorch入门

1.1pytorch是什么

1.2安装pytorch

2. pytorch基本操作元素

2.1 Tensors张量

2.2 张量运算

2.3 张量索引

2.4 Torch tensor与Numpy ndarray转换

2.5 cpu与gpu的tensor相互转换

3.总结


1.pytorch入门

1.1pytorch是什么

  • 2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch。

  • 基于Python的可续计算包,提供两个高级功能:

    • 具有强大的GPU加速的张量计算(如NumPy)。

    • 包含自动求导系统的深度神经网络。

1.2安装pytorch

  • 这里建议pycharm和anaconda一起使用,anaconda用来管理环境,pycharm写代码

  • 访问PyTorch,根据自己电脑配置选择选项,然后将生成的复制command到cmd窗口进行安装

conda install pytorch torchvision torchaudio cpuonly -c pytorch

  • 安装完成后,查看pytorch是否安装成功

import torch 
print("pytorch版本",torch.__version__)
print("是否支持gpu", torch.cuda.is_available())】

2. pytorch基本操作元素

2.1 Tensors张量

  • Tensors张量类似于Numpy中的ndarray数据结构, 最大的区别在于Tensor可以利用GPU的加速功能.

  • 创建一个空矩阵

x=torch.empty(5,3)
print(x)

  • 创建随机分布的矩阵,标准高斯分布

#创建随机分布的矩阵,标准高斯分布
x=torch.rand(5,3)
print(x)

  • 创建全零矩阵,数据元素类型long
x = torch.zeros(5, 3, dtype=torch.long)
print(x)

  • 直接赋值创建张量
x=torch.tensor([[2, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])
print(x)

  • 通过已有的一个张量创建相同尺寸的新张量

x = torch.ones(5,3,dtype=torch.double)
print(x)
y = torch.randn_like(x, dtype=torch.float)
print(y)

  •  张量的尺寸
print(x.size())
a,b=x.size()
print("a:",a)
print("b:",b)

2.2 张量运算

  • +,-,*,/

# +,-,*,/
x = torch.tensor([1.0, 2, 4, 8])
y = torch.tensor([2, 2, 2, 2])
x + y, x - y, x * y, x / y, x ** y  # **运算符是求幂运算

  • 转换张量形状reshape和view

## 转换张量形状
x=torch.arange(12,dtype=torch.float32).reshape(3,4)
print(x)
x=x.reshape(4,3)
print(x)
y=x.view(3,4)
print(y)

 torch的view()与reshape()方法都可以用来重塑tensor的shape,区别就是使用的条件不一样。view()方法只适用于满足连续性条件的tensor,并且该操作不会开辟新的内存空间,只是产生了对原存储空间的一个新别称和引用,返回值是视图。而reshape()方法的返回值既可以是视图,也可以是副本,当满足连续性条件时返回view,否则返回副本[ 此时等价于先调用contiguous()方法在使用view() ]。因此当不确能否使用view时,可以使用reshape。如果只是想简单地重塑一个tensor的shape,那么就是用reshape,但是如果需要考虑内存的开销而且要确保重塑后的tensor与之前的tensor共享存储空间,那就使用view()。
————————————————
原文链接:https://blog.csdn.net/flag_ing/article/details/109129752

  • 沿着行或者列的方向联结,dim=0是行,1是列。

#沿着行或者列的方向联结
y = torch.tensor([[2.0, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])
x = torch.arange(12, dtype=torch.float32).reshape((3,4))
print(x)
print("行:",torch.cat((x, y), dim=0))#行
print("列:",torch.cat((x, y), dim=1))#列
print(x[:, 1])#所有行的第2列

2.3 张量索引

  • 初始数据

x = torch.arange(12, dtype=torch.float32).reshape((3,4))

  • x[-1], x[1:3]

  • 指定位置写入元素 x[1, 2] = 9

2.4 Torch tensor与Numpy ndarray转换

  •  torch张量和numpy数组将共享它们的底层内存,简单说就是操作更改一个张量也会同时更改另一个张量。
  • 所有在CPU上的Tensors, 除了CharTensor, 都可以转换为Numpy array并可以反向转换.
a = torch.ones(5)
print(type(a),a)
b=a.numpy()
print(type(b),b)
c=torch.tensor(b)
print(type(c),c)

  

2.5 cpu与gpu的tensor相互转换

  • 在实际计算中,传入cpu与gpu的变量不一样,需要相互转换类型才能一起运算

  • 使用.to 方法实现

if torch.cuda.is_available():
    # 定义一个设备对象, 这里指定成CUDA, 即使用GPU,如果有多个gpu可以用cuda0,cuda1表示
    device = torch.device("cuda")
    # 直接在GPU上创建一个Tensor
    y = torch.ones_like(x, device=device)
    # 将在CPU上面的x张量移动到GPU上面
    x = x.to(device)
    # x和y都在GPU上面, 才能支持加法运算
    z = x + y
    # 此处的张量z在GPU上面
    print(z)
    # 也可以将z转移到CPU上面, 并同时指定张量元素的数据类型
    print(z.to("cpu", torch.double))

3.总结

  • 矩阵的初始化
    • torch.empty()
    • torch.rand(n, m)
    • torch.zeros(n, m, dtype=torch.long)
    • torch.ones(n,m,dtype=torch.double)
  • 矩阵运算
    • x + y
    •  x - y,
    • x * y,
    • x / y,
    • x ** y
  • 矩阵转换形状
    • reshape()
    • view()
  • 矩阵索引
  • 方向联结
    • torch.cat((x, y), dim=0)行
    • torch.cat((x, y), dim=1)列
  • Torch Tensor和Numpy Array之间的相互转换
    • b=a.numpy()
    • c=torch.tensor(b)
  • cpu与gpu的tensor相互转换
    • x = x.to(device)

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: pytorch-multi-label-classifier-master是一个基于PyTorch的多标签分类器项目。该项目旨在使用PyTorch框架构建一个能够对具有多个标签的数据样本进行分类的模型。 PyTorch是一个流行的深度学习框架,能够实现多种深度学习模型的构建与训练。它提供了丰富的工具和函数,简化了模型的复杂性,并提供了高效的计算能力。 在这个项目中,multi-label指的是数据样本可以被分为多个标签。与传统的单标签分类不同,每个样本可以被分为多个类别,这增加了分类问题的复杂性。模型需要学习如何给每个样本分配正确的标签。 pytorch-multi-label-classifier-master项目提供了一个设置多标签分类模型的基础架构。它包含了数据预处理、模型构建、训练和评估等步骤。用户可以根据自己的数据集和需求,对该项目进行定制。 通过使用pytorch-multi-label-classifier-master项目,用户可以快速搭建一个多标签分类器,用于解决具有多个标签的数据分类问题。同时,该项目还提供了一些示例数据和模型,帮助用户更好地理解和使用多标签分类技术。 总而言之,pytorch-multi-label-classifier-master是一个基于PyTorch框架用于多标签分类的项目,为用户提供了一个简单且灵活的搭建多标签分类器的框架,方便用户解决多标签分类问题。 ### 回答2: pytorch-multi-label-classifier-master是一个基于PyTorch的多标签分类器项目。它提供了一种使用神经网络模型来处理多标签分类任务的解决方案。 该项目的主要目标是通过深度学习技术来提高多标签分类问题的准确度。它使用PyTorch作为深度学习框架,该框架提供了丰富的工具和功能来构建和训练神经网络模型。 在pytorch-multi-label-classifier-master中,你可以找到许多工具和函数来进行数据预处理、模型构建、训练和评估。它支持常见的多标签分类算法,如卷积神经网络(CNN)和递归神经网络(RNN)。你可以根据自己的需求选择合适的模型,并通过简单的配置来进行训练。 该项目还提供了一些示例数据集和预训练模型,以帮助你更快地开始。你可以使用这些数据集来测试和调试你的模型,或者使用预训练模型来进行迁移学习pytorch-multi-label-classifier-master还支持一些常见的性能评估指标,如准确率、精确率、召回率和F1值。你可以使用这些指标来评估你的模型在多标签分类任务上的性能。 总的来说,pytorch-multi-label-classifier-master是一个方便易用的项目,旨在帮助你构建和训练用于多标签分类的深度学习模型。它提供了丰富的功能和工具,使你能够快速搭建一个准确度较高的多标签分类器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值