【深度学习】训练模型结果同时显示,模型结果对比

news2024/12/23 17:58:40

码字不易,如果各位看官感觉该文章对你有所帮助,麻烦点个关注,如果有任何问题,请留言交流。如需转载,请注明出处,谢谢。

文章链接:【深度学习】训练模型结果同时显示,模型结果对比_莫克_Cheney的博客-CSDN博客

目录

目录

一、问题描述

二、解决方案

三、实验结果

四、总结

五、废话(凑字数)


 

一、问题描述

        当我们训练完模型时,常常会选择几个模型,跑完测试代码后,进行结果的对比,但是,类似与beyond compare工具,对比的是二进制的不同,而我们只需要用眼睛观察哪个模型检测的结果好,就可以了。

        而测试结果的文件夹结构一致,只是不同模型跑出来的结果。以下图显示的就是我使用不同的深度学习模型,跑出来的结果,每个文件夹的结构都一样,现在想要同时对这四个文件夹的,同一张图进行显示,显示到同一个窗口中,好对比哪个模型的结果最好。

二、解决方案

        我们需要同时打开四个文件夹的图像,放在一个窗口里,这样方便我们观察结果。

        话不多说,贴代码:


import numpy as np
import cv2
import os
def get_imlist(path):
    # return [os.path.join(path,f) for f in os.listdir(path) if f.endswith('.png')]
    pathend = []
    for root,dirs,files in os.walk(path):
        for file in files:
            path = os.path.join(root,file)
            if path.endswith('.png'):
                pathend.append(path)
    return pathend

def main():
    basicdir = "/home/cheney/Project/lane/data/result_20230220/"
    imgforder1 = "results_model420"
    imgforder2 =  "results_model727"
    imgforder3 =  "results_model1248"
    imgforder4 =   "results_model1499"
    imlist = get_imlist(basicdir + imgforder1)

    for imgfile in imlist:
        forderstrings = imgfile.split('/')
        imgpath1 =imgfile
        imgpath2 = basicdir + imgforder2 + '/'+ forderstrings[8]+ '/'+forderstrings[9]+ '/'+forderstrings[10]
        imgpath3 = basicdir + imgforder3 + '/'+ forderstrings[8]+ '/'+forderstrings[9]+ '/'+forderstrings[10]
        imgpath4 = basicdir + imgforder4 + '/'+ forderstrings[8]+ '/'+forderstrings[9]+ '/'+forderstrings[10]
        frame1= cv2.imread(imgpath1)
        frame2= cv2.imread(imgpath2)
        frame3= cv2.imread(imgpath3)
        frame4= cv2.imread(imgpath4)
        imghstack1 = np.hstack((frame1, frame2))
        imghstack2 = np.hstack((frame3, frame4))
        imgfinal = np.vstack((imghstack1, imghstack2))
        irow = 30
        icol = 30
        imgsize = 384 
        cv2.putText(imgfinal,imgforder1,(icol,irow),cv2.FONT_ITALIC,1,(0,255,255),1)
        cv2.putText(imgfinal,imgforder2,(icol + imgsize,irow),cv2.FONT_ITALIC,1,(0,255,255),1)
        cv2.putText(imgfinal,imgforder3,(icol ,irow+ imgsize),cv2.FONT_ITALIC,1,(0,255,255),1)
        cv2.putText(imgfinal,imgforder4,(icol +imgsize,irow+imgsize),cv2.FONT_ITALIC,1,(0,255,255),1)
        cv2.imshow('420*727*1248*1499',imgfinal)
        cv2.waitKey(0)




if __name__ == '__main__':
    main()

三、实验结果

        结果如下:

四、总结

        这样同样文件夹结构的结果就能同时显示到一张图上了,非常的ok,非常的方便,选择哪个模型,哪个模型检测的效果好,一目了然!!

五、废话(凑字数)

        深度学习(Deep Learning,DL)是指多层的人工神经网络和训练它的方法。一层神经网络会把大量矩阵数字作为输入,通过非线性激活方法取权重,再产生另一个数据集合作为输出。这就像生物神经大脑的工作机理一样,通过合适的矩阵数量,多层组织链接一起,形成神经网络“大脑”进行精准复杂的处理,就像人们识别物体标注图片一样。

深度学习是从机器学习中的人工神经网络发展出来的新领域。早期所谓的“深度”是指超过一层的神经网络。但随着深度学习的快速发展,其内涵已经超出了传统的多层神经网络,甚至机器学习的范畴,逐渐朝着人工智能的方向快速发展。

深度学习的基本思想

假设我们有一个系统S,它有n层(S1,…Sn),它的输入是I,输出是O,形象地表示为: I =>S1=>S2=>…..=>Sn => O,如果输出O等于输入I,即输入I经过这个系统变化之后没有任何的信息损失,保持了不变,这意味着输入I经过每一层Si都没有任何的信息损失,即在任何一层Si,它都是原有信息(即输入I)的另外一种表示。现在回到我们的主题Deep Learning,我们需要自动地学习特征,假设我们有一堆输入I(如一堆图像或者文本),假设我们设计了一个系统S(有n层),我们通过调整系统中参数,使得它的输出仍然是输入I,那么我们就可以自动地获取得到输入I的一系列层次特征,即S1,…, Sn。

对于深度学习来说,其思想就是对堆叠多个层,也就是说这一层的输出作为下一层的输入。通过这种方式,就可以实现对输入信息进行分级表达了。

另外,前面是假设输出严格地等于输入,这个限制太严格,我们可以略微地放松这个限制,例如我们只要使得输入与输出的差别尽可能地小即可,这个放松会导致另外一类不同的Deep Learning方法。上述就是Deep Learning的基本思想。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/358325.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python - 绘制人体生物节律

文章目录项目说明关于人体生物节律用到的技术代码实现获取每月有多少天计算每天到生日过了多少天计算节律绘图结果项目说明 这里仿照 http://www.4qx.net/The_Human_Body_Clock.php 做一个人体生物节律的计算和展示 关于人体生物节律 百度/维基百科 解释 https://zh.wikiped…

DaVinci 偏好设置:系统 - 内存和 GPU

偏好设置 - 系统/内存和 GPUPreferences - System/Memory and GPU内存和 GPU Memory and GPU 选项卡提供了内存配置以及 GPU 配置的相关设置。内存配置Memory Configuration系统内存System Memory列出了所用电脑的总的可用内存。限制 Resolve 内存使用到Limit Resolve memory u…

Java中如何创建和使用对象?

要想使用一个类则必须要有对象。在Java程序中可以使用new关键字创建对象,具体格式如下:类名对象名称null; 对象名称new 类名();上述格式中,创建对象分为声明对象和实例化对象两步,也可以直接通过下面的方式创建对象,具…

从 ClickHouse 到 Apache Doris,腾讯音乐内容库数据平台架构演进实践

导读:腾讯音乐内容库数据平台旨在为应用层提供库存盘点、分群画像、指标分析、标签圈选等内容分析服务,高效为业务赋能。目前,内容库数据平台的数据架构已经从 1.0 演进到了 4.0 ,经历了分析引擎从 ClickHouse 到 Apache Doris 的…

H5使用微信JSSDK的wx.chooseImage进行多文件上传

背景:项目需要用H5做一个上传多图片合成的功能页面,这里我先做了调查,调查结果是安卓在微信内核不能使用传统的input file进行多文件上传,只能限制每次上传一张,ios则不限制,所以H5想在微信内核进行多图片上…

实验室三维磁场电磁铁的主要用途及技术指标

产品用途: 北京锦正茂科技有限公司自主研发的多极电磁铁以四极电磁铁居多,也有五极、六极、八极等多极的应用,主要应用于磁滞现象研究、磁化系数测量、霍尔效应研究、磁光实验、磁场退火、核磁共振、电子顺磁共振、生物学研究、磁性测量、磁性…

实力见“证”:Tapdata 技术创新与发展潜力广受认可

Tapdata 积极拥抱各种“不确定”,变中求新,只为呈现出更加好用的产品。 而 Tapdata 在专业领域不断深耕,持续打磨产品能力的同时,也收获了诸多来自外界的肯定,从用户到投资人,从生态伙伴到技术媒体以及官方…

【Mysql系列】Mysql之窗口函数

适用场景 窗口函数适用场景: 对分组统计结果中的每一条记录进行计算的场景下, 使用窗口函数更好, 注意, 是每一条;因为MySQL的普通聚合函数的结果(如 group by)是每一组只有一条记录。 准备数据 创建表 create table app_product (id bigint auto_in…

4次迭代,让我的 Client 优化 100倍!泄漏一个 人人可用的极品方案!

4次迭代,让我的HttpClient提速100倍 在大家的生产项目中,经常需要通过Client组件(HttpClient/OkHttp/JDK Connection)调用第三方接口。 尼恩的一个生产项目也不例外。 在一个高并发的中台生产项目中。有一个比较特殊的请求,一次…

「文档数据库之争」MongoDB和CouchDB的比较

MongoDB和CouchDB都是基于文档的NoSQL数据库类型。文档数据库又称mdocument store,通常用于存储半结构化数据的文档格式及其详细描述。它允许创建和更新程序,而不需要引用主模式。移动应用程序中的内容管理和数据处理是可以应用文档存储的两个字段。Mong…

积分球原理及积分球类型介绍

标题积分球标准型积分球LED积分球均匀光源便携式高亮度积分球均匀光源微光积分球均匀光源积分球均匀光源iSphere高光谱响应光学积分球其他分类积分球 积分球原理:由于球体内整涂有白色漫反射材料的空腔球体,球壁上开有采样口,当待测样品光源进入积分球的…

Java之关于String字符串笔试面试重点

目录 一.关于字符串的常量池 1.关于字符串产生的三种方式 2.关于字符串的常量池 3.直接赋值法和new的方式产生对象的区别 二.关于intern方法 1.情况一(已经包含) 2.情况二(已经包含) 3.情况三(未包含) 4.情况四 三.关于字符串的不可变性 1.了解字符串的不可变性 2.Str…

python+selenium使用webdriver启动chrome出现闪退现象解决

这两天发现之前开发的爬虫程序出问题了:谷歌浏览器出现打开立即闪退的现象,代码未修改过,检查也没有任何问题! 查看chrome浏览器发现版本更新了 ↑(点击chrome浏览器右上角三个点,最下面帮助→Google Chr…

[软件工程导论(第六版)]第9章 面向对象方法学引论(课后习题详解)

文章目录1. 什么是面向对象方法学?它有哪些优点?2. 什么是“对象”?它与传统的数据有何异同?3. 什么是“类”?4. 什么是“继承”?5. 什么是模型?开发软件为何要建模?6. 什么是对象模…

[软件工程导论(第六版)]第8章 维护(复习笔记)

文章目录8.1 软件维护的定义8.2 软件维护的特点8.3 软件维护过程8.4 软件的可维护性8.5 预防性维护8.6 软件再工程过程维护的基本任务:保证软件在一个相当长的时期能够正常运行软件工程的主要目的就是要提高软件的可维护性,减少软件维护所需要的工作量&a…

C语言编程规范 第一部分

、代码总体原则 1、清晰第一 清晰性是易于维护、易于重构的程序必需具备的特征。代码首先是给人读的,好的代码应当可以像文章一样发声朗诵出来。目前软件维护期成本占整个生命周期成本的40%~90%。根据业界经验,维护期变更代码的成本,小型系统…

Spring Batch ItemProcessor组件-默认处理器

目录 引言 概念 默认ItemProcessor ValidatingItemProcessor:校验处理器 ItemProcessorAdapter:适配器处理器 ScriptItemProcessor:脚本处理器 CompositeItemProcessor:组合处理器 自定义ItemProcessor处理器 转视频版 引…

图数据库中的 OLTP 与 OLAP 融合实践

在一些图计算的场景下,我们会遇到同时需要处理 OLTP 和 OLAP 的问题。而本文就给了一个 OLTP 与 OLAP 融合实践的指导思路,希望给你带来一点启发。 Dag Controller 介绍 Dag Controller 是 NebulaGraph 企业版的图系统,经过反复测试无误后已…

rabbitMq安装(小短文)--未完成

rabbitMq是在activeMq的基础上创造的,有前者的功能,比前者强,属于后来居上。系统环境:windows10首先下载相关软件Erlang,因为他是这个语言写的。https://www.erlang.org/downloads然后安装,并且弄到环境变量里验证是否…

Robot Framework自动化测试---元素定位

不要误认为Robot framework 只是个web UI测试工具,更正确的理解Robot framework是个测试框架,之所以可以拿来做web UI层的自动化是国为我们加入了selenium2的API。比如笔者所处工作中,更多的是拿Robot framework来做数据库的接口测试&#xf…