python\pytorch常用代码段
文章平均质量分 55
Answerlzd
本博客作为个人的学习笔记,转载时已进行注明,若擅自转载了前辈博客,还请联系本人进行删除。
展开
-
LATEX algorithm 手动缩进
在文件开头引入下面的包和代码:\usepackage{algorithm}\usepackage{algorithmic}\newlength\myindent\setlength\myindent{2em}\newcommand\bindent{% \begingroup \setlength{\itemindent}{\myindent} \addtolength{\algorithmicindent}{\myindent}}\newcommand\eind.原创 2021-08-28 18:52:54 · 5939 阅读 · 5 评论 -
torch.cosine_similarity, 广播,一个矩阵的每行和另一个tensor计算相似度
1. torch.cosine_similarity 对应两个向量计算相似度a = torch.randn(100,128)b = torch.randn(100,128)torch.cosine_similarity(a, b, dim=-1).shape>>> torch.Size([100])2. torch.cosine_similarity 对任意两个向量之间两两计算相似度也就是希望得到一个 [N, N]的一个矩阵方法一:循环def get_att原创 2021-08-20 09:24:17 · 4650 阅读 · 0 评论 -
多分类 交叉熵 纯python实现
之前只知道二分类交叉熵的公式,或者调包实现过,从来没用纯python实现过。正好有个机会需要写这么一个函数,特此记录一下。问题:给定一个logits输出x, 和真实的标签y要求计算其交叉熵首先要计算x的概率,用python实现softmax 然后找到标签对应的概率话不多说直接上代码:import mathdef softmax(x): m, n = len(x), len(x[0]) for i in range(m): cur_m = max(x[i])原创 2021-07-01 22:27:41 · 2288 阅读 · 0 评论 -
python t-sne降维可视化, 显示类别名称, 多种颜色
博主比较懒,不想写描述了原创 2021-05-27 22:01:18 · 8336 阅读 · 2 评论 -
git 常用命令 工作流程
记录常用的git命令,不定期更新~命令 用法 git pull origin main 从远程分支拉最新的代码到本地的main分支上 git checkout -b branch1 新建branch1分支,并切换到这个分支 git add . 将当前修改提交到暂存区 git commit -m "description" 将暂存区的修改真正保存 git status 查看当前分支状态(比如是否当前分支有改动) git branch ..原创 2021-04-25 17:04:09 · 444 阅读 · 0 评论 -
launch.json vscode 调试带参数程序,指定GPU, 指定python解释器,封装包里面打断点
每次配置的时候都忘记launch.json里面怎么配置,特别是指定虚拟环境的python解释器时,常常会忘记python解释器的路径。这个launch.json可以点击菜单栏:运行->添加配置 生成记录个例子,做笔记查阅:{ "version": "0.2.0", "configurations": [ { "python": "/home/axjia/anaconda35/envs/py37/bin/python3", .原创 2020-12-30 16:02:43 · 17126 阅读 · 9 评论 -
pytorch 生成均值为0方差为0.01的tensor
一向记不住函数的用法,就用笔记来记录一下吧:生成一个2*3的tensor:torch.normal(mean=torch.full((2,3),0.0),std=torch.full((2,3),0.01))原创 2020-12-03 16:15:24 · 2641 阅读 · 0 评论 -
pytorch 将整数标签转成one-hot编码
import torchnum_class = 5N = 3tensor = torch.randint(0, num_class, [N])print(tensor)one_hot = torch.zeros(N, num_class).long()one_hot.scatter_(dim=1,index=tensor.unsqueeze(dim=1),src=torch.ones(N, num_class).long())print(one_hot)原创 2020-09-09 15:33:18 · 3220 阅读 · 0 评论 -
torchtext 为int 类型的数字设置fields
例、输入为:0 1 2 -1 3 4 -10 2 1 4 -1 5 3fields["src"] = torchtext.data.Field( use_vocab=False, dtype=torch.long, pad_token='<pad_id>') # 根据需要修改<pad_id>原创 2020-08-09 10:09:41 · 254 阅读 · 0 评论 -
正则表达式匹配标签之间的内容或者以一个标签开头的内容
比如有一段文字:<s> mentally ill inmates in miami are housed on the `` forgotten floor '' </s> <s> judge steven leifman says most are there as a result of `` avoidable felonies '' </s> <s> while cnn tours facility , patient shouts原创 2020-07-23 20:16:03 · 1313 阅读 · 0 评论 -
python 绘制矩阵权重
参考:https://blog.csdn.net/henbile/article/details/80241597https://blog.csdn.net/m0_38103546/article/details/79935671import matplotlib.pyplot as pltimport seaborn as snsimport numpy as npimport pandas as pda = np.random.rand(4,3)fig, ax = plt.subpl转载 2020-06-14 15:17:04 · 2709 阅读 · 0 评论 -
pytorch shuffle 一个tensor
pytorch好像没有直接原地进行shuffle函数。如果使用外部的库函数random对pytorch的张量shuffle,同一个值可能会被取多次,并不是对数据进行打乱。所以尝试对下标进行shuffle,然后根据下标取对应的元素。import torchimport randoma = torch.rand(9)print('a:\n', a)random.shuffle(a)print('random.shuffle(a):\n', a)index = [i for i i原创 2020-06-08 10:45:09 · 8621 阅读 · 8 评论 -
pytorch 计算 kl散度 F.kl_div()
先附上官方文档说明:https://pytorch.org/docs/stable/nn.functional.htmltorch.nn.functional.kl_div(input,target,size_average=None,reduce=None,reduction='mean')Parameters input– Tensor of arbitrary shape target– Tensor of the same shape as input ...原创 2020-05-21 18:52:37 · 28372 阅读 · 6 评论 -
pytorch张量复制clone()和detach()
转自:https://blog.csdn.net/winycg/article/details/100813519tensor复制可以使用clone()函数和detach()函数即可实现各种需求。cloneclone()函数可以返回一个完全相同的tensor,新的tensor开辟新的内存,但是仍然留在计算图中。detachdetach()函数可以返回一个完全相同的tensor,.........转载 2020-02-20 20:14:45 · 15102 阅读 · 8 评论 -
pytorch .detach() .detach_() 和 .data
当我们在训练网络的时候可能希望保持一部分的网络参数不变,只对其中一部分的参数进行调整;或者只训练部分分支网络,并不让其梯度对主网络的梯度造成影响,这时候我们就需要使用detach()函数来切断一些分支的反向传播。一、detach()[source]返回一个新的Variable,从当前计算图中分离下来的,但是仍指向原变量的存放位置,不同之处只是requires_grad为false,得到的这...转载 2020-02-14 16:20:49 · 374 阅读 · 0 评论 -
sys.stdout.flush()
python的stdout是有缓冲区的,例子:import timeimport sys for i in range(5): print i, #sys.stdout.flush() time.sleep(1)这个程序本意是每隔一秒输出一个数字,但是如果把这句话sys.stdout.flush()注释的话,你就只能等到程序执行完毕,屏幕上会一次性输出0,1...转载 2020-02-09 19:57:38 · 356 阅读 · 0 评论 -
RuntimeError: one of the variables needed for gradient computation has been modified by an inplace o
在进行反向传播时报了下面一个错误:可能的情况:一、参考博客https://blog.csdn.net/DuinoDu/article/details/80435127找到网络中的in-place操作:x = x + 1 # not inplacex += 1 # inplace把第二种写法替换成第一种。二、也就是我遇到的情况,进行in-place操作,就比方说y加上...原创 2020-01-21 23:00:15 · 435 阅读 · 0 评论 -
Python的比较方法__eq__和__ne__之间的关联关系分析
原文链接:https://blog.csdn.net/LaoYuanPython/article/details/95218476Python的富比较方法包括__lt__、__gt__、__le__、__ge__、__eq__和__ne__六个方法,分别表示:小于、大于、小于等于、大于等于、等于和不等于,对应的操作运算符为:<、>、<=、>=、==和!=。那么是否象普通...转载 2020-01-14 10:29:54 · 421 阅读 · 0 评论 -
python比较任意多个数组的对应参数是否相等
def aeq(*args): """ Assert all arguments have the same value """ arguments = (arg for arg in args) first = next(arguments) assert all(arg == first for arg in arguments), \...原创 2019-12-12 21:55:24 · 771 阅读 · 0 评论 -
python:glob模块
python标准库之glob介绍glob文件名模式匹配,不用遍历整个目录判断每个文件是不是符合。1、通配符星号(*)匹配零个或多个字符import globfor name in glob.glob('dir/*'): print (name)dir/file.txtdir/file1.txtdir/file2.txtdir/filea.txtd...转载 2019-12-09 21:10:53 · 314 阅读 · 0 评论 -
python将字符串转换为字典类型
类似于列表推导式这里可以使用字典推导式str = "a=1; b=2; c=3"dic = {i.split("=")[0]: i.split("=")[1] for i in str.split("; ")}>>>{'a': '1', 'b': '2', 'c': '3'}原创 2019-07-17 19:57:28 · 567 阅读 · 0 评论 -
python3中property属性的使用方法
作用:使一个方法调用起来像调用属性一样,简化调用者在获取数据的流程,使代码更整洁。两种方式实现property属性1、装饰器:在方法上应用装饰器python2中只有@property一种修饰方法 python3中有@property、@方法名.setter、@方法名.deleter三种修饰方法,分别实现获取、修改和删除class Bus: def __init__(s...原创 2019-07-26 18:44:11 · 457 阅读 · 0 评论 -
python绘制loss和accuracy曲线
一、导入工具包import matplotlib.pyplot as pltfrom mpl_toolkits.axes_grid1 import host_subplot二、定义画图函数def plot_acc_loss(loss, acc): host = host_subplot(111) # row=1 col=1 first pic plt.subpl...原创 2019-07-31 20:32:35 · 8849 阅读 · 6 评论 -
Pytorch保存和载入模型与参数
一、保存# 保存模型到路径torch.save(Batch_Net(28*28, 300, 100, 10), r'C:\Users\11868\Desktop\net.pth')# 保存模型的参数torch.save(model.state_dict(), r'C:\Users\11868\Desktop\state_dict.pth')注意:若模型初始化需要指定参数,则保存时要...原创 2019-08-01 18:09:15 · 300 阅读 · 0 评论 -
正则表达式基本语法规则(一)
一、正则表达式正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。二、作用在大文本中匹配字符串时,有些情况用str自带的函数(比如find, in)可能可以完成,有些情况会稍稍复杂一些(比如说找出所有“像邮箱”的字符串),这个时候我们需要一个某种模式的工具,这个时候正则表...原创 2019-07-28 21:17:28 · 237 阅读 · 0 评论 -
pytorch不同层指定不同的学习率
在构造优化器对象时,第一个参数不传递模型的所有参数,而是传递一个列表。将要更新的参数构造一个单独的参数组,其中包含属于它的参数列表。# 实例model = Model(input_size, hidden_size, output_size)optimizer = optim.SGD([ {'params': model.fc.parameters()}, {'para...原创 2019-08-13 18:00:04 · 1116 阅读 · 0 评论 -
pytorch禁止/允许计算局部梯度
一、禁止计算局部梯度torch.autogard.no_grad: 禁用梯度计算的上下文管理器。当确定不会调用Tensor.backward()计算梯度时,设置禁止计算梯度会减少内存消耗。如果需要计算梯度设置Tensor.requires_grad=True两种禁用方法:将不用计算梯度的变量放在with torch.no_grad()里>>> x = torc...原创 2019-08-13 19:09:47 · 16576 阅读 · 0 评论 -
pytorch masked_fill
import torch.nn.functional as Fimport numpy as npa = torch.Tensor([1,2,3,4])a = a.masked_fill(mask = torch.ByteTensor([1,1,0,0]), value=-np.inf) print(a)b = F.softmax(a)print(b)tensor([-inf...转载 2019-09-16 20:30:45 · 581 阅读 · 0 评论 -
windows下安装pytorch
因为直接在官网使用命令下载往往因为网络原因要下载很长时间,安装成功也就罢了,多数情况下很难一次就安装成功。因此可以使用离线下载的方式。一、准备工作因为后面安装的时候需要pip install 这个命令,所以要安装好anaconda,网上教程多的是。安装好之后配置环境变量。具体做法:控制面板=》系统和安全=》系统=》高级系统设置=》环境变量=》用户变量=》双击Path这里我安...原创 2019-09-17 21:17:59 · 347 阅读 · 2 评论 -
python re库正则表达式用法 (二)
一、re模块Python通过re模块提供对正则表达式的支持。使用re的一般步骤是:1.将正则表达式的字符串形式编译为Pattern实例 2. 使用re库常用的功能函数处理文本并获得结果 3. 对得到的结果进行其他的操作,获取想要的信息。import re# 将正则表达式编译成Patternpattern =re.compile( r'hello.*\!')# 使用P...原创 2019-07-29 18:11:34 · 635 阅读 · 0 评论