加载中…
个人资料
BigSam78
BigSam78
  • 博客等级:
  • 博客积分:0
  • 博客访问:969,315
  • 关注人气:193
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
博文
标签:

python

paddle

作者: Sam(甄峰) sam_code@hotmail.com


大致解读一下PaddleDetection 训练代码如下:

tools/train.py中:

from ppdet.engine import Trainer

trainer = Trainer(cfg, mode='train')

# training

 trainer.train(FLAGS.eval)



在PaddleDetection\ppdet\engine\trainer.py中。

if self.mode == 'train':

            self.loader = create('{}Reader'.format(capital_mode))(

                self.dataset, cfg.worker_num)

此处创建了ppdet.data.reader.TrainReader. 这里在创建时,会把-c .\configs\xxxx.yaml中参数传进来。

 


在PaddleDetection\ppdet\data\reader.py中,定义

标签:

python

作者: Sam(甄峰) sam_code@hotmail.com


0.基础:

可变对象不可变对象

在前面讨论可变对象不可变对象时,有变量(Variables)和对象(Objects)两个概念。

对象(Objects)指内存中存储数据的实体。包括三个要素:  地址,类型,值。Python中所有实体都是对象。

变量(Variables)则是对象的引用或者说别名。实质上是对象的地址。 


例1: 对象有类型,变量无类型:

    val_test = 1234

    print('val_test:', val_test, 'type:', type(val_test), 'id:', id(val_test))

   

标签:

python

作者: Sam(甄峰) sam_code@hotmail.com


0. 概念:

在Python中,对象可以分为两种主要类型:可变对象不可变对象

可变对象:其值可以在创建后修改,包括List,dict和set.

不可变对象:其值在创建后不能被修改,包括int, float, string,bool,tuple.

这里大家就会很疑惑,平时在编程时,int,float等修改不是很常见么?这就涉及到Python对象的三个属性: 地址,类型,值

可变对象: 当使用 = 尝试修改其内容时,对象的值发生了改变,类型和地址并没有变化。即修改的val放到此对象的原来的内存地址了。

不可变对象:当尝试使用 = 修改其内容时,内存地址发生改变,

(2024-03-13 11:07)
标签:

conda

1. 换源:

1.1:显示当前所有channel:

conda config --show

可以显示conda所有config信息。


conda config --show channels

显示所有channels


1.2:换回默认源:

conda config --remove-key channels


1.3:添加源:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ 

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ 

conda config --set show_channel_urls yes

conda config --set always_yes false



(2024-03-11 15:15)
标签:

paddle

python

作者: Sam(甄峰) sam_code@hotmail.com

 

0. 简介:

PaddleDetection是一个基于PaddlePaddle的目标检测开发套件。提供了从数据准备、模型训练、模型评估、模型导出到模型部署的全流程工具。

 

PaddleDetection将检测模型解耦成不同的模块组件,通过自定义模块组件组合,用户可以便捷高效地完成检测模型的搭建. 例如:backbone,neck,loss等。

 

PaddleDetection提供了兼顾精度和速度的模型和工具箱。如:

PP-YOLOE高精度目标检测模型, PP-YOLOE-R 高性能旋转框检测模型, PP-YOLOE-SOD高精度小目标检测模型, PP-PicoDet超轻量级目标检测模型,PP-Tracking实时多目标跟踪模型, PP-TinyPose人体骨骼关键点识别, PP-Human行人分析工具,PP-Vehicle实时车辆分析工具。

 0.1 模型结构:

0.1.1:模型结构配置:

PaddleDetection中的诶一中模型对应一个目录。在configs目录中,可以看到不同的模型。包括:casead

cmake -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DANDROID_NATIVE_API_LEVEL=14 -DCMAKE_TOOLCHAIN_FILE=/opt/android-ndk-r16b/build/cmake/android.toolchain.cmake  $@ ../.. -DBUILD_SHARED_LIBS=ON   -DANDROID_NDK_REVISION=14  -DHAVE_opencv_world=ON -DBUILD_opencv_world=1  -DWITH_V4L=1  -DANDROID_ABI=armeabi-v7a -DANDROID_STL=c++_shared  -DANDROID_TOOLCHAIN_NAME=clang  -DANDROID_ARM_NEON=ON -DCMAKE_CXX_FLAGS_RELEASE=-g0 -DCMAKE_BUILD_TYPE=RELEASE -DBUILD_EXAMPLES=OFF -DBUILD_ANDROID_EXAMPLES=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_TESTS=OFF -DBUILD_DOCS=OFF

(2024-02-05 15:48)
标签:

paddle

python

分类: 算法

作者: Sam(甄峰) sam_code@hotmail.com


ppcls\arch\backbone\legendary_models中是各种backbone的定义点。


ppcls\data\preprocess\ops是对图像进行预处理的定义点。

Sam希望增加一个数据增强的方法:

ppcls\data\preprocess\ops\operators.py中:

class RandColorImage(object):

    ''' random color image

        brightness=0.5, contrast=0.5, saturation=0.5, hue=0.5

    '''

    def __init__(self, brightness=0.5, contrast=0.5, saturation=0.5, hue=0.5):

        self.brightness = brightness

        self.contrast = contrast

        self.saturation = saturation

    &

标签:

paddle

python

分类: 算法

作者: Sam(甄峰) sam_code@hotmail.com

 

0. 简介:

PaddleDetection是一个基于PaddlePaddle的目标检测开发套件。提供了从数据准备、模型训练、模型评估、模型导出到模型部署的全流程工具。

 

PaddleDetection将检测模型解耦成不同的模块组件,通过自定义模块组件组合,用户可以便捷高效地完成检测模型的搭建. 例如:backbone,neck,loss等。

 

PaddleDetection提供了兼顾精度和速度的模型和工具箱。如:

PP-YOLOE高精度目标检测模型, PP-YOLOE-R 高性能旋转框检测模型, PP-YOLOE-SOD高精度小目标检测模型, PP-PicoDet超轻量级目标检测模型,PP-Tracking实时多目标跟踪模型, PP-TinyPose人体骨骼关键点识别, PP-Human行人分析工具,PP-Vehicle实时车辆分析工具。


 0.1 模型结构:

PaddleDetection中的诶一中模型对应一个目录。在configs目录中,可以看到不同的模型。包括:caseade_rcnn, centernet, convnext...ppyolo, ppyoloe,picodet等。

以Picodet为例:

标签:

paddle

python

分类: 算法

作者: Sam(甄峰) sam_code@hotmail.com


PP-PicoDet是PaddleDetection中提出的全新轻量级系列模型。在移动端具有卓越性能。


PaddleDetection download后。可以直接训练之。

python tools/train.py -c configs/picodet/picodet_s_320_coco_lcnet.yml --eval


在yml中,指出网络结构:

'_base_/picodet_v2.yml'


在picodet_v2_yml中,定义了模型的backbone, neck,head.

PicoDet:

  backbone: LCNet

  neck: LCPAN

  head: PicoHeadV2

LCNet: ppdet\modeling\backbones\lcnet.py

PicoHeadV2在:ppdet\modeling\heads\pico_head.py

LCPAN在:ppdet\modeling\necks\lc_pan.py

 

 

 

(2024-01-09 00:11)
标签:

python

作者: Sam(甄峰) sam_code@hotmail.com


0. 命名空间(Namespace):

0.1:Namespace定义:

A namespace is a mapping from names to objects.Most namespaces are currently implemented as Python dictionaries。

一个Namespace就是一个名字和对象映射的区块或者说一张映射表。通过名字就可以找到对应的object. 提供了在项目中避免名字冲突的一种方法。各个NameSpace是独立的,不同Namespace的名字之间没有任何关联,所以一个Namespace内不能有重名,但不同的Namespace是可以有重名而没有任何影响的。


Python中常见的Namespace有:

A. 内置名称(built-in names). Python的内置名称。如函数名,异常名等。可以认为是Python内置函数映射表。

 

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有