深度学习框架
文章平均质量分 79
深度学习框架学习
libo-coder
DeepLearning / Computer Vision / OCR
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【PyTorch】Balanced_CE_loss 实现
balance binary cross entropy损失函数在分割任务中很有用,因为分割任务会遇到正负样本不均的问题,甚至在边缘的分割任务重,样本不均衡达到了很高的比例。故此,个人在基于分割任务中,自实现了该损失函数,亲测有效!原创 2022-11-24 15:28:17 · 1289 阅读 · 1 评论 -
『paddle』X2Paddle 学习笔记:模型转换与部署
目录一、简介二、特性三、能力四、安装4.1 环境依赖4.2 pip安装(推荐)4.3 源码安装五、快速开始5.1 功能一:推理模型转换5.2 功能二:PyTorch模型训练迁移六、使用教程一、简介X2Paddle 是飞桨生态下的模型转换工具,致力于帮助其它深度学习框架用户快速迁移至飞桨框架。目前支持 推理模型的框架转换 与 PyTorch训练代码迁移,提供了详细的不同框架间 API 对比文档,降低开发者上手飞桨核心的学习成本。二、特性支持主流深度学习框架目前已经支持 Caffe/Tensor原创 2021-07-26 10:32:58 · 3041 阅读 · 6 评论 -
『paddle』X2Paddle 学习笔记:支持的模型列表
目录TensorFlow预测模型Caffe预测模型ONNX预测模型PyTorch预测模型TensorFlow预测模型模型代码SqueezeNetcodeMobileNet_V1codeMobileNet_V2codeShuffleNetcodemNASNetcodeEfficientNetcodeInception_V3codeInception_V4codeInception_ResNet_V2codeVGG1原创 2021-07-23 11:35:44 · 1135 阅读 · 2 评论 -
『paddle』paddleseg 学习笔记:模型导出
模型导出一、获取预训练模型二、将模型导出为静态图模型三、结果文件本教程提供了一个将训练好的动态图模型转化为静态图模型并进行部署的例子一、获取预训练模型注意:下述例子为 Linux 或者 Mac 上执行的例子,windows 请自行在浏览器下载 参数 并存放到所创建的目录mkdir bisenet && cd bisenetwget https://paddleseg.bj.bcebos.com/dygraph/cityscapes/bisenet_cityscapes_1024x原创 2021-07-22 12:03:50 · 1861 阅读 · 1 评论 -
『paddle』paddleseg 学习笔记:自定义组件
添加组件一、创建自定义分割模型二、创建自定义损失函数三、创建自定义数据变换(数据增强)四、创建自定义骨干网络五、创建自定义数据集举例PaddleSeg 提供了五种类型的可扩展组件,即 MODELS、LOSSES、TRANSFORMS、BACKBONES、DATASETS。PaddleSeg使用基于面向对象的设计思想,在创造你自己的模型时,请以 Python class 的形式编写。一、创建自定义分割模型如果你打算设计一个自定义分割模型,例如在 newnet.py 中实现 NewNet 类(你可以为原创 2021-07-22 09:13:43 · 2116 阅读 · 4 评论 -
『paddle』paddleseg 学习笔记:模型评估
模型评估一、配置化驱动方式下评估和预测1.1 评估1.2 预测二、API方式下评估和预测2.1 评估2.2 预测一、配置化驱动方式下评估和预测1.1 评估训练完成后,用户可以使用评估脚本 val.py 来评估模型效果。假设训练过程中迭代次数(iters)为 1000,保存模型的间隔为 500,即每迭代 1000 次数据集保存 2 次训练模型。因此一共会产生 2 个定期保存的模型,加上保存的最佳模型 best_model,一共有 3 个模型,可以通过 model_path 指定期望评估的模型文件。p原创 2021-07-21 16:40:32 · 3033 阅读 · 3 评论 -
『paddle』paddleseg 学习笔记:模型部署
模型部署1. 说明2. 前置准备3. 预测1. 说明本方案旨在提供一个 PaddlePaddle 跨平台图像分割模型的 Python 预测部署方案作为参考,用户通过一定的配置,加上少量的代码,即可把模型集成到自己的服务中,完成图像分割的任务。2. 前置准备请使用 模型导出 您的模型, 或点击下载官方网站的 样例模型 用于测试。接着准备一张测试图片用于试验效果,我们提供了 cityscapes 验证集中的一张 图片 用于演示效果,如果您的模型是使用其他数据集训练的,请自行准备测试图片。3. 预测原创 2021-07-21 11:49:12 · 1556 阅读 · 2 评论 -
『paddle』paddleseg 学习笔记:模型压缩
模型压缩一、安装 PaddleSlim二、模型量化step 1. 模型训练step 2. 模型量化并再次训练模型裁剪step 1. 模型训练step 2. 裁剪并保存模型三、部署四、量化&剪枝加速比许多的神经网络模型需要巨大的计算开销和内存开销,严重阻碍了资源受限下的使用,通过模型压缩可以减少模型参数或者计算量,有效地降低计算和存储开销,便于部署再受限的硬件环境中。PaddleSeg 基于 PaddleSlim,集成了模型在线量化、模型裁剪等模型压缩能力。本文提供相关能力的使用教程。一、安装原创 2021-07-21 10:31:55 · 832 阅读 · 1 评论 -
『paddle』paddleseg 学习笔记:数据准备
数据准备1. 数据集结构2. 数据标签3. 数据格式说明3.1 标注协议3.2 灰度标注vs伪彩色标注3.3 灰度标注转换为伪彩色标注3.4 文件列表生成如果您需要使用自定义数据集进行训练,请按照以下步骤准备数据.1. 数据集结构 custom_dataset | |--images | |--image1.jpg | |--image2.jpg | |--... | |--l原创 2021-07-20 17:36:25 · 1403 阅读 · 4 评论 -
『paddle』paddleseg 学习笔记:损失函数
损失函数1. BCELoss2. BootstrappedCrossEntropyLoss3. CrossEntropyLoss4. RelaxBoundaryLoss5. DiceLoss6. EdgeAttentionLoss7. DualTaskLoss8. L1Loss9. MSELoss10. OhemCrossEntropyLoss11. OhemEdgeAttentionLoss12. LovaszSoftmaxLoss13. LovaszHingeLoss14. MixedLoss1.原创 2021-07-18 21:20:15 · 3370 阅读 · 3 评论 -
『paddle』paddleseg 学习笔记:API 应用案例
API应用案例模型训练1. 构建模型2. 构建训练集3. 构建验证集4. 构建优化器5. 构建损失函数6.训练模型评估1. 构建模型2. 加载模型参数3. 构建验证集4. 评估5. 多尺度+翻转评估效果可视化1. 构建模型2. 创建transform3. 构建待预测的图像列表4. 预测通过本篇文章,你将快速学会 PaddleSeg 的 API 调用,轻松进行语义分割模型的训练、评估和预测。我将以 BiSeNetV2 和 视盘分割数据集 为例一步一步的教导你(也是自己工作的记录)如何调用 API 进行模型原创 2021-07-18 21:19:42 · 1064 阅读 · 5 评论 -
『paddle』paddleseg 学习笔记:模型训练
模型训练模型训练训练参数解释训练可视化模型训练我们可以通过 PaddleSeg 提供的脚本对模型进行训练,请确保完成了 PaddleSeg 的安装工作,并且位于 PaddleSeg 目录下,执行以下脚本:export CUDA_VISIBLE_DEVICES=0 # 设置 1 张可用的卡# set CUDA_VISIBLE_DEVICES=0 # windows下请执行此命令python train.py \ --config configs/quick_start/bisene原创 2021-07-17 09:05:57 · 2950 阅读 · 9 评论 -
『paddle』paddleseg 学习笔记:人像分割 HumanSeg
人像分割 HumanSeg一、人像分割模型1.1 计算复杂度和参数量二、安装2.1 安装PaddlePaddle2.2 安装 PaddleSeg 包2.3 下载 PaddleSeg 仓库三、快速体验3.1 下载 Inference Model3.2 下载测试数据3.3 视频流人像分割3.4 视频流背景替换四、训练评估预测4.1 下载预训练模型4.2 训练4.3 评估4.4 预测五、模型导出5.1 将模型导出为静态图模型5.2 导出脚本参数解释5.3 结果文件六、Web端部署七、移动端部署本教程基于 Pa原创 2021-07-16 23:45:05 · 5907 阅读 · 7 评论 -
『paddle』paddleseg 学习笔记:Lovasz loss
Lovasz loss一、Lovasz loss使用指南二、Lovasz softmax loss 实验对比2.1 数据准备2.1.1 **关于CityScapes数据集**2.1.2 **关于 Pascal VOC 2012 数据集**2.1.3 关于 ADE20K 数据集2.1.4 关于 Coco Stuff 数据集2.1.4 关于自定义数据集2.2 Lovasz loss训练三、Lovasz hinge loss实验对比在图像分割任务中,经常出现类别分布不均匀的情况,例如:工业产品的瑕原创 2021-07-16 14:48:37 · 6901 阅读 · 15 评论 -
『paddle』paddleseg 学习笔记:代码结构
目录在尝试完成使用配置文件进行训练之后,肯定有小伙伴想基于 PaddleSeg 进行更深入的开发,在这里大概介绍一下 PaddleSeg 代码结构。PaddleSeg ├── configs # 配置文件文件夹 ├── paddleseg # 训练部署的核心代码 ├── core ├── infer.py └── predict.py └── train.py └──原创 2021-07-15 16:35:25 · 655 阅读 · 1 评论 -
『paddle』paddleseg 学习笔记:参数说明
目录1. 重点参数说明1.1 学习率设置1.2 yaml 文件参数设置1. 重点参数说明1.1 学习率设置在 PaddleSeg 的配置文件给出的学习率中,除了 "bisenet_optic_disc_512x512_1k.yml" 中为单卡学习率外,其余配置文件中均为 4 卡的学习率,如果采用的是单卡训练,则学习率设置应变成原来的 1/4。1.2 yaml 文件参数设置batch_size: 4 # 设定 batch_size 的值即为迭代一次送入网络的图片数量,一般显卡显存越大,batch原创 2021-07-14 16:06:55 · 2193 阅读 · 4 评论 -
『paddle』paddleclas 学习笔记:模型保存
模型保存一、state_dict 格式与 inference_model 格式二、四个接口的关系三、使用 predict.py 脚本进行推理一、state_dict 格式与 inference_model 格式使用 paddle.save 存储的是 state_dict 格式的模型,共保存 “path.pdparams”、“path.pdopt” 两个文件。path.pdparams 中存储的是模型的持久参数变量。path.pdopt 中存储的是优化器中的信息,因此存储为 state_dict原创 2021-07-09 10:27:51 · 4300 阅读 · 1 评论 -
『paddle』paddleclas 学习笔记:分类预训练模型选择
目录ImageNet预训练模型库模型库概览图SSLD知识蒸馏预训练模型ResNet 及其 Vd 系列移动端系列SEResNeXt与Res2Net系列DPN 与 DenseNet 系列HRNet系列Inception系列EfficientNet与ResNeXt101_wsl系列ResNeSt 与 RegNet 系列ViT_and_DeiT 系列RepVGG系列MixNet系列ReXNet系列SwinTransformer系列LeViT系列Twins系列HarDNet系列DLA系列RedNet系列TNT系列其他原创 2021-07-09 09:13:30 · 2476 阅读 · 2 评论 -
『paddle』paddleclas 学习笔记:模型推理
基于Python预测引擎推理一、训练模型转 inference 模型1.1 特征提取模型转 inference 模型1.2 分类模型转 inference 模型二、主体检测模型推理三、特征提取模型推理四、主体检测、特征提取和向量检索串联五、图像分类模型推理inference 模型(paddle.jit.save保存的模型)一般是模型训练,把模型结构和模型参数保存在文件中的固化模型,多用于预测部署场景。训练过程中保存的模型是 checkpoints 模型,保存的只有模型的参数,多用于恢复训练等。与原创 2021-07-08 10:15:24 · 3872 阅读 · 2 评论 -
『paddle』paddleclas 学习笔记:模型训练
模型训练一、预训练模型下载二、训练模型2.1 使用 CPU 进行模型训练2.1.1 不使用预训练模型2.1.2 使用预训练模型2.2 使用 GPU 进行模型训练2.2.1 不使用预训练模型2.2.2 使用预训练模型进行训练三、模型预测一、预训练模型下载使用在某个较大的数据集训练好的预训练模型,即被预置了参数的权重,可以帮助模型在新的数据集上更快收敛。尤其是对一些训练数据比较稀缺的任务,在神经网络参数十分庞大的情况下,仅仅依靠任务自身的训练数据可能无法训练充分,加载预训练模型的方法可以认为是原创 2021-07-07 16:32:03 · 4882 阅读 · 4 评论 -
『paddle』paddleclas 学习笔记:图像分类简单实现
目录一、数据和模型准备1.1 数据准备1.1.1 准备CIFAR100二、模型训练2.1 单标签训练2.1.1 零基础训练:不加载预训练模型的训练2.1.2 迁移学习三、数据增广3.1 数据增广的尝试 — Mixup四、知识蒸馏五、模型评估与推理5.1 单标签分类模型评估与推理5.1.1 单标签分类模型评估。5.1.2 单标签分类模型预测5.1.3 单标签分类使用 inference 模型进行模型推理一、数据和模型准备1.1 数据准备进入 PaddleClas 目录。cd path_to_Padd原创 2021-07-07 09:22:48 · 1820 阅读 · 2 评论 -
『paddle』paddleclas 学习笔记:图像识别
图像识别快速开始1. 图像识别体验1.1 下载、解压 inference 模型与 demo 数据1.2 商品识别与检索1.2.1 识别单张图像2.2.2 基于文件夹的批量识别2. 未知类别的图像识别体验2.1 准备新的数据与标签2.2 建立新的索引库2.3 基于新的索引库的图像识别1. 图像识别体验检测模型与4个方向 (Logo、动漫人物、车辆、商品) 的识别 inference 模型、测试数据下载地址以及对应的配置文件地址如下。模型简介推荐场景inference模型预测配置文件构建原创 2021-07-06 10:23:17 · 2308 阅读 · 1 评论 -
『paddle』paddleclas 学习笔记:配置文件
配置说明简介配置详解基础配置结构(ARCHITECTURE)分类模型结构配置识别模型结构配置学习率(LEARNING_RATE)优化器(OPTIMIZER)数据读取器与数据处理数据处理mix处理简介介绍了 PaddleClas 配置文件 (configs/*.yaml) 中各参数的含义,以便更快地自定义或修改超参数配置。注意:部分参数并未在配置文件中体现,在训练或者评估时,可以直接使用 -o 进行参数的扩充或者更新,比如说 -o checkpoints=./ckp_path/ppcls,表示在配置原创 2021-07-05 17:34:52 · 3369 阅读 · 1 评论 -
『PyTorch』学习笔记 2 —— 模型 Finetune
目录前言1. 为什么要 Model Finetune?2. 模型微调的步骤3. 模型微调训练方法4. 示例(finetune_resnet18)4.1 不使用trick:所有的参数使用同一个学习率4.2 使用trick1:冻结卷积层的学习率4.3 使用trick2:不同参数不同学习率参考文献前言我们知道一个良好的权重初始化,可以使收敛速度加快,甚至可以获得更好的精度。而在实际应用中,我们通常采用一个已经训练好模型的权重参数作为我们模型的初始化参数,也称为 Finetune,更宽泛的称之为迁移学习。迁移原创 2021-06-30 23:16:45 · 1005 阅读 · 4 评论 -
『PyTorch』学习笔记 1 —— transforms
文章目录一、Compose方式二、Scriptable transforms方式三、常用图像转换类功能列表简要介绍:Pytorch 中的图像预处理都跟 transforms 这个工具包有关系,它是一个常用的图像变换工具包。一、Compose方式Compose方式,支持链式处理,可以集合多个 transforms 的方法或者类。Compose方式的例子如下:transforms.Compose([ transforms.CenterCrop(10), // 剪切为10x10大小.原创 2021-05-11 22:37:49 · 942 阅读 · 4 评论 -
『PyTorch报错』pytorch 报错整理
pytorch 报错整理一、ValueError一、ValueError1、ValueError: Expected more than 1 value per channel when training, got input size torch.Size([1,512,1,1])错误原因:模型中用了 batchnomolization,训练中用 batch 训练的时候当前 batch 恰好只含一个 sample,而由于 BatchNorm 操作需要多于一个数据计算平均值,因此造成该错误。原创 2021-04-06 17:29:32 · 419 阅读 · 1 评论 -
『PyTorch』PyTorch深度学习模型训练加速指南
文章目录1. 考虑使用另外一种学习率策略2. 在 DataLoader 中使用多个 workers 和 pinned memory3. 最大化 batch size4. 使用自动混合精度5. 开启 cudnn benchmarking6. 注意 CPU 和 GPU 之间频繁的数据传输7. 使用 gradient/activation 检查点8. 使用梯度累加9. 对于多个GPU使用分布式数据并行10. 将梯度设为 None 而不是 011. 使用.as_tensor() 而不是 .tensor()12. 使原创 2021-03-24 10:44:57 · 823 阅读 · 1 评论 -
『Keras』Keras 采用 finetune 时冻结部分网络层
一、使用背景在使用 keras 进行 finetune 有时需要冻结一些网络层加速训练keras中提供冻结单个层的方法:layer.trainable = False二、冻结 model 所有网络层base_model = DenseNet121(include_top=False, weights="imagenet", input_shape=(224, 224, 3))for layer in base_model.layers: layer.trainable = False三原创 2020-12-09 09:35:45 · 703 阅读 · 5 评论 -
『pytorch』Pytorch - 图像变换函数集合
文章目录一、必要的 python 模块二、PyTorch 图像变换函数2.1 判断图像数据类型2.2 to_tensor(pic)2.3 to_pil_image(pic, mode=None)2.4 normalize(tensor, mean, std)2.5 resize(img, size, interpolation=Image.BILINEAR)2.6 pad(img, padding, fill=0, padding_mode='constant')参考链接一、必要的 python 模块原创 2021-01-30 23:31:40 · 2203 阅读 · 0 评论 -
『pytorch』Pytorch中的Distributed Data Parallel与混合精度训练(Apex)
文章目录前言一、动机二、Why Distributed Data Parallel?三、大图景(The big picture)四、最小例程与解释五、加上 MultiProcessing六、使用Apex进行混合混合精度训练参考链接前言Data Parallel 并行运算时,各种原因导致单进程多卡的时候只有一张卡在进行运算在使用 Distributed Data Parallel 时,注意 需要在每一个进程设置相同的随机种子,以便所有模型权重都初始化为相同的值。一、动机加速神经网络训练原创 2021-01-15 16:36:12 · 472 阅读 · 0 评论 -
『pytorch』PyTorch 基础
Tensor的组合与分块1. 组合组合操作是指将不同的 Tensor 叠加起来,主要有 torch.cat() 和 torch.stack() 两个函数。torch.cat():即 concatenate,是指沿着已有的数据的某一维度进行拼接,操作后数据的总维数不变,在进行拼接时,除了拼接的维度之外,其他维度必须相同。torch.stack():指新增维度,并按照指定的维度进行叠加。2. 分块分块是与组合相反的操作,指将 Tensor 分割成不同的子 Tensor,主要有 torch.chu原创 2020-12-14 19:30:58 · 146 阅读 · 1 评论
分享