Map深度学习

【DL】P, AP, mAP Backto ML Index 这几个评价标准, 通常都是用在 CV 领域. P: Precision 精度 一个模型的准确率指的是对 一张图像而言, 正确预测的某个类别的数量除以这张图像中这个类别的总数 PC=N(TruePositives)CN(TotalObjects)CP_C = \frac {N(\text{TruePositives})_C}{N(\text{TotalObject... 阅读详情

Map

Map是一个键值对的集合,和object类似,Map作为构造函数,可以通过全局对象获取到。需要通过new操作创建实例对象,直接调用会报错。Map构造函数接受一个iterable类型的函数,用来初始化Map。

      var m = new Map([
        [1, "1"],
        ["hello", "world"],
      ]);
      console.log(m);
      var n = Map();
      console.log(n);

在这里插入图片描述

和Object的区别

1.object的key只能是字符串类型和symbol类型,Map的key可以是任意javascript类型
2.Map的key是有序的,迭代时按照插入key的顺序,object的key是无序的,es6以后,object的key也有序的了
3.在频繁的增删键值对的情况下,Map的表现更好,object没有做优化

Map对象的属性

size:用来获取Map中的条目数量
Map对象的方法
clear:清空对象中的条目
delete:删除特定的条目
get:获取特定的条目
has:检测是否包含特定的条目
set:设置特定的条目,如果已经包含,就更形该条目

迭代Map对象

entries(): 返回包含[key,value]的迭代器
keys():返回包含key的迭代器
values(): 返回包含value的迭代器
forEach():传入迭代处理函数遍历所有条目
for…of循环:和entires()的函数表现类似,循环内部对迭代器做了处理

注意:
迭代Map对象的过程中,新增的键值对可以被访问到,已经访问过的键值对,删除后再次添加进来的,会被再次访问,删除没有访问过的键值对,将不会被访问到。

set vs Array/Map vs Object性能对比

var m = new Map([
        [1, "1"],
        ["hello", "world"],
      ]);
      console.log(m);

      let map = new Map();
      //   存储对象,相同键值对可以去重
      map.set(1, "1");
      map.set(1, "2");
      map.set(2, "3");
      map.set("x", "6");
      console.log(map);

      console.log(map.get(1), map.get(2));

      map.delete(1);

      console.log(map.has(1));

      //   遍历
      for (let entries of map) {
        //entries 是[k,v]数组
        console.log(entries);
      }

      //实际开发中用于Map只存在于js中,不利于数据传输,需要进行转换
      let arr = Array.from(map);
      console.log(arr);

      //转换成对象
      let obj = Object.fromEntries(map);
      console.log(obj);

      //   性能对比
      let obj2 = {};
      let map2 = new Map();

      function each(cb) {
        for (let i = 0; i < 1000000; i++) {
          cb(i + "_", i);
        }
      }

      console.time("map");
      each((key, val) => {
        map2.set(key, val);
      });
      each((key, val) => {
        map2.delete(key);
      });
      console.timeEnd("map");

      console.time("obj");
      each((key, val) => {
        obj2[key] = val;
      });
      each((key, val) => {
        delete obj2[key];
      });
      console.timeEnd("obj");

      //   数组查找快,链表增删快,Map结合数组+链表的优势实现高性能增删改查

Map实现

      let count = 8;
      function MyMap() {
        //构造器
        this.initStore();
      }

      MyMap.prototype.initStore = function () {
        this.store = new Array(count); //创建一个长度为8的数组用来存储(8个房间)
        for (let i = 0; i < this.store.length; i++) {
          this.store[i] = {
            next: null,
          };
        }
      };
      MyMap.prototype.set = function (k, v) {
        // 通过key计算余数8,取得房间号
        let roomIndex = this.hash(k);
        // 取出链表头
        let queue = this.store[roomIndex];
        // 找元素
        while (queue.next) {
          // 不断地向下找
          if (queue.next.key === k) {
            // 覆盖
            queue.next.value = v;
          } else {
            queue = queue.next;
          }
        }
        //第一次执行到这里就是第一个数据 k:1
        //第二次执行到这里就是末尾的一个
        queue.next = {
          next: null,
          key: k,
          value: v,
        };
      };
      MyMap.prototype.get = function (k) {
        // 通过key计算余数8,取得房间号
        let roomIndex = this.hash(k);
        // 取出链表头
        let queue = this.store[roomIndex];
        queue = queue.next;

        while (queue) {
          if (queue.key === k) {
            return queue.value;
          } else {
            // 指针下移
            queue = queue.next;
          }
        }
        return undefined;
      };
      MyMap.prototype.hash = function (k) {
        return k % count;
      };
      MyMap.prototype.has = function (k) {
        return this.get(k) !== undefined;
      };
      let m = new MyMap();
      m.set(1, "a");
      m.set(2, "b");
      m.set(3, "c");
      m.set(4, "d");
      m.set(5, "e");
      m.set(6, "f");
      m.set(7, "g");
      m.set(8, "h");
      m.set(9, "k");

      console.log(m);
      console.log(m.get(1), m.get(3), m.get(9));

在这里插入图片描述

深度学习图像处理(分类or检测)中结果的评价方法-mAP简介 多标签图像分类(Multi-label Image Classification)任务中图片的标签不止一个,因此评价不能用普通单标签图像分类的标准,即mean accuracy,该任务采用的是和信息检索中类似的方法—mAP(mean Average Precision)。mAP虽然字面意思和mean accuracy看起来差不多,但是计算方法要繁琐得多。 P-R曲线的绘制 阅读详情

相关推荐

深度学习评价标准:TP、FN、FP、TN、AP、MAP

深度学习评价标准:TP、FN、FP、TN、AP、MAP 1、TP、FN、FP、TN TP:实际正类预测为正类的数量;FN:实际正类预测为负类的数量 FP:实际负类预测为正类的数量;TN:实际负类预测为负类的数量 T=True,F=False,表示是否预测正确;P=Positive,N=Negative,表示预测结果是正类还是负类。 精确率: ;召回率: ;准确率: ...

clover_my的博客 9726

【深度学习小常识】什么是mAP?

目录 一、mAP相关概念 1、正例与负例 2、P(精确率) 3、R(召回率) 4、ACC(准确率) 5、AP(平均精确度) 6、示例 二、mAP 1、mAP简介 2、P—R曲线 学习深度学习,总会有各种各样的概念,对于刚入门的小白来说,真的是越看越迷糊。比如我们今天要说的,什么是mAP?于是我问了一下度娘… 看完这个之后,我的表情是这样的 我们看相关论文的时候,很明显啊,这个东东和地图有什么关系? 所以到底什么是我们在深度学习论文中所说的mAP呢? 一、mAP相关概念 首先要给大家介绍几个常见的模型评

1万+

深度学习模型评估指标:mAP计方法与voc_eval.py源码解读

voc_eval.py源码解读1.mAP基本计算原理2.源码分析voc_eval函数parse_rec函数voc_ap函数3.precision-recall图分析 我们在上一篇文章《YOLOv3计算自己数据集训练模型的mAP》中介绍了使用valid计算出来验证集的检测结果结果,存于results文件,然后voc_eval函数计算mAP的操作方法。但是voc_eval函数的计算原理是什么?作者是如何通过代码实现的呢?本文尝试进行一个分析介绍。 1.mAP基本计算原理 mAP是mean Average Pre

北溟客的博客 2809

【深度学习】mAP (Mean Average Precision)

【深度学习】mAP (Mean Average Precision)

JNing 6万+

深度学习中的mAP

我们在评价一个模型好坏的时候,经常会用到mAP,下面整理下对这个概念的理解, 1.TP TN FP FN 首先是TP TN FP FN的概念。 T或者N代表的是该样本是否被分类分对,P或者N代表的是该样本被分为什么 TP(True Positives):意思我们倒着来翻译就是“被分为正样本,并且分对了”, TN(True Negatives):意思是“被分为负样本,而且分对了”, FP(False Positives):意思是“被分为正样本,但是分错了”, FN(False Negativ

C/C++、嵌入式开发、深度学习算法、模型部署与推理优化 8528

OpenBmc开发2:构建开发环境

编译环境VMware + ubuntu 18.04 编译环境构建:参考OpenBmc开发1:构建开发环境 1、打开一个Ternimal,进入openbmc目录下 2、查看有哪些不同的编译配置 find meta-* -name local.conf.sample 可以看到如下编译配置 3、生成编译配置 插入TEMPLATECONF,上边查询到的配置有很多,但是有一些...

master 2万+

【深度学习】——模型评估指标MAP计算&实例计算

目录 理论知识: 推导: 理论知识: 参考up主《睿智的目标检测20——利用mAP计算目标检测精确度》 推导:

python_AI_fans的博客 5595

CH341的I2C流模式(StreamI2C)到底怎么用?从EEPROM读写到自定义设备,一篇讲清参数配置逻辑

本文详细解析了CH341的I2C流模式(StreamI2C)的使用方法,从EEPROM读写到自定义设备的参数配置逻辑。通过深入分析I2C协议基础、StreamI2C参数映射关系及典型设备配置示例,帮助开发者快速掌握StreamI2C的应用技巧,解决实际开发中的常见问题。

weixin_30932215的博客 452

深度学习——mAP 计算

0、引言 本文仅作为学习mAP相关知识点的记录,主要参考博文为Bubbliiiing大佬所创作的以及百度飞桨相关在线课程,在此表示感谢 睿智的目标检测20——利用mAP计算目标检测精确度 1、IoU(交并比) 在中学数学中,我们学习了交集、并集,而在深度学习中,使用交并的概念设计了交并比IoU用以评估预测质量,简单来说就是计算预测框与标注框的交集面积、并集面积,当IoU值越大时,则表明预测结果与标注结果越接近。公式如下图所示: 2、Precision(准确率) T是True; F是False; P是

u014798590的博客 3974

多智能体强化学习之值函数分解:VDN、QMIX、QTRAN系列优缺点分析(转载)

关于多智能体强化学习中VDN,QMIX,QTRAN三个算法再值分解方向的研究成果。三个算法呈递进关系

qq_33328642的博客 5861

从零到一:手把手教你用Python搭建医学影像识别CNN模型(附完整代码)

本文详细介绍了如何使用Python和TensorFlow/Keras从零开始构建一个医学影像识别的CNN模型,涵盖数据预处理、模型架构设计、训练调优及部署全流程。通过实战案例和完整代码,帮助开发者快速掌握深度学习在医学影像识别中的应用,特别适合医疗AI领域的初学者和研究者。

spark7igniter的博客 200

【深度学习】——如何提高map值

本文是在faster_rcnn模型的基础上进行map的提高 map计算代码clone于: 这个是用来绘制mAP曲线的。https://github.com/Cartucho/mAP 这个是用来获取绘制mAP曲线所需的txt的https://github.com/bubbliiiing/count-mAP-txt map ...

python_AI_fans的博客 1万+

倾斜摄影与地面激光点云融合高精度建模研究

本文研究了倾斜摄影与地面激光点云融合精细化建模技术,并通过相应的源代码实现了建模过程。该方法将倾斜摄影和激光扫描相结合,能够获得高精度的三维建模结果,为相关领域的研究和应用提供了有力支持。近年来,倾斜摄影和激光扫描技术的快速发展为高精度三维建模提供了新的机遇和挑战。本文针对倾斜摄影与地面激光点云融合建模这一前沿领域展开研究,旨在通过相应的源代码实现精细化的建模过程。同时,使用激光扫描仪进行地面激光扫描,获取地面的点云数据。经过数据融合和精细化建模处理后,我们获得了高精度的三维建模结果。

LpmShell的博客 1248

深度学习mAP

mAP,其中代表P(Precision)精确率。AP(Average precision)单类标签平均(各个召回率中最大精确率的平均数)的精确率,mAP(Mean Average Precision)所有类标签的平均精确率。 1.准确率(accuracy)、精确率(Precision)、召回率(Recall) 准确率(accuracy),精确率(Precision)和召回率(Recall)是信...

Rain 1万+

【DRAM存储器五十四】LPDDR5介绍--PHY简介和LPDDR5训练流程

简述LPDDR5 PHY的基本功能和训练流程简介

highman110的博客 910

【XCharts插件】5-2、从Excel中读取数据并更新图表案例(v3.0)

XCharts插件是一款基于UGUI的功能强大、易用、参数可配置的数据可视化图表插件。【Unity3D插件】XCharts插件完全教程《全网最全》-专栏文章目录【XCharts插件】5-1、从Json中读取数据并更新图表案例(v3.0)介绍了如何从Json文件中读取数据,并更新表格,这篇文章就介绍如何从Excel中读取数据,并更新图表吧。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 1275

【深度学习】——性能指标(ROC、MAP、AUC等)

一、分类任务性能指标 1、混淆矩阵 2、精确度ACCURACY = 正确数/总数 3、查全率(RECALL)——真正正样本中预测正确的比例 4、查准率(precision)——预测为正样本中的预测正确的比例 5、F-score——对查准率和查全率进行结合的一个参数 6、ROC曲线与AUC 1) 真正率:TPR——RECALL 2)假正率:FPR = FP /(TN+FP) 3)AUC——由TPR-FPR曲线(ROC)包围的面积 7、P-R曲线与AP 1)P-R曲线——Prec

python_AI_fans的博客 1万+

05 SAP CPI 访问第一个CPI接口

其中的clientid的值可作为Basic验证的用户名,clientsecret的值可作为Basic验证的密码。点击SEND按钮,可看见返回状态为200 OK。在04中,我们得到TOKEN令牌。POSTMAN向下滚动。点击按钮获取token。

SAP CPI 663

深度学习中Map的概念

mAP定义及相关概念 P precision,即 准确率 。 解释:10张图片,每张都有狗、猫,识别到里面有狗也有猫,两者皆有,准确率就高 R recall,即 召回率 。 解释:10张图片,每张都有狗、猫,识别到有狗,召回率就高 mAP: mean Average Precision, 即各类别AP的平均值 AP: PR曲线下面积,后文会详细讲解 PR曲线: Precision...

不爱读书的小孩-博客 4165

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

深度学习: mAP (Mean Average Precision)

原文:http://blog.youkuaiyun.com/jningwei/article/details/78955536深度学习: mAP (Mean Average Precision)版权声明:转载请注明出处 http://blog.youkuaiyun.com/JNingWei/article/details/78955536mAP 概念Pprecision,即 准确率 。Rrecall,即 召回率 。PR曲...

jacke121的专栏 4385

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

深度学习中mAP的含义

转自:https://blog.youkuaiyun.com/shuiyixin/article/details/86349643 一、mAP相关概念 首先要给大家介绍几个常见的模型评价术语, 1、正例与负例 现在假设我们的分类目标只有两类,计为正例(positive)和负例(negtive),然后我们就能得到如下的四种情况: (1)True positives(TP):被正确地划分为正例的个数,即...

martinkeith的博客 9523

深度学习 Recall Precision mAp 计算方法

深度学习 Recall Precision mAp 计算方法

OpenCV 图像辨识的博客 595

CNN中Feature Map可视化:探索深度学习的黑箱

首先,我们需要明确一下什么是Feature Map。在CNN中,每一层卷积操作都会生成多个二维矩阵,这些矩阵就被称为Feature Maps。简单来说,Feature Map就是输入数据经过卷积核处理后得到的结果。通过观察不同层次的Feature Maps,我们可以直观地看到模型是如何逐步抽象出高层次语义信息的。

cda2024的博客 1534
上一篇: react学习-useReducer
下一篇: react学习-redux快速体验
大兵的猫
博客等级 码龄7年 364粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大兵的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值