pytorch
文章平均质量分 87
软耳朵DONG
做一个T字形人才
展开
-
PyTorch | 神经网络工具箱(MNIST手写数字识别)
PyTorch | 神经网络工具箱一、神经网络核心组件二、实现神经网络实例2.1 背景说明2.2 准备数据2.2.1 导入必要的模块2.2.2 定义一些超参数2.2.3 下载数据并对数据进行预处理一、神经网络核心组件\qquad神经网络看起来很复杂,节点很多,层数多,参数更多。但核心部分或组件不多,把这些组件确定后,这个神经网络基本就确定了。这些核心组件包括:层:神经网络的基本结构,将输入张量转换为输出张量。模型:层构成的网络。损失函数:参数学习的目标函数,通过最小化损失函数来学习各种参数...原创 2021-10-24 00:18:58 · 291 阅读 · 0 评论 -
PyTorch | 一文学会 torch.nn 工具包 - Containers(容器)
PyTorch | 详解 torch.nn 工具包一、torch.nn.Parameter二、torch.nn.Module2.1 构建模型torcn.nn\qquad torcn.nntorcn.nn 是一种专门为神经网络设计的模块化接口,里面包括了卷积,池化,RNNRNNRNN 等计算,以及其他如 LossLossLoss 计算,可以把 torch.nntorch.nntorch.nn 包内的各个类想象成神经网络的一层。torcn.nn\qquad torcn.nntorcn.nn 里面的大部分类都原创 2021-10-20 20:08:11 · 446 阅读 · 0 评论 -
PyTorch | 模型的保存和加载
PyTorch | 模型的保存和加载一、模型参数的保存和加载二、完整模型的保存和加载一、模型参数的保存和加载torch.save(module.state_dict(), path):使用module.state_dict()函数获取各层已经训练好的参数和缓冲区,然后将参数和缓冲区保存到path所指定的文件存放路径(常用文件格式为.pt、.pth或.pkl)。torch.nn.Module.load_state_dict(state_dict):从state_dict中加载参数和缓冲区到Module原创 2021-10-19 00:24:07 · 1087 阅读 · 0 评论 -
Pytorch | 报错The given NumPy array is not writeable,and PyTorch does not support non-writeable tensor
Pytorch | 报错 The given NumPy array is not writeable,and PyTorch does not support non-writeable tensor1. 报错2. 解决方案2.1 查找 mnist.py 文件2.2 修改 mnist.py 文件2.3 问题解决1. 报错/home/dong/anaconda3/lib/python3.8/site-packages/torchvision/datasets/mnist.py:498: User...原创 2021-10-10 23:31:56 · 8356 阅读 · 10 评论 -
PyTorch | torchvision.transforms 常用方法详解
PyTorch | transforms常用方法一、裁剪(Crop)1.1 transforms.RandomCrop1.2 transforms.CenterCrop1.3 transforms.RandomResizedCrop1.4 transforms.FiveCrop1.5 transforms.TenCrop二、翻转和旋转(Flip and Rotation)2.1 依概率 p 水平翻转2.2 依概率 p 垂直翻转2.3 随机旋转:三、图像变换(resize)3.1 transforms....原创 2021-10-10 02:08:34 · 915 阅读 · 0 评论 -
PyTorch | 实现机器学习(线性回归)
一、使用Numpy实现机器学习\qquad首先,给出一个数组 xxx,然后基于表达式 y=3x2+2y=3x^2+2y=3x2+2,加上一些噪音数据到达另一组数据 yyy。\qquad然后,构建一个机器学习模型,学习表达式 y=wx2+by=wx^2+by=wx2+b 的两个参数 w、bw、bw、b。利用数组 xxx,yyy 的数据为训练数据。\qquad最后,采用梯度下降法,通过多次迭代,学习到 w、bw、bw、b 的值。具体步骤如下:具体步骤如下:具体步骤如下:1.1 导入需要的库...原创 2021-10-08 01:35:14 · 1031 阅读 · 0 评论 -
PyTorch | 激活函数(Sigmoid、Tanh、ReLU和Leaky ReLU)
激活函数(sigmoid、tanh、relu)1. 简介2. sigmoid3. sigmoid1. 简介\qquad在深度学习中,输入值和矩阵的运算是线性的,而多个线性函数的组合仍然是线性函数,对于多个隐藏层的神经网络,如果每一层都是线性函数,那么这些层在做的就只是进行线性计算,最终效果和一个隐藏层相当!那这样的模型的表达能力就非常有限 。\qquad实际上大多数情况下输入数据和输出数据的关系都是非线性的。所以我们通常会用非线性函数对每一层进行激活,大大增加模型可以表达的内容(模型的表达效率和层数有原创 2021-09-13 11:18:36 · 4124 阅读 · 0 评论 -
PyTorch | 自动求导 Autograd
pytorch 自动求导 Autograd一、自动求导要点\qquad在神经网络中,一个重要的内容就是进行参数学习,而参数学习离不开求导,那么 PyTorchPyTorchPyTorch 是如何进行求导的呢?\qquad现在大部分深度学习架构都有自动求导的功能,PyTorchPyTorchPyTorch 也不例外,PyTorchPyTorchPyTorch 中所有神经网络的核心是autograd包,它就是用来自动求导的。autograd包为张量上的所有操作提供了自动求导机制。它是一个在运行时定义(def原创 2021-09-26 01:29:59 · 229 阅读 · 0 评论 -
PyTorch | Tensor 和 tensor 的区别
PyTorch Tensor 和 tensor 的区别1. 介绍2. 区别1. 介绍\quad 在 PyTorchPyTorchPyTorch 中,torch.Tensor是一种主要的 tensortensortensor 类型,是torch.FloatTensor()的别名。所有的 tensortensortensor 都是torch.Tensor的实例。\quad 而torch.tensor()是一个函数,函数原型是:torch.tensor(data, dtype=None, device=N原创 2021-09-24 16:43:12 · 1432 阅读 · 0 评论 -
PyTorch | 高阶操作
pytorch 高阶操作1. where 函数1. where 函数torch.where(condition, x, y):conditionconditioncondition 是条件,xxx 和 yyy 是同 shapeshapeshape 的矩阵,针对 xxx 矩阵中的每个元素,如果满足 conditionconditioncondition 条件就保留元素,不满足 conditionconditioncondition 条件就使用 yyy 矩阵对应位置的元素值进行替换,最后返回结果。.原创 2021-09-06 00:03:43 · 236 阅读 · 0 评论 -
PyTorch | 常用统计属性与计算
pytorch tensor的统计属性1. 默认类型2. 范数3. max, min, argmin, argmax3.1 max 函数3.2 min 函数3.3 argmin 函数3.4 argmax 函数4. mean, sum4.1 mean 函数4.2 sum 函数5. prod5.1 prod 函数6. kthvalue, topk6.1 kthvalue 函数6.2 topk 函数1. 默认类型torch.set_default_tensor_type(t):设置 pytorchpytor原创 2021-09-04 17:37:04 · 299 阅读 · 0 评论 -
PyTorch | 常用数学运算
pytorch 数学运算一、基础四则运算1.1 add 加法1.2 sub 减法1.3 mul 乘法1.4 div 除法二、矩阵相乘2.1 mm 函数2.2 matmul 函数一、基础四则运算1.1 add 加法torch.add(input, value, out=None):对输入张量 inputinputinput 逐元素加上标量值/张量valuevaluevalue,并返回一个新的张量 tensortensortensor。需要满足广播机制:https://blog.csdn.net/m0_5原创 2021-09-03 23:09:43 · 519 阅读 · 0 评论 -
PyTorch | 拼接与拆分
pytorch 拼接与拆分一、拼接二、拆分一、拼接torch.cat(inputs,dim=0):torch.cat(inputs, dim=0):torch.cat(inputs,dim=0):在给定维度 dimdimdim(默认为0) 上对输入的张量 inputsinputsinputs 进行拼接操作,只需要给定维度 dimdimdim 上的形状相同即可 。torch.stack(sequence,dim=0):torch.stack(sequence, dim=0):torch.stack(原创 2021-09-02 15:39:20 · 516 阅读 · 0 评论 -
PyTorch | 深度学习库能做什么?
pytorch 深度学习库能做什么?1. GPU 加速2. 自动求导3. 常用 API1. GPU 加速import torchimport timeprint(torch.__version__)print(torch.cuda.is_available())print(torch.backends.cudnn.enabled)a = torch.randn(10000,1000)b = torch.randn(1000,2000)t0 = time.time()c = torch.原创 2021-08-31 17:23:08 · 358 阅读 · 0 评论 -
PyTorch | 广播机制(broadcast)
pytorch 广播机制(broadcast)1. 广播机制定义2. 广播机制规则3. in - place 语义1. 广播机制定义\qquad如果一个PyTorch操作支持广播,则其Tensor参数可以自动扩展为相等大小(不需要复制数据)。通常情况下,小一点的数组会被 broadcast 到大一点的,这样才能保持大小一致。2. 广播机制规则如果遵守以下规则,则两个tensor是“可广播的”:每个tensor至少有一个维度;遍历tensor所有维度时,从末尾随开始遍历,两个tensor存在下原创 2021-08-25 17:24:34 · 9785 阅读 · 1 评论 -
PyTorch | tensor 的存储(storage、offset 和 stride)
来源知乎:https://zhuanlan.zhihu.com/p/101434655原创 2021-08-06 21:28:05 · 1610 阅读 · 0 评论 -
PyTorch | 维度变换
1. view函数在 pytorchpytorchpytorch 中 view(∗args)view(^*args)view(∗args) 函数的作用为重构张量的维度,即改变矩阵维度,view(∗args)view(^*args)view(∗args) 函数是对 tensortensortensor 操作的,若非 tensortensortensor 类型,可使用 data=torch.tensor(data)data = torch.tensor(data)data=torch.tensor(data原创 2021-08-06 15:59:37 · 319 阅读 · 0 评论 -
PyTorch | 索引与切片
pytorch索引与切片一、索引1. 普通索引2. 冒号索引3. index_select 选择特定索引一、索引1. 普通索引import torchfrom IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity = "all"photo = torch.rand(4,3,28,28)photo.shapephoto[2].shape # 索引到第一个维度p原创 2021-08-05 11:42:23 · 329 阅读 · 0 评论 -
PyTorch | 创建 Tensor
pytorch创建Tensor一、从numpy创建tensor二、从List创建tensor一、从numpy创建tensorimport numpy as npimport torchfrom IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity = "all"a = np.array([2,3.3])torch.from_numpy(a)o = np.one原创 2021-08-04 17:17:51 · 267 阅读 · 0 评论 -
PyTorch | 基本数据类型
pytorch基本数据类型一、引入二、标量三、张量1. 维度dim = 1(bias、linear input)2. 维度dim = 2(linear input batch)3. 维度dim = 3(RNN)4. 维度dim = 4(CNN)一、引入pythonpytorchIntIntTensor of size()FloatFloatTensor of size()Int arrayIntTensor of size[d1,d2,…]Float arra原创 2021-08-03 17:39:52 · 965 阅读 · 1 评论