Pytorch
老光头_ME2CS
机械转计算机视觉的光头老僧
展开
-
Torch 和 Numpy 出现NAN解决方法
在训练过程中,在确保数据没有异常的情况。由于自定义loss中出现了除数为0或对数为0的情况,导致无法计算得到数字就会得到NAN,然后loss.backward()就会导致整个网络的权重数值都变成NAN。直接导致网络无法计算。所以在网络训练过程中需要对NAN进行检测和处理。NAN检测如果只是一个简单的标量,直接使用isnan进行判据torch.isnan(loss)如果只是一个相对复杂的矢量,则需要使用结合.int().sum()对nan进行计数,判据大于0torch.isnan(loss).i原创 2021-01-24 15:11:22 · 6523 阅读 · 0 评论 -
Python中 list, numpy.array, torch.Tensor 格式相互转化
1.1 list 转 numpyndarray = np.array(list)1.2 numpy 转 listlist = ndarray.tolist()2.1 list 转 torch.Tensortensor=torch.Tensor(list)2.2 torch.Tensor 转 list先转numpy,后转listlist = tensor.numpy().tolist()3.1 torch.Tensor 转 numpyndarray = tensor.numpy()*gp转载 2020-12-17 11:09:22 · 268 阅读 · 0 评论 -
Pytorch数据加载 torch.utils.data.DataLoader 中 num_workers 设置
电脑有10核20线程应该怎么设置torch.utils.data.DataLoader 中 num_workers使得我数据加载最快?首先来搞定定义:概念核心数与线程数核心数与线程数核心:一个CPU具有的物理核心数(物理概念)线程:是CPU调度和分配的基本单位(逻辑概念)。一个计算机可以并发(同时)的线程数,等于计算机上的逻辑处理器的个数(CPU个数 *每个CPU核心数 *每个内核线程数)详细参考参考:https://blog.csdn.net/weixin_38256474/article/原创 2020-12-12 18:32:15 · 3623 阅读 · 0 评论 -
Pytorch 随机种子设置 不可控因素
为确保模型训练过程中,需要设置模型的随机种子,具体操作如下:主程序def torch_seed(seed): torch.manual_seed(seed) torch.cuda.manual_seed(seed) torch.cuda.manual_seed_all(seed) np.random.seed(seed) # Numpy module. random.seed(seed) # Python random module. torch.原创 2020-12-12 17:59:58 · 920 阅读 · 0 评论 -
KLD Loss( tf.nn.softmax, torch.nn.functional.softmax, log_softmax, kl_div) 计算技巧(一)
最近在比较不同模型的性能,发现虽然文献中使用的相同的指标,比如KLD。但是数据的处理方式却存在着差异,这会导致最后的数据并不具有直接可比性。这里记录下,其中的一些值得记住的细节。主要涉及的API包括tf.nn.softmax, torch.nn.functional.softmax, log_softmax, kl_div文章目录二维数据输入数据前处理tf.nn.softmaxtorch.nn.functional.softmaxkld 散度计算tensorflowpytorch完整代码二维数据输入原创 2020-11-09 15:14:03 · 4566 阅读 · 0 评论 -
ResNeSt 模型分析和代码详解 (拆组和通道注意力ResNet)
ResNeSt: Split-Attention Networks模型的拆分注意力网络,最近特别火,主要是作为深度学习的backbone模型,ResNeSt在不同的图像任务中都有效提高了模型的预测精度。因此今天分享下,最近两天学习的心得体会,参考资料如下:ResNeSt: Split-Attention Networksgithub官网B站作者讲解张航主页文章目录安装使用ResNeSt创新点split(multi-brach)Channel attention代码详解resnest.pyresn原创 2020-10-13 15:49:20 · 18388 阅读 · 18 评论 -
pytorch Error(s) in loading state_dict 使用re模块 改变字典索引
在使用model.load_state_dict进行权重文件加载时,类似keras中load_weights(by_name=True),是严格按照模型的中的各个模块的名称与权重文件中state_dict 的索引进行匹配的。如果不匹配,会报错 Error(s) in loading state_dict。注意Pytorch与keras中load_weights(by_name=False)设置不同,由于Tensorflow是静态图是可以按照网络的拓扑结构,即模型与权重文件的的层次结构进行匹配Pytor原创 2020-09-04 15:55:44 · 427 阅读 · 0 评论 -
torch.nn.DataParallel 注意事项:模型的字典结构改变
发现在使用torch.nn.DataParallel,原有模型的字典结构会发生一定变化使用前self._modelNer((cnn): ResNet(使用后原有属性嵌套到了`DataParallel的module属性中self._modelDataParallel( (module): Net((cnn): ResNet(因此在调用原有self._model的参数时候,就变成了self._model.module...原创 2020-09-03 21:24:17 · 849 阅读 · 0 评论 -
经典卷积神经网络(二) Pytorch torchvision.models
接着上一篇 Google 阵营Tensorflow /Keras为我们提供了大量pre-trained经典卷积网络模型, 这一篇继续介绍Pytorch如何使用Pytorch torchvision.models中的经典模型进行快速迁移学习。相比Tensorflow主要多了Facebook团队发布的 SqueezeNet、ShuffleNet、Wide ResNet、MNASNet模型。torchvision.modelsPytorch一共提供29个经典卷积神经模型Pytorch官网TORCHVIS原创 2020-09-03 19:59:10 · 2102 阅读 · 0 评论 -
Video Saliency Detection 文献学习(一)Unified Image and Video Saliency Modeling
由于课题有关人员的Attention/Gaze/Saliency建模,所以最近读了一些Saliency Detection 的文章。利用博客一方面作为学习笔记记录一下,一方面也与大家进行交流。第一篇文章是2020年ECCV, University of Oxford研究团队的Unified Image and Video Saliency Modeling。这篇文章最大的特点就是集成了静态图像和动态视频的Saliency Detection功能,相比传统以静态图Saliency Detection的连续输原创 2020-08-13 10:37:29 · 1294 阅读 · 1 评论 -
Video Saliency Detection 文献学习及代码解读(二) TASED-Net
2019年ICCV发表的论文Kyle Min Jason J. Corso University of Michigan摘要个人觉得写得挺中规中矩,就介绍了模型的特点,即在DHF1K, Hollywood2, and UCFSports.数据集上表现亮眼。Introduction这一段介绍研究意义不错Video saliency detection aims to model the gaze fixation patterns of humans when viewing a dynamic原创 2020-08-12 10:30:51 · 1464 阅读 · 1 评论 -
视频分类 S3D(separable 3D convolutions)模型及代码分析
S3D(separable 3D CNN)是ECCV 2018发表的关于视频分类模型,核心思想就是将原来的C3D网络替换为时域和空间域分离进行卷积的S3D网络,相比C3D网络,不仅模型参数量得到大幅减少,而且性能也得到提升。原文Rethinking Spatiotemporal Feature Learning:Speed-Accuracy Trade-offs in Video ClassificationIntroduction第一段,概述视频分类问题和现有数据集Sports-1M [5], Ki原创 2020-08-11 16:51:50 · 5966 阅读 · 3 评论 -
Pytorch 创建网络 ResNet18
最近在使用Linux训练网络的过程中,发现Torch在多GPU和多线程任务的API确实比Tensorflow更加友好,尤其是对于我这个非计算机专业的小白而言。所以只能仍疼割TF,转手Torch。相比Keras+Tensorflow的搭建方式,由于都是静态图方式,Torch的搭建方法基本与相似。有兴趣的小伙伴可以对博文学习。迁移学习还是按照之前写Tensorflow2.*的框架重建模型的思路,先参考官方的pre-trained模型的结构import torchvision.models as mode原创 2020-07-23 15:27:51 · 1580 阅读 · 1 评论 -
Pytorch 循环神经网络 nn.RNN() nn.RNNCell() nn.Parameter()不同方法实现
代码参考https://github.com/ShusenTang/Dive-into-DL-PyTorch原创 2020-07-28 08:41:31 · 1504 阅读 · 0 评论