Pytorch – 在Pytroch中实现图片HWC与CHW相互转换、RGB与BGR相互转换
在Pytorch中对图片数据的tensor进行HWC和CHW转换、RGB和BGR的转换是常常使用到的数据预处理操作。 1 HWC与CHW互转 HWC转CHW 假设输入图片tensor格式为BHWC,比如1x224x224x3,在Pytorch转成BCHW其实也就是简单的维度变换 x = x.perm…
- Pytorch
- 2023-06-07
Pytorch – 模型断点续训,optimizer.step()报错:RuntimeError Expected all tensors to be on the same device, but found cuda:0
1 模型断点续训,optimizer.step()报错:RuntimeError Expected all tensors to be on the same device, but found cuda:0 Pytroch在实现断点续训功能时,在保存模型文件时,需要同时保存model、optimi…
- Pytorch
- 2023-05-08
Pytorch – Pytoch结合Tensorboard实现数据可视化
1 Tensorboard 1.1 安装和卸载 使用以下命令安装 pip install tensorboard 卸载命令 pip uninstall tensorboard 1.2 Tensorboard的工作逻辑 Tensorboard的工作逻辑其实很简单,首先将你所关心的数据保存到你所指定的文…
- Pytorch
- 2023-04-18
Pytorch – 修改Pytoch中torchvision.models预置模型的方法
转载自https://chenglu.me/blogs/pytorch-model-modification-part1,少量修改,如侵权,请联系我进行删除。 在深度学习网络构建时,我们可能需要对Pytorch中的torchvision.models中的模型进行一些修改,比如说,将torchvisi…
- Pytorch
- 2023-03-28
Pytorch – 使用pytorch自带的Resnet作为网络的backbone
在使用Pytorch搭建自己的神经网络框架时,经常需要使用Pytorch中内置的torchvision.models中的模型作为特征提取的Backbone,然后再在这个基础上进行更加复杂的网络搭建。 在这里以使用Pytorch中内置的Resnet18为例,如何作为Backbone层进行使用,看以下示…
- Pytorch
- 2023-01-06
Pytorch – torch.topk参数详解与使用
1 torch.topk 形式 torch.topk(input, k, dim=None, largest=True, sorted=True, *, out=None) 或者 Tensor.topk(k, dim=None, largest=True, sorted=True) 功能 返回输入张…
- Pytorch
- 2022-12-15
Pytorch – 梯度累积/梯度累加trick,在显存有限的情况下使用更大batch_size训练模型
1 batch size对模型训练的影响 小的batch size引入的数据集的数据量较小,随机性越大,在部分情况下模型难以收敛,影响模型训练效率。 而在合理的范围内,越大的batch size本质上是对训练数据更优的一种选择,能够是梯度下降的方向更加准确,震荡越小,有利于收敛的稳定性。 但是如果b…
- Pytorch
- 2022-12-09
Pytorch – reshape和view的用法和区别
1 torch.reshape 形式 torch.reshape(input, shape) 功能 返回一个与输入张量数据和元素数相同的,但是形状为shape的张量。 参数 input:需要被重新定义形状的输入张量 shape:新的形状 使用示例 import torch if __name__ =…
- Pytorch
- 2022-12-09
Pytorch – torch.cat函数
1 torch.cat函数 形式 torch.cat(tensors, dim=0, *, out=None) 功能 在指定的维度连接给定序列的张量,所有张量必须具有相同的形状(连接维度除外)或者为空。 参数 tensors:相同形状的张量序列,非空张量必须具有相同形状(连接维度除外) dim:张量…
- Pytorch
- 2022-12-08
Pytorch – torch.unsqueeze和torch.squeeze函数
Pytorch中,unsqueeze和squeeze为两个对应的反操作函数,其中,unsqueeze主要用于为输入张量升维,squeeze主要用于给张量降维,两者的具体用法可以参考下文。 1 unsqueeze 形式 torch.unsqueeze(input, dim) 或者 Tensor.uns…
- Pytorch
- 2022-12-08
Pytorch – 创建随机Tensor的常用方法
本文对Pytorch中创建随机数Tensor的一些常用方法进行总结,主要包括 randn randn_like rand rand_like randint randint_like 1 torch.randn 形式 torch.randn(*size, *, out=None, dtype=Non…
- Pytorch
- 2022-12-08
Pytorch – torch.nn.Conv2d参数详解与使用
1 torch.nn.Conv2d torch.nn.Conv2d主要对输入Tensor应用2D卷积。 比如输入(N,C_{in},H,W)维度的Tensor,则输出(N,C_{out},H,W)的Tensor,这两者的关系可以描述为 \operatorname{out}\left(N_{i}, C…
- Pytorch
- 2022-12-07