当前位置: 首页 > 资讯 > 生活 >

yolov5实战之模型剪枝 当前热门

时间:2023-06-27 21:23:53

续yolov5实战之二维码检测

目录前沿为什么要做轻量化什么是剪枝稀疏化训练剪枝微调结语模型下载前沿

在上一篇yolov5的博客中,我们用yolov5训练了一个二维码检测器,可以用来检测图像中是否有二维码,后续可以接一个二维码解码器,就可以解码出二维码的信息了(后续可以聊聊)。这篇博客再讲讲另一个方面:模型轻量化,具体的是轻量化中的模型剪枝。


【资料图】

为什么要做轻量化

我们训练的模型不仅仅会用在GPU这种算力高的硬件上,也有可能用在嵌入式CPU或者NPU上,这类硬件算力往往较低,尽管在这些设备上运行模型时,我们可以将模型量化为int8,可以大大降低计算量,但有时候只靠这一方式也是不够的。比较直观能想到的提升模型运行速度的方式是裁剪模型,比如减少通道数或模型的深度,这种方式是以牺牲模型精度为代价的。这就促使我们寻找更好的模型轻量化方法,剪枝就是一种使用比较广泛的模型轻量化方法。

什么是剪枝

模型剪枝(Model Pruning)是一种通过减少神经网络模型中的冗余参数和连接来优化模型的方法。它旨在减小模型的大小、内存占用和计算复杂度,同时尽可能地保持模型的性能。

模型剪枝的基本思想是通过识别和删除对模型性能影响较小的参数或连接,以达到模型精简和优化的目的。方法包括剪枝后的参数微调、重新训练和微调整体网络结构等。直观的理解就是像下图这样。  模型剪枝可以在不显著损失模型性能的情况下,大幅度减少模型的参数量和计算量,从而提高模型的部署效率和推理速度。它特别适用于嵌入式设备、移动设备和边缘计算等资源受限的场景,以及需要部署在较小存储空间或带宽受限环境中的应用。本文选择的模型剪枝方法:Learning Efficient Convolutional Networks through Network Slimming源代码:https://github.com/foolwood/pytorch-slimming这个方法基于的想法是通过稀疏化训练,通过BN层的参数,自动得到权重较小通道,去掉这些通道,从而达到模型裁剪的目的。

稀疏化训练

如上文述,为了达到剪枝的目的,我们要使用稀疏化训练,以使得让模型权重更紧凑,能够去掉一些权重较小的通道,达到模型裁剪的目的。为了进行稀疏化训练,引入一个稀疏化稀疏参数,这个参数越大,模型越稀疏,能够裁剪的比例越大,需要在实际中调整,参数过大,模型性能可能会下降较多,参数过小,能够裁剪的比例又会过小。  为了进行稀疏化训练,首先汇总模型的所有BN层:

if opt.sl > 0:        print("Sparse Learning Model!")        print("===> Sparse learning rate is ", hyp["sl"])        prunable_modules = []        prunable_module_type = (nn.BatchNorm2d, )        for i, m in enumerate(model.modules()):            if isinstance(m, prunable_module_type):                prunable_modules.append(m)

在训练loss中增加稀疏化loss:

def compute_pruning_loss(p, prunable_modules, model, loss):    """    Compute the pruning loss    :param p: predicted output    :param prunable_modules: list of prunable modules    :param model: model    :param loss: original yolo loss    :return: loss    """    float_tensor = torch.cuda.FloatTensor if p[0].is_cuda else torch.Tensor    sl_loss = float_tensor([0])    hyp = model.hyp  # hyperparameters    red = "mean"  # Loss reduction (sum or mean)    if prunable_modules is not None:        for m in prunable_modules:            sl_loss += m.weight.norm(1)        sl_loss /= len(prunable_modules)    sl_loss *= hyp["sl"]    bs = p[0].shape[0]  # batch size    loss += sl_loss * bs    return loss
# Forward            with amp.autocast(enabled=cuda):                pred = model(imgs)  # forward                loss, loss_items = compute_loss(pred, targets.to(device), model)  # loss scaled by batch_size                # Sparse Learning                if opt.sl > 0:                    loss = compute_pruning_loss(pred, prunable_modules, model, loss)                if rank != -1:                    loss *= opt.world_size  # gradient averaged between devices in DDP mode

设置合适的稀疏化稀疏进行训练,这一过程和普通的yolov5模型训练一样。

剪枝

pruning.py

#!/usr/bin/env python# -*- coding: utf-8 -*-"""Copyright (c) 2019 luozw, Inc. All Rights ReservedAuthors: luozhiwang(luozw1994@outlook.com)Date: 2020/9/7"""import osimport argparseimport numpy as npimport torchimport torch.nn as nnimport torch_pruning as tpimport copyimport matplotlib.pyplot as pltfrom models.yolo import Modelimport mathdef load_model(cfg="models/mobile-yolo5l_voc.yaml", weights="./outputs/mvoc/weights/best_mvoc.pt"):    restor_num = 0    ommit_num = 0    model = Model(cfg).to(device)    ckpt = torch.load(weights, map_location=device)  # load checkpoint    names = ckpt["model"].names    dic = {}    for k, v in ckpt["model"].float().state_dict().items():        if k in model.state_dict() and model.state_dict()[k].shape == v.shape:            dic[k] = v            restor_num += 1        else:            ommit_num += 1    print("Build model from", cfg)    print("Resotre weight from", weights)    print("Restore %d vars, ommit %d vars" % (restor_num, ommit_num))    ckpt["model"] = dic    model.load_state_dict(ckpt["model"], strict=False)       del ckpt    model.float()    model.model[-1].export = True    return model, namesdef bn_analyze(prunable_modules, save_path=None):    bn_val = []    max_val = []    for layer_to_prune in prunable_modules:        # select a layer        weight = layer_to_prune.weight.data.detach().cpu().numpy()        max_val.append(max(weight))        bn_val.extend(weight)    bn_val = np.abs(bn_val)    max_val = np.abs(max_val)    bn_val = sorted(bn_val)    max_val = sorted(max_val)    plt.hist(bn_val, bins=101, align="mid", log=True, range=(0, 1.0))    if save_path is not None:        if os.path.isfile(save_path):            os.remove(save_path)        plt.savefig(save_path)    return bn_val, max_valdef channel_prune(ori_model, example_inputs, output_transform, pruned_prob=0.3, thres=None, rules=1):    model = copy.deepcopy(ori_model)    model.cpu().eval()    prunable_module_type = (nn.BatchNorm2d)    ignore_idx = [] #[230, 260, 290]    prunable_modules = []    for i, m in enumerate(model.modules()):        if i in ignore_idx:            continue        if isinstance(m, nn.Upsample):            continue        if isinstance(m, prunable_module_type):            prunable_modules.append(m)    ori_size = tp.utils.count_params(model)    DG = tp.DependencyGraph().build_dependency(model, example_inputs=example_inputs,                                               output_transform=output_transform)    bn_val, max_val = bn_analyze(prunable_modules, "render_img/before_pruning.jpg")    if thres is None:        thres_pos = int(pruned_prob * len(bn_val))        thres_pos = min(thres_pos, len(bn_val)-1)        thres_pos = max(thres_pos, 0)        thres = bn_val[thres_pos]    print("Min val is %f, Max val is %f, Thres is %f" % (bn_val[0], bn_val[-1], thres))    for layer_to_prune in prunable_modules:        # select a layer        weight = layer_to_prune.weight.data.detach().cpu().numpy()        if isinstance(layer_to_prune, nn.Conv2d):            if layer_to_prune.groups > 1:                prune_fn = tp.prune_group_conv            else:                prune_fn = tp.prune_conv            L1_norm = np.sum(np.abs(weight), axis=(1, 2, 3))        elif isinstance(layer_to_prune, nn.BatchNorm2d):            prune_fn = tp.prune_batchnorm            L1_norm = np.abs(weight)        pos = np.array([i for i in range(len(L1_norm))])        pruned_idx_mask = L1_norm < thres        prun_index = pos[pruned_idx_mask].tolist()        if rules != 1:            prune_channel_nums = len(L1_norm) - max(rules, int((len(L1_norm) - pruned_idx_mask.sum())/rules + 0.5)*rules)            _, index = torch.topk(torch.tensor(L1_norm), prune_channel_nums, largest=False)            prun_index = index.numpy().tolist()                    if len(prun_index) == len(L1_norm):            del prun_index[np.argmax(L1_norm)]        plan = DG.get_pruning_plan(layer_to_prune, prune_fn, prun_index)        plan.exec()    bn_analyze(prunable_modules, "render_img/after_pruning.jpg")    with torch.no_grad():        out = model(example_inputs)        if output_transform:            out = output_transform(out)        print("  Params: %s => %s" % (ori_size, tp.utils.count_params(model)))        if isinstance(out, (list, tuple)):            for o in out:                print("  Output: ", o.shape)        else:            print("  Output: ", out.shape)        print("------------------------------------------------------\n")    return modelif __name__ == "__main__":    parser = argparse.ArgumentParser()    parser.add_argument("--cfg", default="models/yolov5s_voc.yaml", type=str, help="*.cfg path")    parser.add_argument("--weights", default="runs/exp7_sl-2e-3-yolov5s/weights/last.pt", type=str, help="*.data path")    parser.add_argument("--save-dir", default="runs/exp7_sl-2e-3-yolov5s/weights", type=str, help="*.data path")    parser.add_argument("-r", "--rate", default=1, type=int, help="通道数为rate的倍数")    parser.add_argument("-p", "--prob", default=0.5, type=float, help="pruning prob")    parser.add_argument("-t", "--thres", default=0, type=float, help="pruning thres")    opt = parser.parse_args()    cfg = opt.cfg    weights = opt.weights    save_dir = opt.save_dir    device = torch.device("cpu")    model, names = load_model(cfg, weights)    example_inputs = torch.zeros((1, 3, 64, 64), dtype=torch.float32).to()    output_transform = None    # for prob in [0, 0.01, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7]:    if opt.thres != 0:        thres = opt.thres        prob = "p.auto"    else:        thres = None        prob = opt.prob    pruned_model = channel_prune(model, example_inputs=example_inputs,                                 output_transform=output_transform, pruned_prob=prob, thres=thres,rules=opt.rate)    pruned_model.model[-1].export = False    pruned_model.names = names    save_path = os.path.join(save_dir, "pruned_"+str(prob).split(".")[-1] + ".pt")    print(pruned_model)    torch.save({"model": pruned_model.module if hasattr(pruned_model, "module") else pruned_model}, save_path)

可以按比例剪枝, 如剪枝比例0.5:

python prune.py --cfg models/yolov5s_voc.yaml --weights runs/exp7_sl-2e-3-yolov5s/weights/last.pt --save-dir runs/exp7_sl-2e-3-yolov5s/weights/ --prob 0.5

还可以按权重大小剪枝,比如小于0.01权重的通道剪:

python prune.py --cfg models/yolov5s_voc.yaml --weights runs/exp7_sl-2e-3-yolov5s/weights/last.pt --save-dir runs/exp7_sl-2e-3-yolov5s/weights/ --thres 0.01

往往通道是8的倍数时,神经网络推理较快:

python prune.py --cfg models/yolov5s_voc.yaml --weights runs/exp7_sl-2e-3-yolov5s/weights/last.pt --save-dir runs/exp7_sl-2e-3-yolov5s/weights/ --thres 0.01 --rate 8

执行剪枝后,模型将会变小。

微调

剪枝后,模型性能会下降,此时我们需要再微调剪枝后的模型,其训练过程与剪枝前训练方式一致。一般情况下,可以接近剪枝前的性能。

结语

通过剪枝可以在精度损失较小的情况下,加快模型的推理速度,在我们需要做实时分析的任务中非常有用。

模型下载

轻量级二维码检测模型:模型下载

标签:

来源: 博客园 编辑: FN008
相关阅读
  • 2023-06-27 21:23:53yolov5实战之模型剪枝 当前热门
  • 2023-06-27 20:35:06小娘惹各个人物扮演者老版 带你回顾08经典原版小娘惹演员现状 天天热讯
  • 2023-06-27 20:16:20天天热点评!四川省体育馆会举行大运会哪项比赛?
  • 2023-06-27 19:13:35【天天播资讯】珠海公安:“智慧服务”提升便民利企质效
  • 2023-06-27 19:01:36欧美经济现衰退信号 白银ETF增持22.84吨_环球快消息
  • 2023-06-27 18:19:06医疗保险比例占工资比例 医疗保险比例_焦点热议
  • 2023-06-27 17:51:24分期乐怎么样比较好下款_分期乐怎么样 世界快资讯
  • 2023-06-27 17:24:55高通推出全新第二代骁龙4移动平台,为入门级产品提供出色的移动体验|环球动态
  • 2023-06-27 16:52:57多主力现身龙虎榜,新中港换手率达47.23%(06-27)|天天热门
  • 2023-06-27 16:09:45热评丨快递“温度计”量出消费复苏|全球关注
  • 2023-06-27 21:23:53yolov5实战之模型剪枝 当前热门
  • 2023-06-27 21:22:15V观财报|国旅联合被监管警示:财务信息披露不准确
  • 2023-06-27 21:11:3460万股股份全部拍出 全国首例大宗股权精细拆分处置 当前独家
  • 2023-06-27 21:11:08观焦点:“平安口岸、绿色无毒”如皋出入境边防检查站开展禁毒宣传进港区活动
  • 2023-06-27 21:11:05南京200多斤野猪把玻璃门撞到粉碎 已送往救助中心|看热讯
  • 2023-06-27 21:09:39环球观速讯丨有人假冒国家机关名义伪造文件!农业农村部郑重声明
  • 2023-06-27 21:06:52当前热讯:泰州市开展“基层突出问题大起底”专题走访
  • 2023-06-27 21:05:38今日报丨江苏南京:城中添“方寸美” 门前享“微幸福” 月牙湖地区新增一处口袋公园
  • 2023-06-27 21:05:00全球观天下!甘泉县第二季度“学思堂”志愿服务活动走进劳山乡
  • 2023-06-27 21:04:50一个拍故事的人走进故事里
  • 2023-06-27 21:00:47全球快播:科兴制药:人生长激素注射液获批临试
  • 2023-06-27 20:57:02让更多的技能人才在宿迁大地建功立业
  • 2023-06-27 20:56:01普京最新发声 透露一重要信息 焦点热文
  • 2023-06-27 20:54:28三年寻亲之旅画上句号 父子视频泪流满面|环球快报
  • 2023-06-27 20:54:23亿纬锂能:董事会审议通过了《关于继续开展外汇套期保值业务的议案》 天天观热点
  • 2023-06-27 20:53:34当前消息!我国正式接受世贸组织《渔业补贴协定》议定书
  • 2023-06-27 20:50:53当前播报:寻医途中幸遇警车 双臂割伤血流如注
  • 2023-06-27 20:49:28网传“在盒饭中发现疑似老鼠头” 重庆秀山县:认定异物为老鼠头-当前动态
  • 2023-06-27 20:49:20不同防晒服价格相差10倍以上,各品牌主打防晒科技,过半专利却为外观设计
  • 2023-06-27 20:45:23红色阵地筑起“幸福港湾” 狮山横塘打造多元化党建服务
  • 2023-06-27 20:44:4416号线一期、地铁2号线二期开通 西安地铁运营里程突破300公里 焦点速看
  • 2023-06-27 20:39:53世界资讯:洋葱可以生吃吗?有什么好处_洋葱可以生吃吗
  • 2023-06-27 20:37:30环球热推荐:中秋节是每年的几月几号_中秋节今年几月几号
  • 2023-06-27 20:35:06小娘惹各个人物扮演者老版 带你回顾08经典原版小娘惹演员现状 天天热讯
  • 2023-06-27 20:16:20天天热点评!四川省体育馆会举行大运会哪项比赛?
  • 2023-06-27 20:13:35地产从业者的新常态:不用加班熬月光也不见曙光
  • 2023-06-27 20:12:36环球播报:端午小长假南通接待游客156万人次
  • 2023-06-27 20:11:15父母背着我上学!励志,沭阳脑瘫女孩高考超一本线32分
  • 2023-06-27 20:09:272023年淮安市普通高中录取控制线公布!
  • 2023-06-27 20:08:55比亚迪:接受国信证券调研
  • 2023-06-27 20:03:47当前滚动:又到“最可怕暑假”?贩卖焦虑才真“毁孩子”
  • 2023-06-27 20:02:02龙元建设:制定未来三年股东分红回报规划 观点
  • 2023-06-27 20:01:20谷歌被曝终止AR眼镜项目,团队裁员重组,要做AR界“安卓” 世界新消息
  • 2023-06-27 20:00:08满意莲湖 十分好评
  • 2023-06-27 19:59:44即时:打新股新规则2023_打新股新规
  • 2023-06-27 19:58:26中超联赛明日重启 津门虎的身份和以前不同了……
  • 2023-06-27 19:55:25南京致力打造青年科技人才“蓄水池”
  • 2023-06-27 19:55:167月1日起,运行调整!涉及盐城→
  • 2023-06-27 19:54:17陕西省印台区发布暴雨蓝色预警
  • 2023-06-27 19:50:55108坊故事|社区两年来组织召开了20多场协调会 小区303户终于通上天然气|世界新要闻
  • 2023-06-27 19:45:19环球资讯:老婆大人回应部分门店无法用会员卡:门店到期未续约
  • 2023-06-27 19:21:34广东拟对医保信用进行积分制管理
  • 2023-06-27 19:21:13天天视点!福建|精准暖人心 育人青春梦—南平市学生资助工作会议召开
  • 2023-06-27 19:17:12csgo在哪里可以租刀 十大专业的csgo武器交易平台排名-今日最新
  • 2023-06-27 19:15:53涨涨涨!7月1日起,镇江多项保障标准再提高
  • 2023-06-27 19:15:06白癜风医院南昌哪家好|热闻
  • 2023-06-27 19:13:35【天天播资讯】珠海公安:“智慧服务”提升便民利企质效
  • 2023-06-27 19:11:52世界热资讯!九洲集团:拟向全资子公司九洲能源增资不超过4亿元
  • 2023-06-27 19:05:36二季度收官6月零跑销量再次提前破万
  • 2023-06-27 19:04:49即时看!深夜发布!2023年镇江扬中市高中阶段招生第二批次录取分数线划定
  • 2023-06-27 19:02:28俄称瓦格纳准备向俄军移交重武装 撤销针对普里戈任的刑事立案 天天新要闻
  • 2023-06-27 19:01:50全球时讯:第十三届江苏书展将于7月1日至5日举办 常州设立12个分展场
  • 2023-06-27 19:01:36欧美经济现衰退信号 白银ETF增持22.84吨_环球快消息
  • 2023-06-27 19:01:25陕西省蒲城县发布雷雨大风黄色预警
  • 2023-06-27 19:00:43全球视讯!稳地价稳房价稳预期 扬州楼市政策再优化
  • 2023-06-27 19:00:14教育部印发通知部署做好2023年暑期校外培训治理工作
  • 2023-06-27 18:56:32平整度如何表示-平整度怎么表示
  • 2023-06-27 18:54:10全球焦点!番茄“三剑客”在南通启东设立长三角供应链中心
  • 2023-06-27 18:47:40今日工行纸白银价格走势图最新行情(6月27日)
  • 2023-06-27 18:46:052023东莞本科生见习实习补贴线上申办流程
  • 2023-06-27 18:46:03世界短讯!商洛市卫健系统深入开展巩固衔接领域群众身边腐败和作风问题专项整治
  • 2023-06-27 18:40:48全球快消息!新房主卧墙面维修后出现裂缝,上上物业:联系多方面谈
  • 2023-06-27 18:40:20鶏_关于鶏简述 前沿热点
  • 2023-06-27 18:26:12环球新消息丨江苏大学2023年硕士研究生录取通知书发放有关事宜通知
  • 2023-06-27 18:19:06医疗保险比例占工资比例 医疗保险比例_焦点热议
  • 2023-06-27 18:17:00高温天气持续 人社部要求做好劳动者权益保障工作 看点
  • 2023-06-27 18:15:21苏锡常三地首个远程异地评标合作项目完成
  • 2023-06-27 18:10:27世界快看点丨黑石上层入口在哪 黑石上层怎么走
  • 2023-06-27 18:06:42环球微头条丨找工作、租房、落户 “随申办”上线实用服务包
  • 2023-06-27 18:06:00乌克兰和谈将于7月进行?是否邀请俄罗斯?外交部回应 天天快播
  • 2023-06-27 18:01:04泛海控股:接管人拟1.34亿美元出售夏威夷度假村 当前观察
  • 2023-06-27 17:58:44全球观察:沪苏两地实现主城轨道交通联通 推进长三角交通基础设施互联互通
  • 2023-06-27 17:58:35让科研人员大胆探索
  • 2023-06-27 17:58:14环球热头条丨民生银行潍坊寿光支行走进社区开展防范非法集资宣传活动
  • 2023-06-27 17:55:13科普 | 痛风与类风湿有何区别,哲成生物教你正确区分
  • 2023-06-27 17:54:58航行警告!南海海域进行军事训练-要闻
  • 2023-06-27 17:54:13大晟文化:公司暂未开通官方微博、微信、抖音等新媒体沟通平台 当前热闻
  • 2023-06-27 17:53:44月均增长达“百亿级” 六问快递业如何实现提速发展_世界最资讯
  • 2023-06-27 17:52:05陕西省富平县发布雷雨大风黄色预警
  • 2023-06-27 17:51:24分期乐怎么样比较好下款_分期乐怎么样 世界快资讯
  • 2023-06-27 17:47:05新消息丨“进度条”更新!新天地商务社区迈向商务社区建设“2.0版本”
  • 2023-06-27 17:45:48全球滚动:安康今年高中招生有这些变化!你了解吗?
  • 2023-06-27 17:45:08陕西发布冰雹橙色预警 部分地区未来6小时内出现冰雹天气可能性很大
  • 2023-06-27 17:44:33焦点热议:国家金融监督管理总局批复筹建渣打银行(中国)有限公司合肥分行
  • 2023-06-27 17:43:45超1亿流量曝光、2亿息费减免…京东供应链金融科技助力小微商家备战京东11.11
  • 2023-06-27 17:43:00高考志愿填报热点问题答疑
  • 2023-06-27 17:36:23当前视点!overlord填词系列 雅儿贝德&夏提雅(勾指起誓)
  • 2023-06-27 17:24:55高通推出全新第二代骁龙4移动平台,为入门级产品提供出色的移动体验|环球动态
  • 2023-06-27 17:21:25以高质量信息披露体系推动转型债券市场发展|当前动态
  • 2023-06-27 17:14:04文旅市场人气“井喷” 连云港市端午小长假接待游客75.98万人
  • 2023-06-27 17:13:09全球百事通!徐州:“种牛场”书记不养牛 一心只为乡村振兴
  • 2023-06-27 17:10:57【全球新要闻】“数”说宿迁沭阳:今年前5月工业税收和工业增值税领跑苏北
  • 2023-06-27 17:10:48从端午产业“三变”看消费市场活力|每日简讯
  • 2023-06-27 17:08:09云端送岗拓展就创业渠道 虎丘街道举办产业园专场直播带岗活动 天天视讯
  • 2023-06-27 17:05:55“社区+就业”“银行+社保”“企业+仲裁” 连云港市着力打造15分钟人社便民服务圈
  • 2023-06-27 17:04:32老旧小区展新貌!南通崇川区三年改造112个小区
  • 2023-06-27 16:59:30天天关注:总收入31.48亿元!端午期间徐州游客接待总量262.35万人次
  • 2023-06-27 16:59:11天天时讯:徐州泉山:今年改造四个老旧小区
  • 2023-06-27 16:58:47当前快看:外资总部集聚区!南京鼓楼区打造对外开放新高地
  • 2023-06-27 16:56:26自家庭院种什么树好_庭院种什么树好 天天时快讯
    • 苏州
    • 江苏
    • 财经
    • 娱乐
    • 旅游
    • 时尚

    红色阵地筑起“幸福港

    环球热推荐:中秋节是

    让更多的技能人才在宿

    党建结对共建 助力乡

    九寨沟国庆遇冷7天迎

    普京最新发声 透露一

    最新资讯

  • 最早将在4月底发射 龙飞船有望成首个载人商业航天器
  • 又见高空坠物 这次扔下来的竟然是玻璃茶几
  • 苏州轨道交通3号线今起空载试运行 将于12月底试运营
  • 十四台高水准音乐演出 江南之声,以音乐节的名义致敬古典
  • 2019江苏省“长江经济带”全民健身大联动暨“舞动江苏”无锡赛区启动仪式举行
  • 以合作致共赢 江苏日本开放创新合作交流会在东京举行
  • 走进江苏各地博物馆 寻找文物上的“萌娃”们
  • 新沂城市水环尽显生态活力:碧水绕城 绿荫满城
  • “强网”拟态防御国际精英挑战赛:29支“白帽黑客”战队谁能突防?
  • 南京楼市上半年推房或超去年全年
  • 环球百事通!31个项目竣工投产!南京江宁区前5月完成投资111.7亿元
  • 环球快资讯丨每一分就有千人!今年高考491分的杭州姑娘还有机会读本科吗?
  • “家文化”赋能基层治理
  • 扬州市委书记王进健:全力冲刺实现“双过半”目标任务
  • 6月27日国内部分钢厂锰系金属招标情况|当前动态
  • 日媒:福岛核污染水排海隧道建设工程已完工
  • 多主力现身龙虎榜,新中港换手率达47.23%(06-27)|天天热门
  • “四进四送”描绘就业服务新画卷 天天快讯
  • 审批做“减法” 服务做“加法” 张家港保税区助企跑出发展“加速度”
  • 世界快看点丨【调研快报】华纬科技接待东北证券等多家机构调研
  • 制作动画ppt的软件_ppt动画制作软件|环球快消息
  • 手机电池典型值和额定值是什么意思详情
  • 网传延安一警车公路上逆行,延安市公安局:有紧急公务不便鸣笛-世界快播报
  • 【环球新要闻】汶川山洪泥石流灾害已发现3名遇难者 其中2人是夫妻
  • 【小里帮忙】富县新出租车为何上路不到一年就问题频出?
  • 渭南市掀起全民禁毒宣传活动新高潮_天天热推荐
  • 陕西洛南县石门镇全面加强财政精细化管理
  • 怎样进行证明事实收养关系?收养关系的登记地点在哪?
  • 如何办理事实收养公证?办理收养公证的方式有哪些?
  • 事实收养的认定是指什么?事实收养认定法律依据是什么?
  • 李想造车:左手销量,右手流量
  • 解除事实收养关系的法律效力如何?收养关系解除后的其他注意事项是什么?
  • 办理事实收养公证需要提交什么资料?办理收养公证的法律依据有哪些?
  • 收养人与送养单位怎样签订收养协议?事实收养审查内容有哪些?
  • 北京宝庆银楼周二(6月27日)黄金报576元/克
  • 有哪些事实收养申请程序?收养人应当向收养登记机关提交什么证明材料?
  • 事实收养的特征有哪些?事实收养的产生原因是什么?
  • 怎样理解事实收养关系的解除?事实收养关系的解除有哪些法律依据?
  • 事实收养的解除条件是什么?收养关系解除后如何补偿?
  • 事实收养的含义是什么?哪些情形可以认定为事实收养?
  • 事实收养应具备条件有哪些?认定收养关系有什么法律依据?
  • 事实收养的时间如何划定?事实收养法律规定有哪些?
  • 外国收养人通过外国收养组织向中国收养组织提出收养申请内容有哪些?
  • 有哪些涉外收养的实质要件?涉外收养的法律适用是什么?
  • 法律规定涉外收养有哪些条件?收养登记机关是什么?
  • 国内超百所高校为无锡考生提供"一站式"服务 在锡高校扩大招生规模
  • 关于涉外收养程序之中国送养人向我国民政部门提出送养申请及其审批
  • 涉外收养的批准与通知是什么内容?涉外收养公证是指什么?
  • 微信ipad老版本下载(微信下载ipad版) 世界热讯
  • 涉外收养是什么?涉外收养如何进行?
  • 夫妻先后把对方送精神病院,究竟谁“有病”?是否涉嫌非法拘禁?-每日看点
  • 涉外法律是什么?涉外知识产权应该如何管辖?
  • k3换刹车油用几升(k3多久换刹车油?)
  • 热评丨快递“温度计”量出消费复苏|全球关注
  • 持续更新中!多地公布2023高考分数线-每日关注
  • 端午假期宿迁铁路到发旅客破12万人次|环球短讯
  • 【甘肃】华池县举办2023年高素质农民培育中药材生产培训班
  • 有点动静就冲上热搜 初登亚运舞台的电竞为何如此受宠
  • 收评:三大指数午后持续走强 房地产板块领涨|当前快看
  • 复兴号预计7月1日在青藏铁路正式运营
  • 涉外收养登记有哪些程序?办理涉外收养登记应当提交的材料有哪些?
  • 涉外收养的效力是指什么?法律规定涉外收养的效力如何?
  • 实践中有一小孩了还能收养一个孩子吗?收养协议要注意哪些问题?
  • 守护失能人员!泰州市长期护理保险减轻市民负担2.08亿元|全球新消息
  • 已有子女想再收养一个孩子需要提供哪些材料?收养协议怎么解除?
  • 去哪里办理收养手续?收养手续怎么办?收养拟制效力有哪些?
  • 哪些情况下可以领养孩子?领养孩子需要什么条件?收养孩子登记的步骤是什么?
  • 动态:开颅3次的“轮椅少年”,考上了!
  • 遗赠扶养协议的解除的条件有哪些?遗赠抚养协议生效条件是什么?
  • 收养孩子如何办理收养手续?单身男性收养孩子的条件有哪些?
  • 单身男的领养女儿条件是什么?被收养人的范围有哪些?
  • 2022/23赛季最佳扑救1/8决赛第四组对决:...-热点聚焦
  • 中国正式接受世贸组织《渔业补贴协定》议定书
  • 观点:谷歌在发货前取消了部分 Pixel Fold 预订单
  • 汶川泥石流航拍画面公布 7人失联 正全力搜救中|每日速读
  • 遗赠扶养协议形式要件有哪些?遗赠扶养协议的解除需要什么条件?
  • 九强生物:大股东ZHOU XIAOYAN拟清仓减持不超5.28%公司股份
  • 法定扶养义务人的范围包括哪些?兄弟姐妹间有扶养义务吗?
  • 有哪些领养孩子办理收养程序?收养手续办理具体步骤是什么?
  • 收养手续办理需要多长时间?签领养合同的条件是什么?
  • 一般收养程序是什么?收养子女必须按照哪些法定程序?
  • 官方指导价8.99-12.79万元 江淮钇为3正式上市
  • 西北首条全自动无人驾驶地铁线路开通初期运营|当前速递
  • 明喆集团:拟冲刺深交所主板IPO上市,预计投入募资14.1亿元 全球热推荐
  • 办理收养所需条件及材料有哪些?收养登记申请材料有哪些?
  • 陕煤运销集团北方港累计销售煤炭突破800万吨
  • 福利院收养手续是怎样的?收养福利院孩子所需材料有哪些?
  • 怎么办理收养手续?收养手续有什么法律依据?
  • 可以在网络上进行收养手续吗?网上收养孩子违法吗?
  • 民法典关于收养法的实施办法有哪些 收养法的实施办法是什么
  • 收养协议是否具有法律效力?收养协议具有法律效力的依据是什么?
  • 收养协议包含内容有哪些?收养协议适用于合同编吗?
  • 拒招川大师生的CEO再发声:我对我说的话不后悔,曝川大更多内幕_天天快看
  • 收养关系可以解除吗?收养无效情形应该如何处理?
  • 收养多少岁的孩子需要征得本人同意?收养关系特征有哪些?
  • 怪物猎人崛起守势珠需要什么素材
  • 安徽政企校媒首次合作打造企业职工思政课
  • 【热闻】江苏东方四通创业板IPO获受理:净利润同比增长126.67%
  • 贵州“村超”,中国乡村的幸福模样-全球热点
  • 跨境电商成“真、优、美”产品大本营_全球报道
  • 世界看点:行政复议法修订草案二审稿:充分保障申请人合法权益
  • 全球讯息:国内商品期市收盘多数上涨 铁矿石涨逾4%
  • 又一海洋重器!“亚洲第一高”海上油气平台总装启动-讯息
  • 目前手头有50万元存款 车房已买 该如何理财呢 记住五点 播报
  • 观热点:苏州“十四五”交通规划:民用运输机场规划建设获阶段性突破
  • 华侨城20亿斩获佛山禅城一宅地,溢价率近18%
  • 太白县荣获2023年中国旅游避暑优选地
  • 南京华山饭店全员抓安全 “险情”检验应急消防水平|当前短讯
  • 热消息:高考志愿填报相关App会员费不菲,AI填报靠不靠谱?
  • 天天即时:水鸟翔集 青海湖迎来鸟类繁殖高峰