Python – 使用onnxruntime加载和推理onnx模型
1 onnxruntime Onnx runtime是一个跨平台的机器学习模型加速器,可以在不同的硬件和操作系统上运行,可以加载和推理任意机器学习框架导出的onnx模型并进行加速。 如要使用onnxruntime,一般通过以下步骤: 从机器学习框架中将模型导出为onnx 使用onnxruntime加…
- 模型部署
- 2022-11-30
Pytorch – 训练网络时出现_pickle.UnpicklingError: pickle data was truncated错误
1 Pytorch训练网络时出现_pickle.UnpicklingError: pickle data was truncated错误 今天重新在一个大的数据集上重新训练一个模型时,在第二个epoch时出现了_pickle.UnpicklingError: pickle data was trun…
- Pytorch
- 2022-11-07
Pytorch – torch.nn.Module的parameters()和named_parameters()
1 torch.nn.Module的named_parameters()和parameters() Pytorch的torch.nn.Module有两个比较相似的属性函数named_parameters()和parameters(),parameters()返回整个模型参数的迭代器,而named_p…
- Pytorch
- 2022-09-06
Pytorch – RuntimeError: No rendezvous handler for env://错误
1 RuntimeError: No rendezvous handler for env:// 今天在Windows上使用torch.nn.parallel.DistributedDataParallel进行单机多卡分布式训练出现RuntimeError: No rendezvous handle…
- Pytorch
- 2022-08-25
Pytorch – 没有使用with torch.no_grad()造成测试网络时显存爆炸的问题
1 显存爆炸的问题 最近使用以下示例代码测试自定义深度学习网络时耗光了所有显存,出现了梯度爆炸的问题。 model.eval() for batch_idx, data in enumerate(tqdm(data_loader)): image = data[0].to('cuda:0') ...…
- Pytorch
- 2022-08-23
Pytorch – 多GPU训练方式nn.DataParallel与nn.parallel.DistributedDataParallel的区别
1 torch.nn.DataParallel和torch.nn.parallel.DistributedDataParallel函数详解 1.1 torch.nn.DataParallel 1. 官方文档 https://pytorch.org/docs/1.8.0/generated/torch…
- Pytorch
- 2022-08-16
Pytorch – 模型微调时删除原有模型中的某一层的方法
本文以去除Pytorch预置的ResNet18网络中最后一层全连接分类层为例,说明模型微调时如何去除模型中某一层的方法。 我们想要在模型中去掉某一层实际上就等效于在该层不进行任何操作,直接将上一层的值直接返回即可,下面提供了3种方法进行选择。 1 使用自定义nn.Module替换指定层 在本方法中,…
- Pytorch
- 2022-08-08
Pytorch – 用Pytorch实现ResNet
1 引言 在深度学习中,通过简单的堆叠网络层增加网络深度的方式并不能增加网络的性能,另外,深度网络在训练时容易引起“梯度消失”的问题(即梯度反向传播到上层,重复的乘法可能会使梯度变得非常小)。 ResNet提出了残差学习来解决退化问题。对于一个堆积层结构(几层堆积而成)。对于一个堆积层结构(几层堆积…
- Pytorch
- 2022-08-06
Pytorch – masked_fill方法参数详解与使用
1 torch.Tensor.masked_fill参数详解与使用 1.1 torch.Tensor.masked_fill参数详解 1. 函数形式 torch.Tensor.masked_fill(mask, value) 2. 函数功能 输入的mask需要与当前的基础Tensor的形状一致。 将…
- Pytorch
- 2022-08-05
Pytorch – 手动调整学习率以及使用torch.optim.lr_scheduler调整学习率
1 Pytorch中学习率的调整方法 在Pytorch中调整训练过程中的学习率可以有两种方式: 一种是利用torch.optim.lr_scheduler提供的学习调整的方法 另一种是手动调整学习率,即调整优化器参数组中的lr参数 1.1 手动调整学习率 手动调整学习率的代码如下,我们在函数adju…
- Pytorch
- 2022-08-04
Pytorch – torch.optim优化器
深度学习的目标是通过不断改变网络参数,使得参数能够对输入做各种非线性变换拟合输出,本质上就是一个函数去寻找最优解,只不过这个最优解是一个矩阵,而如何快速求得这个最优解是深度学习研究的一个重点,以经典的resnet-50为例,它大约有2000万个系数需要进行计算,那么我们如何计算出这么多系数,有以下两…
- Pytorch
- 2022-08-03
Pytorch – torch.stack参数详解与使用
1 torch.stack参数详解与使用 1.1 torch.stack 1.函数形式 torch.stack(tensors, dim=0, *, out=None) → Tensor 2.函数功能 沿指定维度连接Tensor序列,所有的Tensor必须是同样大小 3.函数参数 tensors:T…
- Pytorch
- 2022-07-27