pytorch
npupengsir
新手程序员
展开
-
pytorch使用时的注意事项
pytorch注意事项原创 2023-02-14 15:31:49 · 79 阅读 · 0 评论 -
计算parameters和FLOPs
1. 安装 ptflopspip install ptflops2. 计算params和FLOPsfrom ptflops import get_model_complexity_infodef print_time_paramter_complexity(net, input_size): macs, params = get_model_complexity_info(net, input_size, as_strings=True, print_per_layer_stat=Tru原创 2022-03-26 11:35:41 · 1297 阅读 · 0 评论 -
Mask RCNN pytorch官方代码解读
1. 数据预处理1.1 transform将图片进行缩放。对应的box和mask也进行缩放。box缩放时直接将坐标乘以相应的倍数。图像缩放采用bilinear方式,而mask缩放时采用nearest方式。同时可能需要将image使用padding方式扩大,即:new_img = np.zeros((3, new_x, new_y))new_img[:, :x_max, :y_max] = old_img对应GenerilizedRCNN.py中的images, targets = self.t原创 2022-02-10 16:06:00 · 5184 阅读 · 1 评论 -
AttentionUNet
论文: Attention U-Net: Learning Where to Look for the Pancreas其中的attention部分简化后如下:class _GridAttentionBlockND(nn.Module): def __init__(self, in_channels, gating_channels, inter_channels=None, dimension=3, mode='concatenation', sub_samp原创 2021-10-11 04:03:14 · 508 阅读 · 1 评论 -
命令行下出现No module named
pycharm下能正常运行,命令行下No module named。此时需要将根目录加入到pythonpath中,两种方法:1. 环境变量中加入编辑.bashrc文件export PYTHONPATH=/home/to/path:$PYTHONPATH2. 代码中加入import syssys.path.append(/home/to/path)...原创 2021-10-08 22:32:36 · 843 阅读 · 0 评论 -
pytorch加载预训练模型
1. 查看所有modulemodel.modules()以深度优先遍历的方式,存储了net的所有模块,包括net itself,net's children, children of net's children。即model.children()只包括网络模块的第一代儿子模块,而model.modules()包含网络模块的自己本身和所有后代模块。model.modules()和model.named_modules()内部采用yield关键字,得到生成器。当外部迭代调用net.named_module原创 2021-09-29 16:00:12 · 1158 阅读 · 0 评论 -
将xy转xz和yz
def write_xz(src, dsc): img_itk = sitk.ReadImage(src) arr = sitk.GetArrayFromImage(img_itk) # (160, 384_1, 384_2) spacing = img_itk.GetSpacing() origin = img_itk.GetOrigin() direction = img_itk.GetDirection() tranposed_ar原创 2021-06-13 10:03:37 · 520 阅读 · 0 评论 -
在图像上画框
def draw_mask(img, x1, x2, y1, y2, thickness): max_value = np.iinfo(img.dtype).max img[max(0, x1-thickness//2): min(img.shape[0], x1+thickness//2), max(0, y1-thickness//2): min(img.shape[1], y2+thickness//2)] = max_value img[max(0, x2-thickness//原创 2021-06-13 07:25:51 · 223 阅读 · 0 评论 -
pytorch多gpu训练
1. 安装apexapex是nvidia开发的基于pytorch的多gpu训练加速包。下载:git clone https://github.com/NVIDIA/apexcd apex#安装时碰倒问题pip._internal.operations.install.legacy.LegacyInstallFailure,因此采用另一个branchgit checkout f3a960f80244cf9e80558ab30f7f7e8cbf03c0a0pip install -v --dis原创 2021-04-11 23:02:16 · 730 阅读 · 0 评论 -
pytorch模型保存和加载及模型内容
pytorch保存的pth模型其实就是一个dict类型的二进制文件。1. 保存模型def save_checkpoint(network, fname, amp_grad_scaler, optimizer, epoch, save_optimizer=True): state_dict = network.state_dict() # convert state dict to cpu for key in state_dict.keys(): state_原创 2021-04-06 11:58:36 · 739 阅读 · 0 评论 -
卷积和反卷积核计算公式
1. 卷积输出:out_size=in_size+2×padding−kernel_sizestride+1out\_size = \frac{in\_size+2\times padding - kernel\_size}{stride} + 1out_size=stridein_size+2×padding−kernel_size+1如果想让输入和输出大小一样,则stride必须为1,并且:padding=kernel_size−12padding = \frac{kernel\_siz原创 2021-03-05 01:42:21 · 12015 阅读 · 3 评论 -
pytorch中使用不对称padding
默认都是对称padding,但是有些时候遇到feature map大小是基数,想要单边添加0补成偶数,可使用如下方式:import torchimport torch.nn.functional as Fclass CustomPad(torch.nn.module): def __init__(self, padding): self.padding = padding def forward(self, x): return F.pad(x. self.padding,原创 2021-03-05 01:23:33 · 2249 阅读 · 2 评论 -
pytorch中sub_module无法转移到gpu问题
通常pytorch在使用net.to('cuda')时可以将net中的__init__函数中的sub_modules, parameters, buffers转到gpu上,但是常规的成员无法转移,例如:class Model(nn.Module): def __init__(self): self.sub_modules = [nn.Conv2d() for i in range(6)]此时即使调用net.to('cuda'), 成员函数sub_modules中的conv的参数仍然在cpu原创 2021-01-20 20:06:55 · 931 阅读 · 0 评论