pytorch问题索引

news/2024/11/24 5:19:17/

20220629

调试代码时候,找不到入口,通过下面的位置进入

在这里插入图片描述

20220613

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
各种归一化在nlp和cv中的输入输出维度

参数只包括权重,不包括偏置
在这里插入图片描述
这两个维度的范围不包括,不计算,而是在剩下的维度进行计算

concat(dim=-1):最后一个维度就是行向量,就是横向扩展
nums_featurers:NLP:词嵌入维度,图片的话是通道?
在这里插入图片描述

层归一化:仅仅对嵌入向量层进行归一化
批归一化:对批维度下进行归一化
实例归一化:用在风格迁移上,同一个batch下,在所有通道,把所有时间步的点进行归一化,减去所有时刻不变的东西(样本的风格,把图像的风格和语音中人的身份给消除了?类别协同过滤),留下有差异的部分,
组归一化:对输入样本进行分组,对每个分组进行归一化和batchsize无关,nlp的num_channel是embedding_dim?
权重归一化:上面四个是对每一层的输入进行归一化,这里是对权重进行归一化

keep_dim:把在某个维度上计算的结果,复制拷贝到其他剩余的维度
sampler:就是batchsize层面还是每个具体样本?
层归一化:RNN每一步就是一层
对张量维度的理解:从右往左,不同层级的中括号,范围越来越大,每一层的单个元素都是由下一层级整个范围所构成
nlp中每批每个句子长度不一样,而且预测句子长度也不一定与训练数据一致,所以不常用batchnorm
二用layernorm
over/across batch或者dimension:跨batch,跨维度,仅仅局限于一个batch或者某个维度进行处理

keep_dim:保持输出和输入维度一致
算某个指标的时候,包含的维度越多,也就意味着所覆盖的元素范围越多

在这里插入图片描述
tensor*tensor:广播到每一层,对应位置元素相乘
乘法
在这里插入图片描述
tensor@tensor是矩阵内积操作,广播到每一层

20220608

注册模块通过字典来注册

apply:递归的应用到某些函数上面
parameter和buffer:buffer是parameter的均值,方差等 slot_parameter?
在这里插入图片描述
nn.sequential是container容器

linear(in_size,out_size)是神经元节点
conv2d(in,out) in,out是通道数
在这里插入图片描述
维度可以理解为元组里面的索引
在这里插入图片描述
torchsummary:打印网络结构和参数数目

xx(input)就等同于调用 xx.forward()
随机种子设置不止要对pytorch设置,manul_seed ,numpy也要设置

python看不到源码,说明不是python代码写的

BrokenPipeError: [Errno 32] Broken pipe
https://blog.csdn.net/qq_33666011/article/details/81873217
num_works的问题

20220601

parameter和buffer的 names。
buffer是临时保存的对象,并不属于模型参数,比如BatchNorm’s running_mean
ImportError: No module named 'tensorboardX'
pip3 install tensorboardX
self = reduction.pickle.load(from_parent) EOFError: Ran out of input的解决方法
https://blog.csdn.net/weixin_44025103/article/details/124886754

20220530

https://blog.csdn.net/gulaixiangjuejue/article/details/108592941

RuntimeError: expected dtype Double but got dtype Float 问题解决
或者单独转换为相同的数据格式

tensor和array输出全部值,显示全部值

torch.set_printoptions(profile="full")		# 全部数据
torch.set_printoptions(profile="default") # 默认部分数据import sys
np.set_printoptions(threshold=sys.maxsize)

20220526

https://blog.csdn.net/cpluss/article/details/90260550
gather

torch.gather(input, dim, index, out=None) → Tensor
torch.gather(t, 1, torch.LongTensor([[0,0],[1,0]]))
在指定维度,取出索引所在位置的数值

20210623

RuntimeError: expected device cpu and dtype Float but got device cpu and dtype Bool ()
调试到对应的位置 查看具体哪个变量的类型不对

20210622

https://blog.csdn.net/weixin_41041772/article/details/109820870
通俗理解torch.distributed.barrier()工作原理

20210614

https://blog.csdn.net/scut_salmon/article/details/82414730
optimizer.zero_grad()意思是把梯度置零,也就是把loss关于weight的导数变成0.
torch代码解析 为什么要使用optimizer.zero_grad()
https://www.zhihu.com/question/303070254/answer/573504133
每个batch的梯度是单独计算的 是按批次更新的 而不是按全部数据更新的

https://www.cnblogs.com/wanghui-garcia/p/11399053.html
pytorch torch.nn 实现上采样——nn.Upsample

torch.nn.Module.apply(fn)
https://blog.csdn.net/m0_46653437/article/details/112649816

   the parameters of a model (see also torch-nn-init).将一个函数fn递归地应用到模块自身以及该模块的每一个子模块(即在函数.children()中返回的子模块).该方法通常用来初始化一个模型中的参数(另见torch-nn-init部分的内容).

https://www.cnblogs.com/wmc258/p/14539677.html

torch.nn.init.normal(tensor, mean=0, std=1)
从给定均值和标准差的正态分布N(mean, std)中生成值,填充输入的张量或变量参数:
tensor – n维的torch.Tensor
mean – 正态分布的均值
std – 正态分布的标准差

torch.nn.Init.normal_()的用法

20210609

https://www.zhihu.com/question/288350769
torch.manual_seed(1)

https://blog.csdn.net/zziahgf/article/details/78489562
计算 Log-Sum-Exp

https://www.zhihu.com/question/402741396
clone()

https://blog.csdn.net/kdongyi/article/details/108180250
Pytorch中contiguous()函数理解
相当于深拷贝

      self.optimizer = self._decay_learning_rate(epoch=epoch - 1, init_lr=self.config.learning_rate)#直接改写为adam# self.optimizer=torch.optim.Adam(self.optimizer.param_groups,lr=self.config.learning_rate)self.optimizer=torch.optim.Adam(self.model.parameters,lr=self.config.learning_rate)

设置优化器

https://blog.csdn.net/qq_40367479/article/details/82530324

decay_rate是衰减指数,可设为略小于1的值,比如0.98。global_step是当前的迭代轮数,decay_steps是你想要每迭代多少轮就衰减的度量值,可叫作衰减速度。比如decay_steps = 1000,意味着当global_step达到1000时就给learning_rate乘上0.98的一次方,达到2000就乘上0.98的二次方,以此类推,不断缩小学习率。

另一种方法

# 自己写的学习率衰减函数def _decay_learning_rate(self, epoch, init_lr):"""lr decay Args:epoch: int, epoch init_lr:  initial lr"""lr = init_lr / (1 + self.config.lr_rate_decay * epoch)for param_group in self.optimizer.param_groups:param_group['lr'] = lrreturn self.optimizer

学习率衰减(learning rate decay)

https://blog.csdn.net/jining11/article/details/103825447
pytorch加载模型时使用map_location来在CPU、GPU间辗转腾挪

https://blog.csdn.net/qq_39852676/article/details/106326580
pytorch中model.to(device)和map_location=device的区别

20210608

https://blog.csdn.net/xu380393916/article/details/97280035
pytorch 中的 forward 的使用与解释

https://blog.csdn.net/u011501388/article/details/84062483
PyTorch之前向传播函数forward

https://blog.csdn.net/qq_41375609/article/details/102891831
hook
在这里插入图片描述
标量没有维度
列表有维度

20210422

解决安装torchvision自动更新torch到最新版本
不使用pip install torchvision == 0.4.0
使用pip install --no-deps torchvision == 0.4.0
完美解决安装完torchvision之后继续更新torch到1.2.0版本(目前最新版)。

20210420

https://zhuanlan.zhihu.com/p/108342960
pytorch项目

20210128

https://blog.csdn.net/kyle1314608/article/details/113758100
pytorch常用代码

RuntimeError: [enforce fail at ..\c10\core\CPUAllocator.cpp:72] data. DefaultCPUAllocator: not enough memory: you tried to allocate 4792320 bytes. Buy new RAM!
报这个错的时候 可以更改bert预训练模型的json 参数
比如少用几层  每层少用几个头 
也就是少用一些参数

tf_model.h5,model.ckpt.index

pytorch_model.bin
是并列关系 用pytorch 就用下面
用tf就用上面的训练模型

20201219

https://blog.csdn.net/kyle1314608/article/details/111405214
tensor和模型 保存与加载 PyTorch

20201210

RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn
原因是变量没有设置为require_grad=True 没有设置梯度更新为True
或者叫梯度不更新的问题

import torch
from torch import Variable
x=torch.randn(3)
x=Variable(x,requires_grad=True)#生成变量
print(x)#输出x的值
y=x*2
y.backward(torch.FloatTensor([1,0.1,0.01]))#自动求导
print(x.grad)#求对x的梯度

通过上面把任何变量设置需要梯度更新

https://blog.csdn.net/kyle1314608/article/details/110959432
numpy转tensor 并有梯度更新

在这里插入图片描述
dim 维度的方向

https://www.cnblogs.com/jiangkejie/p/9981707.html
detach

https://pytorch-cn.readthedocs.io/zh/latest/package_references/torch-autograd
https://ptorch.com/docs/2/developer-docs
说明书 手册 指南

20201202

https://blog.csdn.net/kyle1314608/article/details/110489180
数据类型转换

https://blog.csdn.net/kyle1314608/article/details/110486424
#测试
aa=torch.zeros([2,2])
bb=torch.zeros([2,3])
cc=torch.cat((aa,bb),1)
#测试
torch 拼接
某个矩阵列数要增加 且填充为零 padding

loss = -(target * logsigmoid(input) + (1 - target) * logsigmoid(-input))
RuntimeError: expected device cpu and dtype Float but got device cpu and dtype Long

把target 和 input 由 target.long() 改成 target.float()

dataTar = torch.from_numpy(dataTar)
TypeError: can’t convert np.ndarray of type numpy.object_. The only supported types are: float64, float32, float16, int64, int32, int16, int8, uint8, and bool.

把ndarray里面字符型的元素转换为数值

Python报错xxx.whl is not a supported wheel on this platform
linux 现在安装pytorch版本和本地安装的python版本不一致

bug提示某个对象的某种属性无效了,一般情况下是因为软件版本的变更造成的
降低软件版本,或者把属性改成当前的属性

tensor 转 array 再转list
pred=np.array(pred).tolist()
RuntimeError: Assertion cur_target 0 cur_target n_classes failed
网络分类标签应该跟真实分类标签一样多
分类标签必须从零开始
分类标签必须连续 1 2 34 等

https://blog.csdn.net/qq_28418387/article/details/97971328
pytorch 构建tensor

https://blog.csdn.net/qq_42146630/article/details/98784062
Pytorch手写数字识别(一)

https://blog.csdn.net/Lee_lg/article/details/103901632
Python模块问题:ImportError: cannot import name ‘PILLOW_VERSION’ from ‘PIL’

https://blog.csdn.net/Albert201605/article/details/79893585

MNIST 数据集 转换为CSV

https://blog.csdn.net/zhe_csdn/article/details/93655053
pytorch的Tensor变量之间的转换

RuntimeError: Assertion `cur_target >= 0 && cur_target < n_classes’ failed. at

https://blog.csdn.net/m0_37369043/article/details/102632297
标签必须从零开始

https://pytorch-cn.readthedocs.io/zh/latest/package_references/Tensor/

# https://www.w3cschool.cn/pytorch/pytorch-uvpm3bm3.html
# https://pytorch-cn.readthedocs.io/zh/latest/package_references/torch/

pytorch中文文档 重点


http://www.ppmy.cn/news/605407.html

相关文章

LeetCode简单题之计算字符串的数字和

题目 给你一个由若干数字&#xff08;0 - 9&#xff09;组成的字符串 s &#xff0c;和一个整数。 如果 s 的长度大于 k &#xff0c;则可以执行一轮操作。在一轮操作中&#xff0c;需要完成以下工作&#xff1a; 将 s 拆分 成长度为 k 的若干 连续数字组 &#xff0c;使得前 …

比Momentum更快:揭开Nesterov Accelerated Gradient的真面目NAG 梯度下降

d为累计梯度 作为一个调参狗&#xff0c;每天用着深度学习框架提供的各种优化算法如Momentum、AdaDelta、Adam等&#xff0c;却对其中的原理不甚清楚&#xff0c;这样和一条咸鱼有什么分别&#xff01;&#xff08;误&#xff09;但是我又懒得花太多时间去看每个优化算法的原始…

LeetCode简单题之重新排列日志文件

题目 给你一个日志数组 logs。每条日志都是以空格分隔的字串&#xff0c;其第一个字为字母与数字混合的 标识符 。 有两种不同类型的日志&#xff1a; 字母日志&#xff1a;除标识符之外&#xff0c;所有字均由小写字母组成 数字日志&#xff1a;除标识符之外&#xff0c;所有…

深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG) 优化算法

深度学习优化函数详解系列目录 深度学习优化函数详解&#xff08;0&#xff09;– 线性回归问题 深度学习优化函数详解&#xff08;1&#xff09;– Gradient Descent 梯度下降法 深度学习优化函数详解&#xff08;2&#xff09;– SGD 随机梯度下降 深度学习优化函数详解&…

LeetCode简单题之统计字符串中的元音子字符串

题目 子字符串 是字符串中的一个连续&#xff08;非空&#xff09;的字符序列。 元音子字符串 是 仅 由元音&#xff08;‘a’、‘e’、‘i’、‘o’ 和 ‘u’&#xff09;组成的一个子字符串&#xff0c;且必须包含 全部五种 元音。 给你一个字符串 word &#xff0c;统计并返…

深度学习优化方法-AdaGrad 梯度下降

梯度下降算法、随机梯度下降算法&#xff08;SGD&#xff09;、小批量梯度下降算法&#xff08;mini-batch SGD&#xff09;、动量法&#xff08;momentum&#xff09;、Nesterov动量法有一个共同的特点是&#xff1a;对于每一个参数都用相同的学习率进行更新。但是在实际应用中…

LeetCode简单题之三除数

题目 给你一个整数 n 。如果 n 恰好有三个正除数 &#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 如果存在整数 k &#xff0c;满足 n k * m &#xff0c;那么整数 m 就是 n 的一个 除数 。 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;fal…

决策树--信息增益,信息增益比,Geni指数的理解

20210528 https://blog.csdn.net/qq_39408570/article/details/89764177 信息增益和基尼指数不是等价的 大多数时候它们的区别很小 信息增益对较混乱的集合有很好的表现力&#xff0c;但是基尼指数有所欠缺。另一方面&#xff0c;这也说明较纯的集合&#xff0c;基尼指数可能会…