PyTorch常用操作

这篇具有很好参考价值的文章主要介绍了PyTorch常用操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0. 先决条件

安装驱动、CUDA、cuDNN,请参考:https://blog.csdn.net/liugan528/article/details/128974129

import torch
print(torch.__version__)

#查看gpu是否可用
print(torch.cuda.is_available())

#查看设备gpu个数
print(torch.cuda.device_count())

#查看torch对应CUDA版本号
print(torch.backends.cudnn.version())
print(torch.version.cuda)

1. PyTorch安装

https://pytorch.org/get-started/locally/
根据自己的配置选择相应的标签得到提示的安装指令进行安装:
PyTorch常用操作,PyTorch,pytorch,人工智能,python

  • 安装完毕之后测试是否安装成功
import torch
x = torch.rand(5, 3)
print(x)

输出结果:

tensor([[0.6336, 0.6199, 0.3328, 0.9812],
        [0.5288, 0.5243, 0.9603, 0.1340],
        [0.9176, 0.2647, 0.5914, 0.9771],
        [0.5646, 0.4666, 0.6248, 0.0663],
        [0.5966, 0.4487, 0.8861, 0.4725]])
  • 查看GPU驱动和CUDA是否可被pytorch启用
import torch
torch.cuda.is_available()

如果能正常启用则输出:True

2. 基本操作

2.1 Tensor与numpy的互转

函数名后面带下划线_的函数会修改Tensor本身,例如x.add_(1)会改变x,但x.add(1)会返回一个新的Tensor而x不变。
Tensor和numpy的数组可以相互转换,它们之间共享内存,如果其中一个变了另外一个也会随之改变。
Tensor转numpy

import torch
import numpy as np

a = torch.ones(3,2)
b = a.numpy()

print('a = ', a)
print('b = ', b)

print('-------------------------------------')

a.add_(1)
print('a = ', a)
print('b = ', b)

输出:

a =  tensor([[1., 1.],
        [1., 1.],
        [1., 1.]])
b =  [[1. 1.]
 [1. 1.]
 [1. 1.]]
-------------------------------------
a =  tensor([[2., 2.],
        [2., 2.],
        [2., 2.]])
b =  [[2. 2.]
 [2. 2.]
 [2. 2.]]

numpy转Tensor

import torch
import numpy as np

a = np.ones([3,2])
b = torch.from_numpy(a)

print('a = ', a)
print('b = ', b)

print('-------------------------------------')

b.add_(1)
print('a = ', a)
print('b = ', b)

输出:

a =  [[1. 1.]
 [1. 1.]
 [1. 1.]]
b =  tensor([[1., 1.],
        [1., 1.],
        [1., 1.]], dtype=torch.float64)
-------------------------------------
a =  [[2. 2.]
 [2. 2.]
 [2. 2.]]
b =  tensor([[2., 2.],
        [2., 2.],
        [2., 2.]], dtype=torch.float64)

2.2 Tensor的.cuda方法可以将Tensor转换为GPU的Tensor从而享受GPU带来的加速运算

未使用CUDA加速

import torch
x = torch.ones(5)
y = torch.zeros(5)
print(x + y)

输出:

tensor([1., 1., 1., 1., 1.])

使用CUDA加速

import torch
x = torch.ones(5)
y = torch.zeros(5)
if torch.cuda.is_available():
    x = x.cuda()
    y = y.cuda()
    print(x + y)

输出:文章来源地址https://www.toymoban.com/news/detail-797298.html

tensor([1., 1., 1., 1., 1.], device='cuda:0')

2.3 自动求导

import torch
from torch import autograd

x = torch.tensor(1.)
a = torch.tensor(1., requires_grad=True)
b = torch.tensor(2., requires_grad=True)
c = torch.tensor(3., requires_grad=True)

y = a ** 2 * x + b * x + c

print(a.grad, b.grad, c.grad)  # 输出 None None None

grads = autograd.grad(y, [a, b, c])

# 输出 tensor(2., dtype=torch.float64) tensor(1., dtype=torch.float64) tensor(1., dtype=torch.float64)
print(grads[0], grads[1], grads[2])

到了这里,关于PyTorch常用操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人工智能(pytorch)搭建模型10-pytorch搭建脉冲神经网络(SNN)实现及应用

    大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型10-pytorch搭建脉冲神经网络(SNN)实现及应用,脉冲神经网络(SNN)是一种基于生物神经系统的神经网络模型,它通过模拟神经元之间的电信号传递来实现信息处理。与传统的人工神经网络(ANN)不同,SNN 中的

    2024年02月08日
    浏览(52)
  • 人工智能(pytorch)搭建模型17-pytorch搭建ReitnNet模型,加载数据进行模型训练与预测

    大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型17-pytorch搭建ReitnNet模型,加载数据进行模型训练与预测,RetinaNet 是一种用于目标检测任务的深度学习模型,旨在解决目标检测中存在的困难样本和不平衡类别问题。它是基于单阶段检测器的一种改进方法,通

    2024年02月15日
    浏览(100)
  • 人工智能:Pytorch,TensorFlow,MXNET,PaddlePaddle 啥区别?

    学习人工智能的时候碰到各种深度神经网络框架:pytorch,TensorFlow,MXNET,PaddlePaddle,他们有什么区别? PyTorch、TensorFlow、MXNet和PaddlePaddle都是深度学习领域的开源框架,它们各自具有不同的特点和优势。以下是它们之间的主要区别: PyTorch是一个开源的Python机器学习库,它基

    2024年04月16日
    浏览(69)
  • AI写作革命:PyTorch如何助力人工智能走向深度创新

    身为专注于人工智能研究的学者,我十分热衷于分析\\\"AI写稿\\\"与\\\"PyTorch\\\"这两项领先技术。面对日益精进的人工智能科技,\\\"AI写作\\\"已不再是天方夜谭;而\\\"PyTorch\\\"如璀璨明珠般耀眼,作为深度学习领域的尖端工具,正有力地推进着人工智能化进程。于此篇文章中,我将详细解析\\\"

    2024年04月13日
    浏览(57)
  • 人工智能(Pytorch)搭建模型2-LSTM网络实现简单案例

     本文参加新星计划人工智能(Pytorch)赛道:https://bbs.csdn.net/topics/613989052  大家好,我是微学AI,今天给大家介绍一下人工智能(Pytorch)搭建模型2-LSTM网络实现简单案例。主要分类三个方面进行描述:Pytorch搭建神经网络的简单步骤、LSTM网络介绍、Pytorch搭建LSTM网络的代码实战 目录

    2024年02月03日
    浏览(68)
  • 人工智能(pytorch)搭建模型12-pytorch搭建BiGRU模型,利用正态分布数据训练该模型

    大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型12-pytorch搭建BiGRU模型,利用正态分布数据训练该模型。本文将介绍一种基于PyTorch的BiGRU模型应用项目。我们将首先解释BiGRU模型的原理,然后使用PyTorch搭建模型,并提供模型代码和数据样例。接下来,我们将

    2024年02月09日
    浏览(68)
  • 人工智能(pytorch)搭建模型8-利用pytorch搭建一个BiLSTM+CRF模型,实现简单的命名实体识别

    大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型8-利用pytorch搭建一个BiLSTM+CRF模型,实现简单的命名实体识别,BiLSTM+CRF 模型是一种常用的序列标注算法,可用于词性标注、分词、命名实体识别等任务。本文利用pytorch搭建一个BiLSTM+CRF模型,并给出数据样例,

    2024年02月09日
    浏览(63)
  • 人工智能(pytorch)搭建模型14-pytorch搭建Siamese Network模型(孪生网络),实现模型的训练与预测

    大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型14-pytorch搭建Siamese Network模型(孪生网络),实现模型的训练与预测。孪生网络是一种用于度量学习(Metric Learning)和比较学习(Comparison Learning)的深度神经网络模型。它主要用于学习将两个输入样本映射到一个

    2024年02月11日
    浏览(157)
  • 人工智能TensorFlow PyTorch物体分类和目标检测合集【持续更新】

    1. 基于TensorFlow2.3.0的花卉识别 基于TensorFlow2.3.0的花卉识别Android APP设计_基于安卓的花卉识别_lilihewo的博客-CSDN博客 2. 基于TensorFlow2.3.0的垃圾分类 基于TensorFlow2.3.0的垃圾分类Android APP设计_def model_load(img_shape=(224, 224, 3)_lilihewo的博客-CSDN博客   3. 基于TensorFlow2.3.0的果蔬识别系统的

    2024年02月09日
    浏览(62)
  • 人工智能(pytorch)搭建模型11-pytorch搭建DCGAN模型,一种生成对抗网络GAN的变体实际应用

    大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型11-pytorch搭建DCGAN模型,一种生成对抗网络GAN的变体实际应用,本文将具体介绍DCGAN模型的原理,并使用PyTorch搭建一个简单的DCGAN模型。我们将提供模型代码,并使用一些数据样例进行训练和测试。最后,我们将

    2024年02月08日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包