Pytorch中的BN和IN(affine仿射, track_running_stats)

BN,IN都是这个公式其中μ和σ是running_mean和running_varγ和β是weight和bias这是稍微复杂的写的BN的过程仿射(affine)指的就是最后一步如果affine=False则固定γ=1,β=0,并且不能学习被更新如果 track_running_stats=True,表示跟踪整个训练过程中的batch的统计特性,得到方差和均值,而不只是仅仅依赖与当前输入的batch的统计特性。相反的,如果track_running_stats=F...
分类: 其他 发布时间: 11-27 19:24 阅读次数: 0

Pytorch修改tensor值

①用fill_填充②如果用fill_填充报错,说RuntimeError: a leaf Variable that requires grad has been used in an in-place operation可以对tensor.data操作例如想把tensor a全部赋值成0.3, 可以a.data *= 0a.data += 0.3
分类: 其他 发布时间: 11-27 19:24 阅读次数: 0

Siamese Network(孪生网络/连体网络)

孪生网络很像对比学习,但它是few-shot learning中的内容Few-Shot Learning (2/3): Siamese Network (孪生网络)_哔哩哔哩_bilibili
分类: 其他 发布时间: 11-27 19:24 阅读次数: 0

inplace=True

很多地方有inplace这个参数,最近遇到的是nn.ReLU(inplace=True)inplace为True,将会改变输入的数据 ,否则不会改变原输入,只会产生新的输出inplace:can optionally do the operation in-place. Default: False注: 产生的计算结果不会有影响。利用in-place计算可以节省内(显)存,同时还可以省去反复申请和释放内存的时间。但是会对原变量覆盖,只要不带来错误就用。...
分类: 其他 发布时间: 11-27 19:23 阅读次数: 0

服务器内存泄漏

在集群上跑程序的时候,明明是100G的内存,却总是被kill掉,因为OOM这就很奇怪,后来查了一下,原因是内存泄漏了内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果就是程序停止了之后(经常是被ctrl+c手动终止),其占用的内存并没有释放。通常是因为代码写的烂而且对于linux kernel,只要不断电就不会释放内存所以如果内存泄漏了,就只能重启...
分类: 其他 发布时间: 11-27 19:23 阅读次数: 0

linux快速目录切换(cd - ,dirs, pushd, popd)

cd -cd -回到上一个目录,注意不是上一级目录目录栈切换dirs, pushd, popd此时如果想切入哪个目录,就直接pushd +序号同时这个命令也会把第2个地址提到最前面弹出某个目录也是popd +序号...
分类: 其他 发布时间: 11-27 19:23 阅读次数: 0

Python同时输出到屏幕和文件(Logger)

import sysimport os class Logger(object): def __init__(self, filename="log.txt"): self.terminal = sys.stdout self.log = open(filename, "a") def write(self, message): self.terminal.write(message) self.log.wri...
分类: 其他 发布时间: 11-27 19:23 阅读次数: 0

图像通道转换——tensor从[h, w, c]转为[c, h, w]

如果我目前得到的tensor是[b,h,w,c]的,想保持成图片,但是tensor保存成图片需要[b,c,h,w]格式的用permute或者transpose就可以正常的转过去, 让之前[b,h,w,c]是的3通道,对应到[b,c,h,w]的3通道的位置上但是用view,他只是给你拍平之后,换了一种对之前元素的截取方式,转换后的3通道和之前的3通道是不对应的图像通道转换——从np.ndarray的[w, h, c]转为Tensor的[c, w, h]_莫邪莫急的博客-CSDN博客.
分类: 其他 发布时间: 11-27 19:22 阅读次数: 0

linux服务器精确kill掉占用某几张卡的显存的程序

ps aux | grep python或ps aux | grep open-mmdetection这里可以明显的看到local_rank=0和=1的两个程序就是占用我0卡和1卡的程序,果断kill -9杀掉就可以了这里还可以甄别其他程序,像tensorboard,multiprocessing semaphore_tracker, multiprocessing spawn后两个明显是DDP多卡训练的一些监控进程...
分类: 其他 发布时间: 11-27 19:22 阅读次数: 0

onnx 跨框架的模型中间表达框架

ONNX,Open Neural Network Exchange(开放神经网络交换)格式,是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移。 ONNX是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型。它使得不同的人工智能框架(如Pytorch, MXNet)可以采用相同格式存储模型数据并交互。 ONNX的规范及代码主要由微软,亚马逊 ,Facebook 和 IBM 等公司共同开发,以开放源代码的方式托管在Github上。目前官方支持加载ONNX模...
分类: 其他 发布时间: 11-27 19:22 阅读次数: 0

Linux下删除文件后变成.nfsxxxxxx

出现这种情况是因为当前文件还在被某个程序占用(一般是程序停了但有些进程没被杀掉)当占用的进程没了之后.nfs文件也就自动消失了
分类: 其他 发布时间: 11-27 19:22 阅读次数: 0

linux lsof命令(查看哪个进程在占用文件)

lsof(list open files), 列出当前系统打开的文件吗, 以及谁正在使用这个文件,用户信息等等在linux环境下,一切都是以文件的形式存在(包括网络套接口等).通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信..
分类: 其他 发布时间: 11-27 19:21 阅读次数: 0

TensorRT(GIE)

TensorRT是可以在NVIDIA各种GPU硬件平台下运行的一个C++推理框架。是一个高性能的深度学习推理(Inference)优化器,可以为深度学习应用提供低延迟、高吞吐率的部署推理 我们利用Pytorch、TF或者其他框架训练好的模型,可以转化为TensorRT的格式,然后利用TensorRT推理引擎去运行我们这个模型,从而提升这个模型在英伟达GPU上运行的速度。速度提升的比例是比较可观的TensorRT项目立项的时候名字叫做GPU Inference Engi...
分类: 其他 发布时间: 11-27 19:21 阅读次数: 0

tensor与PIL.Image转换

pytorch中的张量默认采用[N, C, H, W]的顺序,并且数据范围在[0,1],需要进行转置和规范化PIL.Image转tensorimage = PIL.Image.fromarray(torch.clamp(tensor*255, min=0, max=255).byte().permute(1,2,0).cpu().numpy())image = torchvision.transforms.functional.to_pil_image(tensor)tensor转.
分类: 其他 发布时间: 11-27 19:21 阅读次数: 0

numpy array与PIL.Image的转换

PIL Image转numpy arrayimage = PIL.Image.fromarray(ndarray.astype(np.uint8))numpy array转PIL Imagendarray = np.asarray(PIL.Image.open(path))
分类: 其他 发布时间: 11-27 19:21 阅读次数: 0

PyTorch Lightning (pl)

Pytorch-Lighting(简称pl),它其实就是一个轻量级的PyTorch库它把研究代码与工程代码相分离,还将PyTorch代码结构化,更加直观的展现数据操作过程。这样,更加易于理解,不易出错,本来很冗长的代码一下子就变得轻便了,对AI研究者十分的友好。...
分类: 其他 发布时间: 11-27 19:20 阅读次数: 0

torch.jit (PyTorch JIT)

JIT 是一种概念,全称是 Just In Time Compilation,中文译为「即时编译」,是一种程序优化的方法 用 JIT 将 Python 模型转换为 TorchScript Module
分类: 其他 发布时间: 11-27 19:20 阅读次数: 0

TorchScript

TorchScript是Pytorch模型(继承自nn.Module)的中间表示,可以在像C++这种高性能的环境中运行TorchScript是一种从PyTorch代码创建可序列化和可优化模型的方法。任何TorchScript程序都可以从Python进程中保存,并加载到没有Python依赖的进程中。常和torch.jit合起来用...
分类: 其他 发布时间: 11-27 19:20 阅读次数: 0

linux grub菜单

linux grub菜单就是这个配置在 /etc/default/grub
分类: 其他 发布时间: 11-27 19:20 阅读次数: 0

linux lsblk 列出所有可用盘块/查看系统的磁盘

例如当我们想在一个盘中装系统但是不知道这个盘的名称是什么,就可以用lsblk列出来
分类: 其他 发布时间: 11-27 19:19 阅读次数: 0