pytorch 学习笔记

文章介绍了如何使用conda创建和激活虚拟环境来安装PyTorch,包括安装步骤和PyTorch的基本概念,如张量运算和数据类型。还展示了PyTorch中创建和操作张量的实例,包括加法和形状变换等基本语法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pytorch 学习笔记

1 conda anaconda pip的介绍

anaconda 是 科学数值计算领域常用的python集成环境。包含 conda python 和数据计算常用的库(numpy,matplotlib等)
conda 是包和虚拟环境的管理工具,可以安装,卸载,更新第三方包和python包以及虚拟环境。
pip 是Python自带的包管理工具只能管理python包

2 用conda 安装Pytorch

2.1 用conda 创建虚拟环境

用命令行输入

conda create -n pytorch python=3.7 # 创建虚拟环境pytorch
activate tensorflow # 激活虚拟环境

pytorch是自己创建的虚拟环境名称,然后选择这个虚拟环境
用的pycharm开发工具

2.2 用conda 安装Pytorch

conda install pytorch torchvision torchaudio -c pytorch

这将安装 PyTorch 及其相关的依赖包。-c pytorch 表示从 PyTorch 的 Conda 渠道中安装包,以确保安装的是 PyTorch 的官方版本。
在这里插入图片描述

3 Pytorch介绍

3.1 Pytorch 是什么?

PyTorch 是一个基于 python 的科学计算包,主要针对两类人群:
1.作为 NumPy 的替代品,可以利用 GPU 的性能进行计算
2.作为一个高灵活性,速度快的深度学习平台

3.2 tensor(张量)介绍

Tensor(张量),类似NumPy 的 ndarray ,但还可以在 GPU 上使用来加速计算

4 Pytorch 基本语法练习

导包

from __future__ import print_function
import torch

创建一个没有初始化的 5 * 3 矩阵:

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

输出:

tensor([[2.2391e-19, 4.5869e-41, 1.4191e-17],
        [4.5869e-41, 0.0000e+00, 0.0000e+00],
        [0.0000e+00, 0.0000e+00, 0.0000e+00],
        [0.0000e+00, 0.0000e+00, 0.0000e+00],
        [0.0000e+00, 0.0000e+00, 0.0000e+00]])

创建一个随机初始化矩阵:

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

输出:

tensor([[0.5307, 0.9752, 0.5376],
        [0.2789, 0.7219, 0.1254],
        [0.6700, 0.6100, 0.3484],
        [0.0922, 0.0779, 0.2446],
        [0.2967, 0.9481, 0.1311]])

构造一个填满 0 且数据类型为 long 的矩阵:

x = torch.zeros(5, 3, dtype=torch.long)
print(x)

输出:

tensor([[0, 0, 0],
        [0, 0, 0],
        [0, 0, 0],
        [0, 0, 0],
        [0, 0, 0]])

直接从数据构造张量:

x = torch.tensor([5.5, 3])
print(x)

输出:

tensor([5.5000, 3.0000])

或根据现有的 tensor 建立新的 tensor 。除非用户提供新的值,否则这些方法将重用输入张量的属性,例如 dtype 等:

x = x.new_ones(5, 3, dtype=torch.double)      # new_* methods take in sizes
print(x)
x = torch.randn_like(x, dtype=torch.float)    # 重载 dtype!
print(x) 

输出:

tensor([[1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.]], dtype=torch.float64)
tensor([[ 1.6040, -0.6769,  0.0555],
        [ 0.6273,  0.7683, -0.2838],
        [-0.7159, -0.5566, -0.2020],
        [ 0.6266,  0.3566,  1.4497],
        [-0.8092, -0.6741,  0.0406]])

获取张量的形状:

print(x.size())

输出:

torch.Size([5, 3])

运算
一种运算有多种语法。在下面的示例中,我们将研究加法运算。

加法:形式一

y = torch.rand(5, 3)
print(x + y)

输出:

tensor([[ 2.5541,  0.0943,  0.9835],
        [ 1.4911,  1.3117,  0.5220],
        [-0.0078, -0.1161,  0.6687],
        [ 0.8176,  1.1179,  1.9194],
        [-0.3251, -0.2236,  0.7653]])

加法:形式二

print(torch.add(x, y))

输出:

tensor([[ 2.5541,  0.0943,  0.9835],
        [ 1.4911,  1.3117,  0.5220],
        [-0.0078, -0.1161,  0.6687],
        [ 0.8176,  1.1179,  1.9194],
        [-0.3251, -0.2236,  0.7653]])

加法:给定一个输出张量作为参数

result = torch.empty(5, 3)
torch.add(x, y, out=result)
print(result)

输出:

tensor([[ 2.5541,  0.0943,  0.9835],
        [ 1.4911,  1.3117,  0.5220],
        [-0.0078, -0.1161,  0.6687],
        [ 0.8176,  1.1179,  1.9194],
        [-0.3251, -0.2236,  0.7653]])

加法:原位/原地操作(in-place)

## adds x to y
y.add_(x)
print(y)

输出:

tensor([[ 2.5541,  0.0943,  0.9835],
        [ 1.4911,  1.3117,  0.5220],
        [-0.0078, -0.1161,  0.6687],
        [ 0.8176,  1.1179,  1.9194],
        [-0.3251, -0.2236,  0.7653]])

注意:任何一个就地改变张量的操作后面都固定一个 _ 。例如 x.copy_(y), x.t_()将更改x

也可以使用像标准的 NumPy 一样的各种索引操作:

print(x[:, 1])
tensor([-0.6769,  0.7683, -0.5566,  0.3566, -0.6741])

改变形状:如果想改变形状,可以使用 torch.view

x = torch.randn(4, 4)
y = x.view(16)
z = x.view(-1, 8)  # the size -1 is inferred from other dimensions
print(x.size(), y.size(), z.size())

输出:

torch.Size([4, 4]) torch.Size([16]) torch.Size([2, 8])

如果是仅包含一个元素的 tensor,可以使用 .item() 来得到对应的 python 数值

x = torch.randn(1)
print(x)
print(x.item())

输出:

tensor([0.0445])
0.0445479191839695
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值