Fork me on GitHub

随笔分类 -  Pytorch

摘要:背景知识 在说 torch.backends.cudnn.benchmark 之前,我们首先简单介绍一下 cuDNN。cuDNN 是英伟达专门为深度神经网络所开发出来的 GPU 加速库,针对卷积、池化等等常见操作做了非常多的底层优化,比一般的 GPU 程序要快很多。大多数主流深度学习框架都支持 cu 阅读全文
posted @ 2021-06-03 17:10 stardsd 阅读(958) 评论(0) 推荐(0) 编辑
摘要:在使用pytorch的时候利用下面的语句指定GPU为仅为"6",但是用nvidia-smi查看GPU使用时,仍默认为"0"号 import pytorchimport osos.environ['CUDA_VISIBLE_DEVICES'] = '6'解决方案:将上述语句放到当前这个python文件 阅读全文
posted @ 2021-04-20 18:27 stardsd 阅读(6300) 评论(0) 推荐(0) 编辑
摘要:前言yolov5提供了一种超参数优化的方法–Hyperparameter Evolution,即超参数进化。超参数进化是一种利用 遗传算法(GA) 进行超参数优化的方法,我们可以通过该方法选择更加合适自己的超参数。 提供的默认参数也是通过在COCO数据集上使用超参数进化得来的。由于超参数进化会耗费大 阅读全文
posted @ 2021-04-15 15:08 stardsd 阅读(4238) 评论(0) 推荐(1) 编辑
摘要:如何设置PyTorch的动态学习率 本文主要涉及内容:Optimizer、_LRScheduler等源码分析。本文依旧基于PyTorch 1.1.0。 Optimizer PyTorch提供了torch.optim.lr_scheduler来帮助用户改变学习率,下边将从Optimizer入手,看一下 阅读全文
posted @ 2021-04-13 15:10 stardsd 阅读(6844) 评论(0) 推荐(0) 编辑
摘要:dataloader本质上是一个可迭代对象,使用iter()访问,不能使用next()访问; 使用iter(dataloader)返回的是一个迭代器,然后可以使用next访问; 也可以使用for inputs,labels in enumerate(dataloader)形式访问,但是enumera 阅读全文
posted @ 2021-04-12 17:11 stardsd 阅读(4746) 评论(0) 推荐(0) 编辑
摘要:【炼丹技巧】 在深度学习中,经常会使用EMA(指数移动平均)这个方法对模型的参数做平均,以求提高测试指标并增加模型鲁棒。 今天瓦砾准备介绍一下EMA以及它的Pytorch实现代码。 EMA的定义 指数移动平均(Exponential Moving Average)也叫权重移动平均(Weighted 阅读全文
posted @ 2021-04-12 09:23 stardsd 阅读(5498) 评论(0) 推荐(1) 编辑
摘要:The last_epoch parameter is used when resuming training and you want to start the scheduler where it left off earlier. Its value is increased every ti 阅读全文
posted @ 2021-04-07 15:31 stardsd 阅读(2231) 评论(0) 推荐(0) 编辑
摘要:torch.optim torch.optim是一个实现了各种优化算法的库。大部分常用的方法得到支持,并且接口具备足够的通用性,使得未来能够集成更加复杂的方法。 如何使用optimizer 为了使用torch.optim,你需要构建一个optimizer对象。这个对象能够保持当前参数状态并基于计算得 阅读全文
posted @ 2021-04-07 15:05 stardsd 阅读(2986) 评论(0) 推荐(0) 编辑
摘要:一、 在利用python处理数据的时候,经常会用到numpy API: np.random.seed() 与 np.random.RandomState() 但这两个函数的用法,一直不太好理解。在网上查找了许多文章,研究了下他们的异同。做个记录。 1,np.random.seed() 设置seed( 阅读全文
posted @ 2021-04-01 15:36 stardsd 阅读(2184) 评论(0) 推荐(0) 编辑
摘要:上图也是某种意义上的梯度累加:一般是直接加总或者取平均,这样操作是scale了,其实影响不大,只是确保loss计算时的value不至于太大。batchsize超过64的情况不多(batchsize太大会有副作用),这时候优化的粒度没那么细,scale操作适当又做了惩罚。可能在某些时候比不加收敛更快 阅读全文
posted @ 2021-03-30 17:53 stardsd 阅读(14841) 评论(0) 推荐(0) 编辑
摘要:你想获得双倍训练速度的快感吗? 你想让你的显存空间瞬间翻倍吗? 如果我告诉你只需要三行代码即可实现,你信不? 在这篇博客里,瓦砾会详解一下混合精度计算(Mixed Precision),并介绍一款Nvidia开发的基于PyTorch的混合精度训练加速神器--Apex,最近Apex更新了API,可以用 阅读全文
posted @ 2021-03-30 16:26 stardsd 阅读(2069) 评论(0) 推荐(0) 编辑
摘要:PyTorch 两大转置函数 transpose() 和 permute(), 以及RuntimeError: invalid argument 2: view size is not compati 关心差别的可以直接看[3.不同点]和[4.连续性问题]前言在pytorch中转置用的函数就只有这两 阅读全文
posted @ 2021-03-17 10:55 stardsd 阅读(3493) 评论(0) 推荐(0) 编辑
摘要:学习率衰减是一个非常有效的炼丹技巧之一,在神经网络的训练过程中,当accuracy出现震荡或loss不再下降时,进行适当的学习率衰减是一个行之有效的手段,很多时候能明显提高accuracy。 Pytorch中有两种学习率调整(衰减)方法: 使用库函数进行调整; 手动调整。 1. 使用库函数进行调整: 阅读全文
posted @ 2021-03-17 09:31 stardsd 阅读(5544) 评论(0) 推荐(0) 编辑
摘要:废话不多说直接上图 如图有a, b, c 三个 3x3的Tensor, 如果我想把这三个tensor的最后一个维度的元素相叠加,形成一个新的tensor 输入 d=torch.stack( (a,b,c) ,dim = 2) 就会发现他们在第二个维度像叠加,具体来说变化如下图所示 d[0][0]的位 阅读全文
posted @ 2021-03-15 15:12 stardsd 阅读(3423) 评论(2) 推荐(0) 编辑
摘要:原文: https://pytorch.org/tutorials/advanced/super_resolution_with_onnxruntime.html 注意 单击此处的下载完整的示例代码 在本教程中,我们描述了如何将 PyTorch 中定义的模型转换为 ONNX 格式,然后在 ONNX 阅读全文
posted @ 2021-03-15 14:23 stardsd 阅读(7720) 评论(0) 推荐(0) 编辑
摘要:0.摘要 最近一段时间在学习yolo3,看了很多博客,理解了一些理论知识,但是学起来还是有些吃力,之后看了源码,才有了更进一步的理解。在这里,我不在赘述网络方面的代码,网络方面的代码比较容易理解,下面将给出整个yolo3代码的详解解析,整个源码中函数的作用以及调用关系见下图: 参考:https:// 阅读全文
posted @ 2021-03-11 16:50 stardsd 阅读(2662) 评论(0) 推荐(0) 编辑
摘要:本文主要介绍PyTorch框架下的可视化工具Tensorboard的使用 面向第一次接触可视化工具的新手<其实是备忘> 之前用了几天visdom,用起来很方便,但是画的图显得很乱,所以花了一晚上把代码里的visdom都改成了tensorboard。 Tensorboard 安装 原本是tensorf 阅读全文
posted @ 2021-03-11 11:17 stardsd 阅读(9486) 评论(0) 推荐(2) 编辑
摘要:model.train() tells your model that you are training the model. So effectively layers like dropout, batchnorm etc. which behave different on the train 阅读全文
posted @ 2021-03-09 14:39 stardsd 阅读(785) 评论(0) 推荐(0) 编辑
摘要:Pytorch 为什么每一轮batch需要设置optimizer.zero_grad 根据pytorch中的backward()函数的计算,当网络参量进行反馈时,梯度是被积累的而不是被替换掉;但是在每一个batch时毫无疑问并不需要将两个batch的梯度混合起来累积,因此这里就需要每个batch设置 阅读全文
posted @ 2021-03-09 10:12 stardsd 阅读(2158) 评论(0) 推荐(1) 编辑
摘要:Pytorch torchvision.utils.make_grid()用法 make_grid的作用是将若干幅图像拼成一幅图像。其中padding的作用就是子图像与子图像之间的pad有多宽。 这是padding为0的结果 这是padding为2的结果 在需要展示一批数据时很有用。———————— 阅读全文
posted @ 2021-03-01 10:35 stardsd 阅读(3814) 评论(0) 推荐(0) 编辑