网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
1.下载数据集
!wget -P data/ https://bj.bcebos.com/paddlex/examples2/robot_grab/dataset_manipulator_grab.zip #下载数据集
2.解压数据集
!cd ‘data’ && unzip -q dataset_manipulator_grab.zip #在data文件夹中解压数据集
3.将数据集转换为MSCOCO格式
!paddlex --data_conversion --source labelme --to MSCOCO --pics data/dataset_manipulator_grab/JPEGImages --annotations data/dataset_manipulator_grab/Annotations --save_dir dataset
4.使用paddlex进行数据切分
将训练集、验证集和测试集按照7:2:1的比例划分
!paddlex --split_dataset --format COCO --dataset_dir dataset --val_value 0.2 --test_value 0.1
数据文件夹切分前后的状态如下:
dataset/ dataset/
├── JPEGImages/ --> ├── JPEGImages/
├── annotations.json ├── annotations.json
├── test.json
├── train.json
├── val.json
================================================================
1.启动Notebook并打开
2.重新执行三条安装命令
1.调用paddlex
import paddlex as pdxfrom paddlex import transforms as T
2.定义训练和验证时的transforms
API说明:https://github.com/PaddlePaddle/PaddleX/blob/release/2.0-rc/paddlex/cv/transforms/operators.py
train_transforms = T.Compose([ T.RandomResizeByShort( short_sizes=[640, 672, 704, 736, 768, 800], max_size=1333, interp=‘CUBIC’), T.RandomHorizontalFlip(), T.Normalize( mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])])
eval_transforms = T.Compose([ T.ResizeByShort( short_size=800, max_size=1333, interp=‘CUBIC’), T.Normalize( mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])])
3.定义训练和验证所用的数据集
API:https://github.com/PaddlePaddle/PaddleX/blob/develop/paddlex/cv/datasets/coco.py#L26
train_dataset = pdx.datasets.CocoDetection( data_dir=‘dataset/JPEGImages’, ann_file=‘dataset/train.json’, transforms=train_transforms, shuffle=True)eval_dataset = pdx.datasets.CocoDetection( data_dir=‘dataset/JPEGImages’, ann_file=‘dataset/val.json’, transforms=eval_transforms)
4.初始化模型
可使用VisualDL查看训练指标,参考https://github.com/PaddlePaddle/PaddleX/tree/release/2.0-rc/tutorials/train#visualdl可视化训练指标
num_classes = len(train_dataset.labels)model = pdx.det.MaskRCNN( num_classes=num_classes, backbone=‘ResNet50’, with_fpn=True)
5.训练参数配置,并开始训练
API说明:https://github.com/PaddlePaddle/PaddleX/blob/release/2.0-rc/paddlex/cv/models/detector.py#L155
各参数介绍与调整说明:https://paddlex.readthedocs.io/zh_CN/develop/appendix/parameters.html
model.train( num_epochs=10, train_dataset=train_dataset, train_batch_size=1, eval_dataset=eval_dataset, learning_rate=0.00125, lr_decay_epochs=[8, 11], warmup_steps=10, warmup_start_lr=0.0, save_dir=‘output/mask_rcnn_r50_fpn’, use_vdl=True)
================================================================
=====================================================================
1.启动Notebook并打开
2.重新执行三条安装命令
=====================================================================
import glob
import numpy as np
import threading
import time
import random
import os
import base64
import cv2
import json
import paddlex as pdx
image_name = ‘dataset/JPEGImages/Image_20210615204210757.bmp’
(1)Python所有方向的学习路线(新版)
这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
最近我才对这些路线做了一下新的更新,知识体系更全面了。
(2)Python学习视频
包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。
(3)100多个练手项目
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!