当前位置: 首页 > news >正文

创业做社交网站怎么开发自己的小程序

创业做社交网站,怎么开发自己的小程序,广东专业商城网站建设,备案做电影网站系统版本:Windows 11 依赖环境:Anaconda3 运行软件:PyCharm 一.环境配置 通过Anaconda Prompt(anaconda)打开终端创建一个虚拟环境 conda create --name mmseg python3.93.激活虚拟环境 conda activate mmseg 4.安装pytorch和cuda tor…

系统版本:Windows 11

依赖环境:Anaconda3

运行软件:PyCharm

一.环境配置

  1. 通过Anaconda Prompt(anaconda)打开终端
  2. 创建一个虚拟环境
conda create --name mmseg python=3.9

3.激活虚拟环境

conda activate mmseg

4.安装pytorch和cuda

torch版本要求是1.12或者1.13,这里选择安装1.12,安装命令从pytorch官网找,地址

pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu116

5.安装mmcv 

安装命令生成地址:地址

pip install mmcv==2.0.0rc4 -f https://download.openmmlab.com/mmcv/dist/cu116/torch1.12/index.html

6.下载源码

这里可以去github上下载1.1.1版本代码,也可以下载我准备好的代码:地址

7.用pycharm打开mmsegmentation-1.1.1

选择好配置的环境之后,打开终端,运行如下命令:

pip install -v -e .

至此环境配置完成。

二.准备自己的数据集

数据集的准备请查看:数据集制作教程

上面提供的源码中包含可训练的数据集,可以直接下载!

三.开始训练

在pycharm中打开上面下载的源码。

1.在mmseg/datasets文件夹下新建mysegDataset.py

from mmseg.registry import DATASETS
from .basesegdataset import BaseSegDataset@DATASETS.register_module()
class mysegDataset(BaseSegDataset):# 类别和对应的 RGB配色METAINFO = {'classes':['background', 'red', 'green', 'white', 'seed-black', 'seed-white'],'palette':[[127,127,127], [200,0,0], [0,200,0], [144,238,144], [30,30,30], [251,189,8]]}# 指定图像扩展名、标注扩展名def __init__(self,seg_map_suffix='.png',   # 标注mask图像的格式reduce_zero_label=False, # 类别ID为0的类别是否需要除去**kwargs) -> None:super().__init__(seg_map_suffix=seg_map_suffix,reduce_zero_label=reduce_zero_label,**kwargs)

2.注册数据集

在`mmseg/datasets/__init__.py`中注册刚刚定义的`mysegDataset`数据集类,如下图所示,在最后添加即可

3.pipeline配置文件

在configs/_base_/datasets文件夹下新建mysegDataset_pipeline.py,并添加如下代码。

# 数据集路径
dataset_type = 'mysegDataset' # 数据集类名
data_root = 'Watermelon87_Semantic_Seg_Mask/' # 数据集路径(相对于mmsegmentation主目录)# 输入模型的图像裁剪尺寸,一般是 128 的倍数,越小显存开销越少
crop_size = (512, 512)# 训练预处理
train_pipeline = [dict(type='LoadImageFromFile'),dict(type='LoadAnnotations'),dict(type='RandomResize',scale=(2048, 1024),ratio_range=(0.5, 2.0),keep_ratio=True),dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),dict(type='RandomFlip', prob=0.5),dict(type='PhotoMetricDistortion'),dict(type='PackSegInputs')
]# 测试预处理
test_pipeline = [dict(type='LoadImageFromFile'),dict(type='Resize', scale=(2048, 1024), keep_ratio=True),dict(type='LoadAnnotations'),dict(type='PackSegInputs')
]# TTA后处理
img_ratios = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75]
tta_pipeline = [dict(type='LoadImageFromFile', file_client_args=dict(backend='disk')),dict(type='TestTimeAug',transforms=[[dict(type='Resize', scale_factor=r, keep_ratio=True)for r in img_ratios],[dict(type='RandomFlip', prob=0., direction='horizontal'),dict(type='RandomFlip', prob=1., direction='horizontal')], [dict(type='LoadAnnotations')], [dict(type='PackSegInputs')]])
]# 训练 Dataloader
train_dataloader = dict(batch_size=2,num_workers=0,persistent_workers=True,sampler=dict(type='InfiniteSampler', shuffle=True),dataset=dict(type=dataset_type,data_root=data_root,data_prefix=dict(img_path='img_dir/train', seg_map_path='ann_dir/train'),pipeline=train_pipeline))# 验证 Dataloader
val_dataloader = dict(batch_size=1,num_workers=0,persistent_workers=True,sampler=dict(type='DefaultSampler', shuffle=False),dataset=dict(type=dataset_type,data_root=data_root,data_prefix=dict(img_path='img_dir/val', seg_map_path='ann_dir/val'),pipeline=test_pipeline))# 测试 Dataloader
test_dataloader = val_dataloader# 验证 Evaluator
val_evaluator = dict(type='IoUMetric', iou_metrics=['mIoU', 'mDice', 'mFscore'])# 测试 Evaluator
test_evaluator = val_evaluator

4.配置生成

在主目录下新建configset.py,并添加如下代码。

改代码中主要用于配置训练参数,右键运行生成配置文件。

from mmengine import Config
cfg = Config.fromfile('./configs/unet/unet-s5-d16_fcn_4xb4-160k_cityscapes-512x1024.py') ##选择训练模型
dataset_cfg = Config.fromfile('./configs/_base_/datasets/mysegDataset_pipeline.py')   ## 选择pipeline
cfg.merge_from_dict(dataset_cfg)# 类别个数
NUM_CLASS = 6cfg.crop_size = (256, 256)
cfg.model.data_preprocessor.size = cfg.crop_size
cfg.model.data_preprocessor.test_cfg = dict(size_divisor=128)# 单卡训练时,需要把 SyncBN 改成 BN
cfg.norm_cfg = dict(type='BN', requires_grad=True) # 只使用GPU时,BN取代SyncBN
cfg.model.backbone.norm_cfg = cfg.norm_cfg
cfg.model.decode_head.norm_cfg = cfg.norm_cfg
cfg.model.auxiliary_head.norm_cfg = cfg.norm_cfg# 模型 decode/auxiliary 输出头,指定为类别个数
cfg.model.decode_head.num_classes = NUM_CLASS
cfg.model.auxiliary_head.num_classes = NUM_CLASS# 训练 Batch Size
cfg.train_dataloader.batch_size = 2# 结果保存目录
cfg.work_dir = './work_dirs/mysegDataset-UNet'# 模型保存与日志记录
cfg.train_cfg.max_iters = 10000 # 训练迭代次数
cfg.train_cfg.val_interval = 500 # 评估模型间隔
cfg.default_hooks.logger.interval = 100 # 日志记录间隔
cfg.default_hooks.checkpoint.interval = 2500 # 模型权重保存间隔
cfg.default_hooks.checkpoint.max_keep_ckpts = 1 # 最多保留几个模型权重
cfg.default_hooks.checkpoint.save_best = 'mIoU' # 保留指标最高的模型权重# 随机数种子
cfg['randomness'] = dict(seed=0)cfg.dump('myconfigs/mysegDataset_UNet.py')

5.修改num_workers=0

使用Windows系统训练,将上一步生成的配置文件中所有的num_workers修改成0。

crop_size = (256,256,
)
data_preprocessor = dict(bgr_to_rgb=True,mean=[123.675,116.28,103.53,],pad_val=0,seg_pad_val=255,size=(512,1024,),std=[58.395,57.12,57.375,],type='SegDataPreProcessor')
data_root = 'Watermelon87_Semantic_Seg_Mask/'
dataset_type = 'mysegDataset'
default_hooks = dict(checkpoint=dict(by_epoch=False,interval=2500,max_keep_ckpts=1,save_best='mIoU',type='CheckpointHook'),logger=dict(interval=100, log_metric_by_epoch=False, type='LoggerHook'),param_scheduler=dict(type='ParamSchedulerHook'),sampler_seed=dict(type='DistSamplerSeedHook'),timer=dict(type='IterTimerHook'),visualization=dict(type='SegVisualizationHook'))
default_scope = 'mmseg'
env_cfg = dict(cudnn_benchmark=True,dist_cfg=dict(backend='nccl'),mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0))
img_ratios = [0.5,0.75,1.0,1.25,1.5,1.75,
]
load_from = None
log_level = 'INFO'
log_processor = dict(by_epoch=False)
model = dict(auxiliary_head=dict(align_corners=False,channels=64,concat_input=False,dropout_ratio=0.1,in_channels=128,in_index=3,loss_decode=dict(loss_weight=0.4, type='CrossEntropyLoss', use_sigmoid=False),norm_cfg=dict(requires_grad=True, type='BN'),num_classes=6,num_convs=1,type='FCNHead'),backbone=dict(act_cfg=dict(type='ReLU'),base_channels=64,conv_cfg=None,dec_dilations=(1,1,1,1,),dec_num_convs=(2,2,2,2,),downsamples=(True,True,True,True,),enc_dilations=(1,1,1,1,1,),enc_num_convs=(2,2,2,2,2,),in_channels=3,norm_cfg=dict(requires_grad=True, type='BN'),norm_eval=False,num_stages=5,strides=(1,1,1,1,1,),type='UNet',upsample_cfg=dict(type='InterpConv'),with_cp=False),data_preprocessor=dict(bgr_to_rgb=True,mean=[123.675,116.28,103.53,],pad_val=0,seg_pad_val=255,size=(256,256,),std=[58.395,57.12,57.375,],test_cfg=dict(size_divisor=128),type='SegDataPreProcessor'),decode_head=dict(align_corners=False,channels=64,concat_input=False,dropout_ratio=0.1,in_channels=64,in_index=4,loss_decode=dict(loss_weight=1.0, type='CrossEntropyLoss', use_sigmoid=False),norm_cfg=dict(requires_grad=True, type='BN'),num_classes=6,num_convs=1,type='FCNHead'),pretrained=None,test_cfg=dict(crop_size=256, mode='whole', stride=170),train_cfg=dict(),type='EncoderDecoder')
norm_cfg = dict(requires_grad=True, type='BN')
optim_wrapper = dict(clip_grad=None,optimizer=dict(lr=0.01, momentum=0.9, type='SGD', weight_decay=0.0005),type='OptimWrapper')
optimizer = dict(lr=0.01, momentum=0.9, type='SGD', weight_decay=0.0005)
param_scheduler = [dict(begin=0,by_epoch=False,end=160000,eta_min=0.0001,power=0.9,type='PolyLR'),
]
randomness = dict(seed=0)
resume = False
test_cfg = dict(type='TestLoop')
test_dataloader = dict(batch_size=1,dataset=dict(data_prefix=dict(img_path='img_dir/val', seg_map_path='ann_dir/val'),data_root='Watermelon87_Semantic_Seg_Mask/',pipeline=[dict(type='LoadImageFromFile'),dict(keep_ratio=True, scale=(2048,1024,), type='Resize'),dict(type='LoadAnnotations'),dict(type='PackSegInputs'),],type='mysegDataset'),num_workers=0,persistent_workers=False,sampler=dict(shuffle=False, type='DefaultSampler'))
test_evaluator = dict(iou_metrics=['mIoU','mDice','mFscore',], type='IoUMetric')
test_pipeline = [dict(type='LoadImageFromFile'),dict(keep_ratio=True, scale=(2048,1024,), type='Resize'),dict(type='LoadAnnotations'),dict(type='PackSegInputs'),
]
train_cfg = dict(max_iters=10000, type='IterBasedTrainLoop', val_interval=500)
train_dataloader = dict(batch_size=2,dataset=dict(data_prefix=dict(img_path='img_dir/train', seg_map_path='ann_dir/train'),data_root='Watermelon87_Semantic_Seg_Mask/',pipeline=[dict(type='LoadImageFromFile'),dict(type='LoadAnnotations'),dict(keep_ratio=True,ratio_range=(0.5,2.0,),scale=(2048,1024,),type='RandomResize'),dict(cat_max_ratio=0.75, crop_size=(512,512,), type='RandomCrop'),dict(prob=0.5, type='RandomFlip'),dict(type='PhotoMetricDistortion'),dict(type='PackSegInputs'),],type='mysegDataset'),num_workers=0,persistent_workers=False,sampler=dict(shuffle=True, type='InfiniteSampler'))
train_pipeline = [dict(type='LoadImageFromFile'),dict(type='LoadAnnotations'),dict(keep_ratio=True,ratio_range=(0.5,2.0,),scale=(2048,1024,),type='RandomResize'),dict(cat_max_ratio=0.75, crop_size=(512,512,), type='RandomCrop'),dict(prob=0.5, type='RandomFlip'),dict(type='PhotoMetricDistortion'),dict(type='PackSegInputs'),
]
tta_model = dict(type='SegTTAModel')
tta_pipeline = [dict(file_client_args=dict(backend='disk'), type='LoadImageFromFile'),dict(transforms=[[dict(keep_ratio=True, scale_factor=0.5, type='Resize'),dict(keep_ratio=True, scale_factor=0.75, type='Resize'),dict(keep_ratio=True, scale_factor=1.0, type='Resize'),dict(keep_ratio=True, scale_factor=1.25, type='Resize'),dict(keep_ratio=True, scale_factor=1.5, type='Resize'),dict(keep_ratio=True, scale_factor=1.75, type='Resize'),],[dict(direction='horizontal', prob=0.0, type='RandomFlip'),dict(direction='horizontal', prob=1.0, type='RandomFlip'),],[dict(type='LoadAnnotations'),],[dict(type='PackSegInputs'),],],type='TestTimeAug'),
]
val_cfg = dict(type='ValLoop')
val_dataloader = dict(batch_size=1,dataset=dict(data_prefix=dict(img_path='img_dir/val', seg_map_path='ann_dir/val'),data_root='Watermelon87_Semantic_Seg_Mask/',pipeline=[dict(type='LoadImageFromFile'),dict(keep_ratio=True, scale=(2048,1024,), type='Resize'),dict(type='LoadAnnotations'),dict(type='PackSegInputs'),],type='mysegDataset'),num_workers=0,persistent_workers=False,sampler=dict(shuffle=False, type='DefaultSampler'))
val_evaluator = dict(iou_metrics=['mIoU','mDice','mFscore',], type='IoUMetric')
vis_backends = [dict(type='LocalVisBackend'),
]
visualizer = dict(name='visualizer',type='SegLocalVisualizer',vis_backends=[dict(type='LocalVisBackend'),])
work_dir = './work_dirs/mysegDataset-UNet'

6.训练模型

在终端中运行以下命令:

 python tools/train.py myconfigs/mysegDataset_UNet.py

http://www.fp688.cn/news/141472.html

相关文章:

  • 村级网站建设视频外链平台
  • 网站设计模板图88个seo网站优化基础知识点
  • 旗舰店的网站怎么做seo业务培训
  • 适合在夜晚看的电影寰宇seo
  • wordpress wp super cache 七牛南昌seo全网营销
  • 中国建设银行官网网站首页如何在百度免费发布广告
  • 做芯片外贸生意上哪个网站seo引擎优化
  • 制作网站收费最近发生的新闻事件
  • 企业网站建设费用steam交易链接在哪里
  • 建设网站开题报告宣传软文案例
  • 做网站需要资质吗头条新闻 最新消息条
  • 长宁区网站建设网页制市场推广方案怎么做
  • 四川网站建设开发谷歌paypal官网登录入口
  • 做网站开发的有外快嘛如何自己做网页
  • 物流网站哪个好百度大数据中心
  • 建设股票网站策划推广活动方案
  • 17做网店这个网站好不好品牌营销策划与管理
  • 家用电脑怎么做网站迅雷bt磁力链 最好用的搜索引擎
  • 北京网站制作方案公司购物网站大全
  • 网站测速百度seo流量
  • 代做吧机械网站企业网站建设案例
  • 简洁网站倒计时代码站长之家关键词挖掘
  • 泸西县住房和城乡建设局网站搜索排名优化
  • 娱乐类网站怎么建设seoheuni
  • 灵犀科技 网站开发佼佼者微信营销软件群发
  • 日照地方网站建设优化关键词是什么意思
  • 自己做视频网站用cdn那个便宜网络推广营销技巧
  • 博彩网站做维护什么软件比百度搜索好
  • 如何创造网站站优云seo优化
  • 无障碍网站建设推广前景外链代发软件