- 博客(40)
- 收藏
- 关注
原创 mmdetection族的github项目编译时候出现的bug
bug一:解决方法:g++ error cuda_runtime_api.h: No such file or directorybug二:安装基于mmdetection的solo时:unable to execute ':/usr/local/cuda-10.1/bin/nvcc': No such file or directory解决方法:安装 maskrcnn-benchmark: command ':/usr/local/cuda/bin/nvcc' failed wit...
2020-12-10 10:34:54
397
原创 使用ONNX来部署mmdetection中的模型
安装ONNXgithub:https://github.com/onnx/onnxconda install -c conda-forge protobuf numpysudo apt-get install protobuf-compiler libprotoc-devpip install onnxpip install pytest==2.8 nbval一开始我使用pip install pytestnbval,然后报出了如下的错误,然后我通过这句提示nbval 0.9..
2020-11-25 17:39:32
3578
1
原创 MSE,MAE和CE的区别
MSE和MAE的区别异常值MSE对异常值敏感,因为它的Cost是平方的,所以异常值的loss会非常大,下面的公式中y表示标注,a表示网络预测值。MAE对异常之不敏感,不妨设拟合函数为常数,那么MSE就相当于所有数据的均值(列出loss对c求导即可),而MAE相当于所有数据的中位数,所以会对异常值不敏感。优化效率MAE不可导而且所有的导数的绝对值都相同,优化时无法确定更新速度,MSE可导,有closed-form解,只需要令偏导数为0即可。如何选择因为MSE对异常值敏感
2020-11-22 15:03:18
2178
原创 GhostNet的主要代码理解及其注释
参考的知乎博客:CVPR 2020:华为GhostNet,超越谷歌MobileNet,已开源github:https://github.com/huawei-noah/ghostnet# 2020.06.09-Changed for building GhostNet# Huawei Technologies Co., Ltd. <foss@huawei.com>"""Creates a GhostNet Model as defined in:Ghos.
2020-11-19 19:16:24
1673
2
原创 深度学习 计算机视觉面试常考知识点
深度学习 计算机视觉面试常考知识点深度学习1. 你觉得batch-normalization过程是什么样的 知乎 Batch Normalization原理与实战
2020-11-12 11:22:49
1223
1
原创 编写cnchar-draw的demo批量识别笔画
先安装一个Node.js的环境,参照下面的博客,有报错直接根据报的错补装一些东西即可[Linux系統] Ubuntu 安裝 Node.js
2020-11-03 19:47:17
486
原创 跑通MMDetection的MaskRCNN
初次跑通MMDetection的MaskRCNNDemo惯例先跑一下demo,新建一个HellowMMDection.py,将这个脚本放在./demo中去:# Check Pytorch installationimport torch, torchvisionprint(torch.__version__, torch.cuda.is_available())# Check MMDetection installationimport mmdetprint(mmdet.__ver
2020-11-02 20:33:54
2339
3
原创 CUDA10.2+cudnn+Anaconda
默认显卡已经安装好1. CUDA10.2安装cudasudo sh cuda_10.2.89_440.33.01_linux.run 如果已经安装了显卡的话就将显卡那个选项给去掉(一下就装好了, 可能是时代变了)配置文件打开主目录下的 .bashrc文件添加如下路径,如果没有找到,则按Ctrl+H键显示隐藏文件。在文件的最后加上:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.2/lib64export.
2020-11-02 13:25:15
415
原创 标签平滑的pytorch的简单实现
标签平滑的pytorch的简单实现import torchimport torch.nn as nndef CrossEntropyLoss_label_smooth(outputs, targets, num_classes=10, epsilon=0.1): N = targets.size(0) # torch.Size([8, 10]) # 初始化一个矩阵, 里面的值都是epsilon / (num_classes - 1) smoothed_labels
2020-11-01 16:21:20
2890
转载 pytorch与c++
1. C++与Linux学习 经验总结:超详细的 Linux C/C++ 学习路线!大厂面试指南2.深度学习 与 C++ 的爱恨情仇 https://github.com/BIGBALLON/PyTorch-CPP window10下c++接口的opencv的安装与使用: OpenCV学习笔记(一) OpenCV简介及安装...
2020-10-30 17:51:48
465
原创 SiamMask阅读翻译笔记整理
SiamMask阅读翻译笔记整理我从作者的知乎文章中看到这篇文章的:[CVPR2019]我对Siamese网络的一点思考(SiamMask)论文链接:Fast Online Object Tracking and Segmentation: A Unifying Approach开源代码:https://github.com/foolwood/SiamMask之后阅读了该论文笔记SiamMask论文阅读: Fast Online Object Tracking and Segmenta...
2020-10-27 18:48:25
390
转载 Stacking学习策略
Stacking学习策略1. 交叉验证KFold交叉验证——sklearn.model_selection.KFold2. Stacking理论Stacking 模型融合原理详解3. Stacking代码实践集成学习中的 stacking 以及python实现
2020-10-23 22:14:54
322
转载 pytorch模型移动端部署
pytorch转ONNXhttp://pytorch123.com/FourSection/ONNX/或许之后要用到安卓的工具https://cloud.tencent.com/developer/article/1619905ONNX(Pytorch) 模型转换为 TNN 模型https://github.com/Tencent/TNN/blob/master/doc/cn/user/onnx2tnn.md...
2020-10-21 10:47:23
2215
原创 目标检测方面的面试题
目标检测怎么提升召回率1 提高采样密度(特征/图像增强、增多预设proposal .. )。2 在对于误检不敏感任务中降低分类阈值。3 数据的增广,合成新的数据。4 使用聚类来设置anchor的大小和比例,使得边框有一个好的初始化。5 在测试的时候降低分类的阈值。6 使用基于IOU, 或者位置边框的损失函数,拉开不匹配的,拉近匹配的框。...
2020-09-24 16:29:47
2555
转载 目标检测的标准的NMS
# INPUT:所有预测出的bounding box (bbx)信息(坐标和置信度confidence), IOU阈值(大于该阈值的bbx将被移除)for object in all objects: (1) 获取当前目标类别下所有bbx的信息 (2) 将bbx按照confidence从高到低排序,并记录当前confidence最大的bbx (3) 计算最大confidence对应的bbx与剩下所有的bbx的IOU,移除所有大于IOU阈值的bbx (4) 对剩下的bbx,循环执行(2)和(3)直.
2020-09-10 20:27:06
191
原创 LeetCode刷题 插分数组技巧
LeetCode刷题 插分数组技巧具体方法参考labuladong的论那些小而美的算法技巧:差分数组/前缀和1109. 航班预订统计方法一: 使用hashmap来辅助的暴力遍历叠加解法(超时)class Solution(object): # 用hash辅助的暴力法, 但是会超时 def corpFlightBookings(self, bookings, n): """ :type bookings: List[List[int]]
2020-09-10 16:19:08
222
原创 剑指offer刷题记录
剑指offer刷题记录2020/09/02链表中倒数第k个结点递归法:链表的后续遍历,并用self.k来记录倒数节点的位置,找到了就返回找到的节点,否则返回None# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def __init__(self): .
2020-09-02 19:41:26
154
原创 Leetcode刷题(25) 树的问题
Leetcode刷题(25) 树的问题剑指 Offer 68 - II. 二叉树的最近公共祖先# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution(object): def l
2020-08-30 23:01:04
163
原创 Leetcode刷题(24) DP Table斜着遍历, 且只用Table的上半三角的动态规划
Leetcode刷题(24) DP Table斜着遍历, 且只用Table的上半三角的动态规划博弈问题参考labuladong的动态规划之博弈问题877. 石子游戏class Solution(object): def stoneGame(self, piles): """ :type piles: List[int] :rtype: bool """ n = len(piles) dp
2020-08-19 10:53:25
327
原创 牛客华为机试
明明的随机数和Leetcode的移动零很相似import sysdef main(): # sys.stdin = open('input.txt', 'r') lines = sys.stdin.readlines() # 第一组数的起点(该组数有几个) start = 0 for i, num in enumerate(lines): if start == i: nums = [] ...
2020-08-14 21:55:30
589
原创 Leetcode刷题(23) BFS系列
Leetcode刷题(23) BFS系列773. 滑动谜题该为python的实现方式,主要参考labuladong的益智游戏克星:BFS暴力搜索算法import collectionsimport copyclass Solution(object): def slidingPuzzle(self, board): """ :type board: List[List[int]] :rtype: int """
2020-08-14 12:16:30
153
原创 Leetcode刷题(9) 双指针之滑动窗口系列(多用于字符串匹配)
Leetcode刷题(5)76. 最小覆盖子串方法: 滑动窗口, 双指针class Solution(object): def minWindow(self, s, t): """ :type s: str :type t: str :rtype: str """ # 维护两个字典,其中都记录着字符和对应的频数 windows = dict() # 窗口内的need中包含的
2020-08-14 12:13:59
184
转载 Leetcode刷题(22) 以基本数据结构的高级数据结构及其API
146. LRU缓存机制class ListNode: def __init__(self, key=None, value=None): self.key = key self.value = value self.prev = None self.next = Noneclass LRUCache: def __init__(self, capacity): self.capac
2020-08-12 14:52:53
126
原创 牛客刷题(网易)
牛牛找工作import sys# 利用HashMap来将任务升维度来降低时间复杂度def main(): # 读取所有的行 lines = sys.stdin.readlines() # 将输入转化为一个二维数组,每一行都是其中的一个一维数组 lines = [l.strip().split() for l in lines if l.strip()] # 获得工作的数量和工人的数量 n, m = int(lines[0][0]), int(line
2020-08-07 12:33:18
197
原创 Leetcode刷题(21) 链表反转系列
Leetcode刷题(21) 链表反转系列具体方法参考labuladong的如何k个一组反转链表,该比较是用python的实现25. K 个一组翻转链表reverse(a, b)使用的是迭代的方法,在开区间[a, b)中反转链表,reverseKGroup(a, k)使用的是递归的方法。# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# s
2020-07-21 09:01:04
127
原创 Leetcode刷题(20) 回溯实践
Leetcode刷题(19) 回溯实践参考buladong的回溯算法最佳实践:括号生成22. 括号生成class Solution(object): def generateParenthesis(self, n): """ :type n: int :rtype: List[str] """ left = n right = n track = [] res
2020-07-12 21:26:04
177
原创 Leetcode刷题(19) 哈希表老辅助了
Leetcode刷题(18) 哈希表老辅助了在数组问题中,哈希表常常可以用空间复杂度换时间复杂度1. 两数之和参考labuladong的TwoSum问题的核心思想class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """
2020-07-10 19:48:00
237
原创 Leetcode刷题(18) 最大自序和, 最长递增子序列,最大....
Leetcode刷题(17) 最大自序和, 最长递增子序列这两道题较为类似,dp数组的定义比较特别,转移方程也很相似。方法参考labuladong的动态规划设计:最大子数组和动态规划设计:最长递增子序列53. 最大子序和class Solution(object): def maxSubArray(self, nums): """ :type nums: List[int] :rtype: int """
2020-07-08 19:37:25
191
原创 Leetcode刷题(17) 双指针系列
Leetcode刷题(16) 双指针系列快慢指针系列(泛指)参考labuladong的如何去除有序数组的重复元素26. 删除排序数组中的重复项# 双指针(快慢指针)class Solution(object): def removeDuplicates(self, nums): """ :type nums: List[int] :rtype: int """ n = len(nums)
2020-07-07 21:53:43
145
翻译 (论文阅读)NMS by Representative Region: Towards Crowded Pedestrian Detection by Proposal Pairing
2020CVPR的密集行人检测论文 NMS by Representative Region: Towards Crowded Pedestrian Detection by Proposal Pairing摘要: 尽管最近在行人检测方面已经取得了重大进展,但是在拥挤场景中的行人检测仍然具有挑战性。行人之间的严重遮挡给标准非最大抑制(NMS)带来了巨大挑战。交并比(IoU)的阈值相对较低会导致丢失高度重叠的行人,而较高的阈值则会带来大量误报。为避免这种困境,本文提出...
2020-07-06 10:09:22
3026
原创 Leetcode刷题(11) 背包问题系列(动态规划)
Leetcode刷题(11) 背包问题系列416. 分割等和子集参考labuladong的经典动态规划:0-1 背包问题,经典动态规划:0-1背包问题的变体# 0-1背包问题的变体class Solution(object): def canPartition(self, nums): """ :type nums: List[int] :rtype: bool """ size = len(nums)
2020-07-04 19:13:44
635
原创 Leetcode刷题(16) 回文链表系列
Leetcode刷题(16) 回文链表系列具体方法参考: labuladong的如何判断回文链表, 以下python的重写234. 回文链表# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = None# 单链表的后续遍历class Solution(object):
2020-07-02 22:23:48
158
原创 Leetcode刷题(15) 双字符串的问题
Leetcode刷题(15) 双子串的问题多用双指针和动态规划1143. 最长公共子序列具体方法参考labuladong经典动态规划:最长公共子序列方法一: 自底向下的递归(双指针)class Solution(object): def longestCommonSubsequence(self, text1, text2): """ :type text1: str :type text2: str :rtype
2020-07-01 22:02:51
174
原创 Leetcode刷题(14) 高楼扔鸡蛋
Leetcode刷题(14) 高楼扔鸡蛋具体方法参考labuladong的经典动态规划:高楼扔鸡蛋动态规划问题887. 鸡蛋掉落方法一: 动态规划,线性搜索 (python超时)class Solution(object): def superEggDrop(self, K, N): """ :type K: int :type N: int :rtype: int """ # 备忘
2020-06-30 23:02:30
607
原创 Leetcode刷题(13) 滑动窗口最大值(单调队列专用)
Leetcode刷题(13) 滑动窗口最大值(单调队列专用)具体方法参考labuladong的特殊数据结构:单调队列,python重写239. 滑动窗口最大值import collections# 创建一个单调队列的类, 队头大--->队尾小class MonotonicQueue(object): def __init__(self): # 创建一个双向list self.queue = deque() def getmax(sel
2020-06-30 22:01:32
183
原创 Leetcode刷题(12) 单调栈的应用
Leetcode刷题(12)Next Greater Element(单调栈专用)具体方法参考: labudadong的特殊数据结构:单调栈该笔记是在做LeetCode的时候使用python的重写版本496. 下一个更大元素 I# Next Greater Number 一般使用单调栈来解答class Solution(object): def nextGreaterElement(self, nums1, nums2): """ :type
2020-06-29 22:23:00
177
原创 Leetcode刷题(11) 打家劫舍系列问题
Leetcode刷题(11)打家劫舍系列问题方法参考labuladong的实现团灭 LeetCode 打家劫舍问题,并python重写了一遍198. 打家劫舍方法一: 递归+备忘录class Solution(object): def rob(self, nums): """ :type nums: List[int] :rtype: int """ # 有多少户人家 .
2020-06-28 21:46:02
257
原创 CrowdHuman密集行人数据集转换代码(可任意选择某些类别的框)
CrowdHuman密集行人数据集转换代码转换顺序: (odgt--->voc--->coco)1. odgt--->vocfrom xml.dom import minidomimport cv2import osimport jsonfrom PIL import Imageroadlabels = "./Annotations/"roadimages = "./Images/"fpath = "annotation.odgt"def load_fun
2020-06-27 14:21:28
2678
17
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人