Pytorch基础

PyTorch教程-1:PyTorch中的Tensor基础 PyTorch 教程系列:https://blog.csdn.net/qq_38962621/category_10652223.html PyTorch教程-1:PyTorch中的Tensor基础 首先,引入PyTorch的模块: import torch 设置运算资源 使用 torch.cuda.is_avaliable() 来判断设备上的GPU是否可用,如果可用则返回True,使用 torch.device() 则可以参数指定计算资源: 参数为"cpu"表示使用CPU计算 参数为"cuda" 阅读详情

常引用的模块

import torch as t
import torch.nn as nn
from torch.autograd import Variable as V
import torch.utils.data as Data
import torch.optim as optim
import torch.nn.functional as F
import torchvision

 

快速构建网络

法一:

class Net(torch.nn.Module):
    def __init__(self, n_feature, n_hidden, n_output):
        super(Net, self).__init__()
        self.hidden = torch.nn.Linear(n_feature, n_hidden)
        self.predict = torch.nn.Linear(n_hidden, n_output)

    def forward(self, x):
        x = F.relu(self.hidden(x))
        x = self.predict(x)
        return x

net1 = Net(1, 10, 1)

法二:

net2 = torch.nn.Sequential(
    torch.nn.Linear(1, 10),
    torch.nn.ReLU(),
    torch.nn.Linear(10, 1)
)

法三(一和二结合):

class CNN(nn.Module):
    def __init__(self):
        super().__init__()
        self.conv1=nn.Sequential(
            nn.Conv2d(1,16,5,1,2), # 参数分别是输入channel,输出channel,kernel_size,strides,padding 当stride为1时,padding=(kernel_size-1)/2时图像大小不变
            nn.BatchNorm2d(16),
            nn.ReLU(),
            nn.MaxPool2d(2)
        )
        
        self.conv2=nn.Sequential(
            nn.Conv2d(16,32,5,1,2),
            nn.BatchNorm2d(32),
            nn.ReLU(),
            nn.MaxPool2d(2)
        )
        
        self.linear=nn.Linear(32*7*7,10)
        
    def forward(self,x):
        x=self.conv1(x)
        x=self.conv2(x)
        x=x.view(x.size(0),-1)
        x=self.linear(x)
        return x
      

 

注意用的激活函数relu所在的模块一样,一个是torch.nn.Relu,一个是torch.nn.functional.relu

导入数据集

导入MNIST数据集:

train_data=torchvision.datasets.MNIST(
    root='./MNIST', #存放的目录下
    download=True, #是否要现下载
    train=True, #是否是训练集
    transform=torchvision.transform.ToTensor() #将PIL.Image 或 numpy.array转化成            Tensor格式
)

此时就导入了Tensor类型的数据集了,可以手动输出显示:

print(train_data.train_data.size()) # 输出torch.Size([60000, 28, 28])
print(train_data.train_labels.size()) # 输出torch.Size([60000]) 
plt.imshow(train_data.train_data[0].numpy(),cmap='gray') # plt不能显示tensor类型数据,要转化成numpy
plt.title('%i' % train_data.train_labels[0])
plt.show()

发现输出的图片格式不是标准的pytorch训练格式,所以要进行变换:

train_loader=Data.DataLoader(dataset=train_data, batch_size=64, shuffle=True, num_workers=2)


train_iter=iter(train_loader)
batch_x1,batch_y1=train_iter.next()
print(batch_x1.size()) # 输出torch.Size([64, 1, 28, 28])
print(t.max(batch_x1)) # 输出1.0 ,此时已将图片从0-255.0转化成0-1.0

# 同理
for (batch_x,batch_y) in train_loader:
    ...
# 也会加入channel维度和正则化

 

 

Tensor数据DataLoader迭代的数据
size:[64,28,28]增加channel维度:[64,1,28,28]
pixel范围:0-255pixel范围:0-1.0
数据类型:ByteTensor数据类型:FloatTensor

 

常用torch函数:

torch.cat()

a=t.ones(2,2)
b=t.zeros(2,2)

c=t.cat([a,b],1) 

# 输出
# 1  1  0  0
# 1  1  0  0
# [torch.FloatTensor of size 2x4]

c=t.cat([a,b],0)

# 输出
# 1  1  
# 1  1
# 0  0
# 0  0
# [torch.FloatTensor of size 4x2]

torch.randn(2,3)

均值为0,方差为1 的正态分布

torch.rand(3,2)

[0,1)的均匀分布

torch.nn.functional.softmax() 和 .sum() 和 torch.nn.functional.log_softmax()

data = V(t.randn(5,2))
print(data)

print(F.softmax(data,dim=1))
print(F.softmax(data,dim=1).sum(dim=1))

'''
Variable containing:
 1.0147 -0.1819
 0.6182  0.0393
 0.9262 -0.9596
 0.3518 -0.4039
 1.7584 -0.4145
[torch.FloatTensor of size 5x2]

Variable containing:
 0.7679  0.2321
 0.6408  0.3592
 0.8683  0.1317
 0.6804  0.3196
 0.8978  0.1022
[torch.FloatTensor of size 5x2]

Variable containing:
 1
 1
 1
 1
 1
[torch.FloatTensor of size 5]
'''

torch.nn.functional.log_softmax()等价于log(softmax())

pytorch基础知识 参考pytorch官方教程,撸pytorch基础知识,记录学习的过程 主要参考DEEP LEARNING WITH PYTORCH: A 60 MINUTE BLITZ,再加上一些numpy的基础知识,这算是一篇对pytorch和numpy的基础知识的总结吧,共分5个方面,这里主要记录1,2部分的学习,英语较好的同学可以直接看参考[1]。 pytorch是基于python的一个科学计算包,主要面... 阅读详情

相关推荐

PyTorch基础语法大全

一、创建 Tensor 1.1 torch.empty(5, 3) 创建一个大小为 5*3 未初始化的 Tensor: x = torch.empty(5,3) 输出为: tensor([[8.4490e-39, 9.6429e-39, 9.2755e-39], [1.0286e-38, 9.0919e-39, 8.9082e-39], [9.2755e-39, 8.4490e-39, 9.2755e-39], [9.6429e-39, 9.6429e-39

一只黑猩猩 3740

PyTorch 02:通过 PyTorch 构建神经网络

深度学习网络一般量级都很大,包含数百个层级,这也是为什么叫“深度”学习网络。你可以像在上个 notebook 展示的一样,仅使用权重矩阵构建深度网络,但是这通常很繁琐并且不好实施。PyTorch 有一个很方便的模块 nn,可以有效地构建大型神经网络。 # Import necessary packages %matplotlib inline %config InlineBackend.figure_format = 'retina' import numpy as np import torch i

科学边界 861

PyTorch深度学习实战(2)——PyTorch基础

PyTorch 是广泛应用于机器学习领域中的强大开源框架,因其易用性和高效性备受青睐。在本节中,将介绍使用 PyTorch 构建神经网络的基础知识。首先了解 PyTorch 的核心数据类型——张量对象。然后,我们将深入研究用于张量对象的各种操作。PyTorch 提供了许多帮助构建神经网络的高级方法及组件,并提供了利用 GPU 更快地训练神经网络的张量对象。

盼小辉丶的博客 5万+

Pytorch教程(2)--0. 快速入门

本节我们使用的训练集为60000张手写数字图片及对应的标签,测试集为10000张同类型的图片及标签。我们设计一个人工神经网络,输入训练集进行训练,得到该网络模型及其参数。然后,用这个训练好的网络模型进行图片识别,再跟该图片的标签进行比对。具体过程包括以下几步:读取数据集、创建模型、训练模型、使用模型进行预测。

suizier的博客 440

ARM和FPGA之间的通信(硬件原理图篇)

设计该开发板的初衷是为了学习,但也希望今后能扩展其功能,看到大家都在diy示波器,自己也非常冲动的想DIY一把,于是呼选了arm+fpga的方案,fpga主要用来实现数据的高速采样,而ARM则提供数据的显示,以及一些人机交互的功能。那么该方案中最重要的地方就是ARM和FPGA之间的通信如何实现了。在网上查了很多的资料,有说将FPGA作为ARM的一个外设,可以通过DMA的方式来直接访问;也有说把FP

屌yy的博客 5万+

R语言:基于Spatstat包的单变量和双变量平面Ripley‘s K函数分析

因为网上查找得到的R语言K函数分析的资料很少,Spatstat包的介绍也很少,所以抛砖引玉。本文简单介绍了使用R语言spatstat包的Kest,Kcross(Lcross)和Kinhom方法进行了单变量和双变量平面Ripley's K函数分析的方法及代码,希望有所帮助。

hsdcmax的博客 1万+

机器学习pytorch平台代码学习笔记(9)——卷积神经网络

理论知识学习:deeplearning.ai 吴恩达网上课程学习(十五)——卷积神经网络及其TensorFlow代码实现本文将做一个分析手写数字的 CNN:1. MNIST手写数据import torch import torch.nn as nn from torch.autograd import Variable import torch.utils.data as Data import ...

玥晓珖的博客 1066

基于深度强化学习的柔性作业车间动态调度

在追求敏捷和灵活的生产调度方面,处理不可预测的动态事件的能力变得越来越重要。与此同时,生产系统中的网络-物理融合产生了大量需要实时挖掘和分析的工业数据。为了便于这种实时控制,本研究提出了一种分层分布式的体系结构来解决动态柔性作业车间调度问题。采用双深度Q网络算法(DDQN)训练调度智能体,捕捉生产信息与调度目标之间的关系,为具有恒定任务到达的柔性作业车间实时做出调度决策。为了处理动态调度中问题的可变规格说明,提出了专门的状态和动作表示法。此外,还提出了一种代理奖励整形技术(surrogate reward

太剧烈的快乐与太剧烈的悲哀是有相同之点的——同样地需要远离人群! 1万+

基于 PyTorch 的手写数字识别ーー神经网络介绍

很容易,对吧?ーー要知道上面的图片代表的是 4,这对你来说可不是件容易的事。你甚至不用担心图像的低分辨率,多么神奇。我们都应该花点时间感谢我们的大脑!想知道我们的大脑处理图像、分类和反馈是...

Warmer_Sweeter 1170

matlab电容式传感器仿真,差动电容式位移传感器的仿真研究

设计了一种差动电容式位移传感器,主要对传感器的数学模型及电容检测电路进行了仿真研究。其中检测电路设计主要包括正弦激励电路、转换桥路、信号放大电路、精密整流电路和滤波电路。最后利用Matlab/SimurFnk软件对所设计的系统进行仿真,并分析了传感器性能。仿真研究表明,传感器及其检测电路具有合理性,测量范围内具有很好的线性度。0|| I≯ lat on ii{差动容尊翩’亘研发注:湖南省教育厅资...

weixin_36323601的博客 1390

Oracle数据库安装及配置(Oracle19c)

Windows 10安装Oracle 19c教程

weixin_69200200的博客 2万+

torch.nn.functional.log_softmax 函数解析

softmax 计算公式:log_softmax 计算公式:可见仅仅是将 softmax 最外层套上 log 函数。

qq_26545507的博客 2451

AI提示词实战:用EARS语法5步搞定产品需求拆解(附完整案例)

本文详细介绍了如何运用EARS语法将模糊的产品需求进行原子化拆解,转化为清晰、可执行的结构化指令。通过一个完整的自由职业者项目管理工具案例,演示了从原始需求分析到构建增强AI提示词的五步实战流程,帮助产品经理和技术人员实现高效、精准的需求传达与协作。

nokia的博客 1033

pytorch基础操作

此篇主要涉及pytorch的入门内容,主要是张量的基础操作以及使用pytorch进行反向传播,最后还简要介绍了pytorch的一系列常用的基础组件,以便对后续更深层次的学习任务奠定基础。

hdsbdjsjsbs的博客 1185

Qwen3.5本地部署实战:4B模型在RTX3060上离线运行指南

大语言模型本地化部署正从云端服务转向终端设备,其核心是模型轻量化、硬件适配与推理引擎协同优化。基于INT4量化感知训练和GGUF格式支持,Qwen3.5在结构精简、Tokenizer轻量及显存友好性方面显著优于前代,使4B级别模型可在RTX 3060等中端显卡上稳定运行。该技术路径兼顾低延迟响应(<2秒)、数据隐私保障与离线可用性,广泛适用于法律文书分析、医疗文档处理、教育AI助手等对安全性与实时性双重要求的场景。本文聚焦Qwen3.5-4B量化部署全流程,涵盖llama.cpp编译调优、GPU层加载策略及

weixin_32181267的博客 365

联邦学习中的差分隐私保护详解及python实现

随着数据隐私法规(如 GDPR、CCPA)日益严格,传统将数据集中到云端训练模型的方式面临合规与安全风险。联邦学习通过让各客户端保留本地数据,仅共享模型更新,缓解了数据流动带来的隐私风险。但模型更新仍可能泄露个体信息。为进一步保障隐私,可在本地更新中引入差分隐私(DP)机制,通过向梯度或模型更新中注入随机噪声,防止反向推断原始数据citeturn0search9。

闲人编程的博客 1921

【Pytorch】Pytorch基础入门教程

Torch 自称为神经网络界的 Numpy, 因为他能将 torch 产生的 tensor 放在 GPU 中加速运算 (前提是你有合适的 GPU), 就像 Numpy 会把 array 放在 CPU 中加速运算. 所以神经网络的话, 当然是用 Torch 的 tensor 形式数据最好咯. 就像 Tensorflow 当中的 tensor 一样. numpy array 和 torch tensor 是可以自由地转换的。

zzqingyun的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

PyTorch 基础

PyTorch 是一个开源的深度学习框架,以其灵活性和动态计算图而广受欢迎。PyTorch 主要有以下几个基础概念:张量(Tensor)、自动求导(Autograd)、神经网络模块(nn.Module)、优化器(optim)等。张量(Tensor)是 PyTorch 中的核心数据结构,用于存储和操作多维数组。张量可以视为一个多维数组,支持加速计算的操作。在 PyTorch 中,张量的概念类似于 NumPy 中的数组,但是 PyTorch 的张量可以运行在不同的设备上,比如 CPU 和 GPU,这使得它们非常

qq_25502783的博客 1124

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【Pytorch】2025 Pytorch基础入门教程

PyTorch已成为深度学习核心工具,从科研到工业广泛应用。本文介绍PyTorch安装和基础语法,包括张量创建、形状调整等关键操作。与TensorFlow、PaddlePaddle对比,PyTorch凭借动态图调试和Pythonic设计优势,2023年工业界使用率达36.8%。通过10分钟快速入门指南,读者可掌握PyTorch核心技能,轻松上手深度学习开发。

Larry的博客 1762

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Pytorch基础操作

面试的时候,PhD看我简历上面写了”熟悉pytorch框架“,然后就猛猛提问了有关于tensor切片的问题...当然是没答上来,因此在这里整理一下pytorch的一些基础编程语法,常看常新

xsddys的博客 698

pytorch的基础操作

PyTorch是Torch的Python版本,是由Facebook开源的神经网络框架,专门针对GPU加速的深度神经网络编程。Torch 是一个经典的对多维矩阵数据进行操作的张量(Tensor)库,在机器学习和其他数学密集型应用有广泛应用。与TensorFlow的静态计算图不同,PyTorch的的计算图是动态的,可以根据计算需要实时改变计算图。

qq_51179608的博客 1227

【pytorch】pytorch基础学习

【pytorch】pytorch基础学习 目录 1. 前言 # 2. Deep Learning with PyTorch: A 60 Minute Blitz 2.1 base operations 2.2 train a classifier ...

急流勇进 490

【Pytorch(三)】PyTorch 基础

【Pytorch(三)】PyTorch 基础

Ws_zqw的博客 4661
下一篇: Python编程技巧合集
Chauncey Qu
博客等级 码龄9年 4粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值