- 博客(81)
- 收藏
- 关注
原创 jupyter lab安装以及常用操作
conda create -n lab python=3.7conda activate labpip install jupyterlab
2021-08-31 23:02:49
189
原创 YOLO-V4 Pytorch版本训练自建数据集和预测
1. 程序下载本文程序核心部分完全参考开源代码:https://github.com/WongKinYiu/PyTorch_YOLOv4 。只是从一种学习的角度去写了我的代码仓库,在基础上增加了一些常用的脚本(会持续更新)。我的仓库地址为:https://github.com/hx-0614/yolov4-pytorch-learinggit clone https://github.com/hx-0614/yolov4-pytorch-learing.git其中我新增的脚本文件,会在README.
2021-05-31 18:58:17
1990
29
原创 YOLO-V4理解
参考:https://www.flyai.com/article/778https://blog.csdn.net/justsolow/article/details/106401065创新点:(1)输入端:Mosaic数据集,cmBN,SAT自对抗训练。(2)BackBone:CSPDarknet 53,Mish激活函数,Dropblock。(3)Neck:SPP,FPN+PAN结构。(4)Prediction:GIou Loss,DIou Loss。1.OD相关结构Object Detection
2021-05-09 19:52:37
486
原创 YOLO-V2理解
YOLO-V2在YOLO-V1基础上改进得到YOLO-V2,可以在理解YOLO-V1的基础上去学习YOLO-V2,因此这里主要介绍相对于V1版本的改进点。主要改进点为三点:(1)提出DarkNet网络的雏形。(2)加入Anchor思想。(3)多尺度训练,多阶段训练(在不同部分采用不同的预训练策略)。...
2021-05-09 19:49:17
140
原创 YOLO-V1理解
YOLO-V1论文:"You Only Look Once:Unified, Real-Time Object Detection"论文地址:https://arxiv.org/abs/1506.026401. YOLO的核心思想利用整张图作为网络的输入,直接在输出层回归 bounding box 的位置和 bounding box 的类别。2. YOLO-V1算法原理YOLO-V1输入图像默认尺寸为 。利用卷积神经网络进行特征提取,输出图像的尺寸固定为,然后经过卷积层和全连接层,输出特征.
2021-05-09 13:47:25
331
原创 1.1. 删除排序数组中的重复项(数组)
class Solution { /*利用双指针思路*/public: int removeDuplicates(vector<int>& nums) { if (nums.size() == 0) return 0; int slow = 0; for (int fast = 1; fast < nums.size(); fast++) { if (nums[slow
2021-04-06 22:20:17
79
原创 二、玩转双指针
二、玩转双指针双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。也可以延伸到多个数组的多个指针。若两个指针指向同一数组,遍历方向相同且不会相交,则也称为滑动窗口(两个指针包围的区域称为窗口),经常用于区间搜索。若两个指针指向同一数组,但是遍历方向相反,则可用来进行搜索,待搜索的数组往往是排好序的。1 Two sum(167)https://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted/submissions/数组
2021-02-03 19:21:23
163
原创 一、贪心算法
一、贪心算法保证每次操作都是局部最优的,从而使最后得到的结果是全局最优的。1 分配问题1.1 Assign Cookies(Easy) 455.分发饼干https://leetcode-cn.com/problems/assign-cookies/题解:饥饿度最小的孩子最容易吃饱,所以先考虑这个孩子,把大于等于这个孩子饥饿度的、且大小最小的饼干给这个孩子。所以先对孩子和饼干按照从小到大排序然后循环筛选。class Solution {public: int findContentCh
2021-01-30 19:52:37
152
1
原创 1 递归
1 递归参考:https://mp.weixin.qq.com/s/mJ_jZZoak7uhItNgnfmZvQ首先要读懂题->寻找到递归结束到条件->判断递归到规律。1.1 斐波那契数列#include <iostream>using namespace std;/*斐波那契数列的是这样一个数列:1、1、2、3、5、8、13、21、34….,即第一项 f(1) = 1,第二项 f(2) = 1…..,第 n 项目为 f(n) = f(n-1) + f(n-2)。求
2021-01-13 11:08:25
117
原创 9. 回文数
9. 回文数比较暴力的解法,把反转后的数字求出来(有可能超过int的边界值,所以用long定义)。然后和原始的数进行判断。class Solution {public: bool isPalindrome(int x) { if (x < 0) return false; if (x < 10) return true; long num = 0; int old = x; while (x){
2021-01-10 13:56:10
88
原创 8. 字符串转换整数 (atoi)
8. 字符串转换整数 (atoi)主要边界,然后进行循环。class Solution {public: int myAtoi(string s) { int length_s = s.size(), i = 0; // i代表索引 if (length_s == 0) return 0; int f = 1, upperboundary = INT_MAX / 10; // f:1代表+,-1代表- int res = 0;
2021-01-10 13:42:03
91
原创 7. 整数反转
7. 整数反转https://leetcode-cn.com/problems/reverse-integer/这里注意一下第6行和第10行,因为10行的结果为加之后的结果所以是和31次方的边界值对比,6行为最后结果×10之前的结果,所以要和31次方的边界值去掉个位(除以10)的值进行比较。class Solution {public: int reverse(int x) { int res = 0; while (x){ if (re
2021-01-10 12:55:55
91
原创 6.Z 字形变换
6.Z 字形变换采用了一个hash的思想,比如要求三行,可以理解为最后的结果为三个字符串连接起来。![image.png](https://img-blog.csdnimg.cn/img_convert/303aaf50bad9b49673eb9af6aa6a666e.png#align=left&display=inline&height=87&margin=[object Object]&name=image.png&originHeight=87&or
2021-01-09 20:34:35
109
原创 5. 最长回文子串
5. 最长回文子串class Solution {public: string longestPalindrome(string s) { int length_s = s.size(); if (length_s == 0){ return s; } int dp[length_s][length_s], maxlength = 1, begin = 0; for (int i = 0; i
2021-01-09 20:33:03
86
原创 4. 寻找两个正序数组的中位数
4. 寻找两个正序数组的中位数https://leetcode-cn.com/problems/median-of-two-sorted-arrays/参考了合并两个有序链表的思想。class Solution {public: double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { int length1 = nums1.size();
2021-01-09 20:32:21
85
原创 3.无重复字符的最长子串
3.无重复字符的最长子串https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/submissions/参考连接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/solution/longest-substring-without-repeating-characters-b-2/个人理解:相
2021-01-09 20:31:39
72
原创 2.两数相加(中等)
2.两数相加(中等)https://leetcode-cn.com/problems/add-two-numbers/个人理解:(1)两个链表有先结束和后结束。(2)相加是有进位的如果两个链表最后两数相加有进位,则需要把这个进位的值考虑进去,需要在循环判断的时候考虑这一点。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNo
2021-01-09 20:30:19
96
原创 ubuntu 16.04 相关配置
1:ssh远程链接https://blog.csdn.net/u013262823/article/details/893292562:解压https://www.cnblogs.com/jngwl/articles/10565736.html3:chmod修改权限https://www.cnblogs.com/pinganzi/p/4583647.htmlhttps://blog.csdn.net/xiao_yuanjl/article/details/810692724:an
2020-06-22 21:55:07
242
原创 pytorch yolov3源码复现。
因为平时主要研究检测,所以自己根据已经开源的pytorch的yolov3代码,进行了复现,主要代码并没有更改,而是从一种学习和理解的角度去复现,增加了一些备注(如果问题,欢迎大家指出)。本文章的开源地址:参考的开源代码及相关博客:(1)https://github.com/ultralytics/yolov3(2)https://blog.csdn.net/sinat_27634939/article/details/89884011一:代码文件结构1:加载文件为了便于自己.
2020-05-14 16:14:43
1190
1
原创 解决mac 安装 lightgbm
https://blog.csdn.net/weixin_41843918/article/details/85047492 安装步骤,(正确步骤和错误步骤的区别)。https://www.cnblogs.com/canglangxiaoyue/articles/3329898.html这个是遇到了一个问题-bash: make: command not found,其实mac自带的xcod...
2020-04-26 02:59:58
218
原创 正确率能很好的评估分类算法么
正确率高不并不能完全代表一个算法就是好的。比如,对某个区域进行地震预测,地震分类属性为0:不发生地政,1:发生地震。其中不发生地震的概率非常高,对于分类器而言,如果分类器不加思考,对每一个测试样例对类别都划分为0,达到99%的正确率,但是当真正发生地震时,这个分类器毫无察觉。所以99%的正确率的分类器并不是我们想要的。 出现这种现象的原因主要是数据分布不均衡,类别为1的数据太少,错分了类...
2020-04-14 14:16:42
345
原创 机器学习的不同学习方式
1:监督学习(1)监督学习是使用已知正确答案的示例来训练网络。已知数据和其一一对应的标签,训练一个模型,将输入数据映射到标签的过程。(2)监督学习常见的应用场景为分类问题和回归问题。2:无监督学习(1)在无监督学习中,数据没有被特别标识,适用于存在数据集,但是无标签的情况。训练一个模型可以推断出数据的一些隐藏的结构。3:半监督学习(1)半监督学习使用大量的未标记...
2020-04-13 20:40:07
771
原创 神经网络构建
import torchfrom torch import nnimport torch.nn.functional as F# 首先建立一个全连接的子module,继承nn.Moduleclass Linear(nn.Module): def __init__(self, in_dim, out_dim): super(Linear, self).__init__() # 调...
2020-04-03 19:26:17
182
原创 自动求导与计算图
首先需要知道梯度,梯度下降等相关概念,这里传送门:https://www.jianshu.com/p/17191c57d7e9import torchdef test(): """ requires_grad表示是否对该tensor进行求导,默认为False; 设置为True则需要求导,并且依赖于该Tensor的之后的所有节点都需要求导。 其中: grad:该tenso...
2020-04-03 17:16:34
202
原创 面试题18:删除链表节点
"""title:删除链表的节点introduce:给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。注意:此题对比原题有改动示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 ->...
2020-04-02 20:57:58
208
原创 面试题17:打印从1到最大到n位数
次题其实考察的是大数问题,但是我目前是用python3进行编程,在python中没有数字的限制,所以会出现直接循环的效率比用大数的方法要快,但是这里还是建议大家先思考大数方法:其实就是输入n就定义一个n长度的数组,每一个位置代表真实数字对应的位置,然后分辨从0-9循环通过字符串进行转换,防止超出传统的int或者long的最大范围"""title:打印从1到最大的n位数introduce...
2020-03-30 21:35:28
146
原创 numpy的copy和深copy
import numpy as np a = np.arange(4, dtype=float)print(a)b = ac = ad = ba[0] = 0.3print(a)print(b)print(c)print(d)print(b is a)b = a.copy() # 深度拷贝a[2] = 0.4print(a)print(b)print(...
2020-03-29 21:03:51
147
原创 numpy的array分割
import numpy as np a = np.arange(12).reshape((3, 4))print(a)print("纵向分割(按照列进行分割):\n", np.split(a, 2, axis=1))print("横向分割(按照行进行分割):\n", np.split(a, 3, axis=0))print("不等量的分割:\n", np.array_spli...
2020-03-29 21:03:08
151
原创 numpy和array合并
import numpy as npa = np.array([1, 1, 1])b = np.array([2, 2, 2])print("a:\n", a)print("b:\n", b)c = np.vstack((a, b))print("a和b上下合并:\n", np.vstack((a, b))) # vertical stack上下合并print(c.shape...
2020-03-29 21:02:35
124
原创 numpy的索引
import numpy as np a = np.arange(3, 15)print(a)print("找到a矩阵的第三个值:", a[2])a = a.reshape(3, 4)print("矩阵a变成(3, 4):\n", a)print("找到索引第2行第3个:", a[1][2], a[1, 2]) # 两种表示方式print("第二行的所有数:", a[1, ...
2020-03-29 21:00:20
121
原创 numpy的基础运算2
import numpy as np a = np.arange(2, 14).reshape((3, 4))print("矩阵a:\n", a)print("求出矩阵a最小值的索引:", np.argmin(a))print("求出矩阵a最大值的索引:", np.argmax(a))"""np.mean()计算平均数np.average()计算加权平均数"""prin...
2020-03-29 20:59:44
106
原创 numpy的基础运算
import numpy as npa = np.array([10, 20, 30, 40])b = np.arange(4)print(a, b)print("逐个元素相减")c = a - bprint(c)print("逐个元素相加")d = a + bprint(d)print("判断数组中小于3的元素")print(b)print(b < 3)...
2020-03-29 20:59:01
147
原创 numpy创建array
import numpy as npa = np.array([1, 23, 4], dtype=np.float) # dtype设置格式print(a)print(a.dtype)print("定义一个二维矩阵")b = np.array([[1, 2, 3], [3, 4, 5]])print(b)print("这生成一个全部为零的矩阵")...
2020-03-29 20:58:17
104
原创 numpy基本属性
import numpy as np"""[[1, 2, 3]. [2, 3, 4]] 这是一个长为3个单位,高为2个单位的矩阵"""array = np.array([[1, 2, 3],[2, 3, 4]]) # 将列表转换成数组print(array) print("number of dim:", array.ndim) # 维度print("shape:"...
2020-03-29 20:57:27
134
原创 面试题15:二进制中1的个数
这个题借用了位运算,给一个博客传送们里面写的详细。https://blog.csdn.net/sinat_38327919/article/details/91872714"""title:二进制中1的个数introduce:请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输...
2020-03-26 23:18:23
114
原创 面试题11. 旋转数组的最小数字
二分查找的思想:有序数列相关查找问题可以考虑二分查找要比用for循环的复杂度低"""title:面试题11. 旋转数组的最小数字intorduce:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组[3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:...
2020-03-26 12:02:35
93
原创 面试题10- II. 青蛙跳台阶问题
"""titel:面试题10- II. 青蛙跳台阶问题introduce:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21提示:0 <= n...
2020-03-25 22:53:03
141
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人