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

GeoSeg 框架解析

在这里插入图片描述

总的来看:

config 配置文件
geoseg 定义了核心组件:models datasets losses
tools 辅助工具箱

config :

在这里插入图片描述
里面包含多个遥感数据集,内部包含不同的模型

看一个例子
导入
from torch.utils.data import DataLoader
from geoseg.losses import *
from geoseg.datasets.vaihingen_dataset import *
from geoseg.models.UNetFormer import UNetFormer
from tools.utils import Lookahead, process_model_params
训练超参数
from torch.utils.data import DataLoader
from geoseg.losses import *
from geoseg.datasets.vaihingen_dataset import *
from geoseg.models.UNetFormer import UNetFormer
from tools.utils import Lookahead, process_model_params
网络定义
net = UNetFormer(num_classes=num_classes)
损失函数
loss = UnetFormerLoss(ignore_index=ignore_index)
use_aux_loss = True
数据加载器
train_dataset = VaihingenDataset(data_root='data/vaihingen/train', ...)
val_dataset = VaihingenDataset(...)
...
train_loader = DataLoader(dataset=train_dataset, ...)
val_loader = DataLoader(dataset=val_dataset, ...)
优化器
layerwise_params = {"backbone.*": dict(lr=backbone_lr, ...)}
net_params = process_model_params(net, ...)
base_optimizer = torch.optim.AdamW(net_params, lr=lr, ...)
optimizer = Lookahead(base_optimizer)
lr_scheduler = torch.optim.lr_scheduler.CosineAnnealingWarmRestarts(...)

geoseg

models—>所有神经网络骨架库
datasets–>数据集库
losses —>损失函数库

datasets

在这里插入图片描述
除了每个数据集的datasets 之外,有个transform是数据增强策略

transform: 各种各样的数据增强策略
看一个dataset例子:
全局常量
类别
CLASSES = ('ImSurf', 'Building', 'LowVeg', 'Tree', 'Car', 'Clutter')
可视化颜色
PALETTE = [[255, 255, 255], [0, 0, 255], [0, 255, 255], [0, 255, 0], [255, 204, 0], [255, 0, 0]]ORIGIN_IMG_SIZE = (1024, 1024)
INPUT_IMG_SIZE = (1024, 1024)
TEST_IMG_SIZE = (1024, 1024)
数据增强流水线
def get_training_transform(): ...
def train_aug(img, mask): ...
def get_val_transform(): ...
def val_aug(img, mask): ...
这些都是对数据进行数据增强
核心数据集类
class VaihingenDataset(Dataset):def __init__(...): ...构造函数,保存传入参数,调用get_img_ids读取images_1024目录下的所有文件名,并且保存在self.img_ids 当中def __getitem__(...): ...def __len__(...): ...def get_img_ids(...): ...用来确保img_dir 和mask_dir能对应的上def load_img_and_mask(...): ...加载数据def load_mosaic_img_and_mask(...): ...高级数据增强
可视化工具
def show_img_mask_seg(...): ...
def show_seg(...): ...
def show_mask(...): ...

losses

各种各样loss 函数

models:定义了不同的models 神经网络

看一个例子

这个例子没有encoder 模块是因为,他的encoder 模块就只是backbone 特征提取,如果特征提取后加入混合注意力之类的东西,就应该写一个encoder类

此外,models 一般都是把组件,基础架构模块定义好,核心模块定义好,在encoder 和 decoder 内部,按照论文结构排列组合
encoder 和 decoder 会在最后的模型封装中,在forward 中应用

基础架构模块
class ConvBNReLU(nn.Sequential): ...
class ConvBN(nn.Sequential): ...
class Conv(nn.Sequential): ...
class SeparableConvBNReLU(nn.Sequential): ...
class Mlp(nn.Module): ...
核心注意力模块
class GlobalLocalAttention(nn.Module): ...
Transformer 模块
class GlobalLocalAttention(nn.Module): ...
解码辅助模块
class WF(nn.Module): ...
class FeatureRefinementHead(nn.Module): ...
class AuxHead(nn.Module): ...
解码器
class Decoder(nn.Module): ...
最终模型
class UNetFormer(nn.Module): ...
构造函数和前向传播

tools

在这里插入图片描述

数据预处理脚本
模型配置脚本
模型评估脚本

http://www.dtcms.com/a/613894.html

相关文章:

  • 预训练语言模型(Pre-trained Language Model, PLM)介绍
  • 免费域名注册网站怎么登录网站运营一个月多少钱
  • 抚顺市营商环境建设局网站公众号后台登录
  • Vue2 学习记录--路由
  • Spring Boot 热部署
  • 非易失性存储器·W25Q64使用手册解读
  • 网站统计关键词重庆市建设局网站
  • 分布式缓存技术选型指南
  • mysql主从复制配置
  • html网站模板建站手机建网站推广
  • Vue 项目实战《尚医通》,预约挂号的路由与静态搭建,笔记36
  • 网站建设 风险防控网站首页的head标签内
  • 多用户跨学科交流系统(3):评论模块与 Spring Boot 全局异常处理
  • 前后端分离部署学之思在线考试系统
  • 在树莓派4B上部署ONNX格式的YOLOv8-Pose
  • websocket和传统socket有何差别?是属于一个子集还是完全不同?
  • 双指针问题2(c++)
  • 龙岩市城乡规划建设局网站三只松鼠的网络营销方式
  • Docker容器使用手册——入门篇(上)
  • C语言编译器网页版 | 轻松编写与调试C语言程序
  • QT注册自定义类相关的两个用法
  • 进程间关系(linux)
  • WordPress外贸成品网站的免费获取渠道
  • 经典算法题之汉明距离(二)
  • 公司注册网站模板上杭网站设计
  • 基于Spring AI的RAG和智能体应用实践
  • Flutter:跨平台开发终极指南
  • Python-将身份证正反面图片-生成PDF
  • 建单页网站搜网站的关键词
  • 数据科学每日总结--Day20--区块链