jhsignal
码龄2年
  • 144,806
    被访问
  • 60
    原创
  • 267,689
    排名
  • 47
    粉丝
关注
提问 私信
  • 加入CSDN时间: 2020-01-08
博客简介:

jhsignal的博客

查看详细资料
  • 4
    领奖
    总分 529 当月 23
个人成就
  • 获得214次点赞
  • 内容获得91次评论
  • 获得840次收藏
创作历程
  • 22篇
    2021年
  • 39篇
    2020年
成就勋章
兴趣领域 设置
  • 人工智能
    opencvpytorch
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

剑指 Offer 57 - II. 和为s的连续正数序列(python)

剑指 Offer 57 - II. 和为s的连续正数序列输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9输出:[[2,3,4],[4,5]]示例 2:输入:target = 15输出:[[1,2,3,4,5],[4,5,6],[7,8]]题解;class Solution: def findContinuousSequence(self,
原创
发布博客 2021.08.18 ·
41 阅读 ·
0 点赞 ·
0 评论

二分查找法剖析

一、你真的了解二分法吗?​ 二分搜索是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。举个栗子给定一个排好序(升序)的列表与待查找的关键字,成功则返回其索引,失败则返回-1def search(list, key): l
原创
发布博客 2021.06.08 ·
48 阅读 ·
1 点赞 ·
0 评论

pytorch中的nn.CrossEntropyLoss()损失

在使用pytorch深度学习框架,计算分类损失时经常会遇到这么一个函数nn.CrossEntropyLoss(),该损失函数结合了nn.LogSoftmax()和nn.NLLLoss()两个函数。它在做分类(具体几类)训练的时候是非常有用的,如下我将对该函数的原理使用代码和实例进行分析。    首先输入是size是(minibatch,C)。这里的C是类别数。损失函数的计算如下:损失函数中也有权重weight参数设置,若设置权重,则公式为:注意这里的标签值class,并不参与直接计算,而是作为一
原创
发布博客 2021.06.02 ·
602 阅读 ·
2 点赞 ·
2 评论

Faster-rcnn篇三-RNP网络anchors生成

生成一个batch图像的所有anchors信息,shape为[b,21420,4]anchor_sizes = ((32,), (64,), (128,), (256,), (512,))aspect_ratios = ((0.5, 1.0, 2.0),) * len(anchor_sizes)rpn_anchor_generator = AnchorsGenerator(anchor_sizes, aspect_ratios)anchors = self.anchor_generator(imag
原创
发布博客 2021.05.26 ·
97 阅读 ·
0 点赞 ·
0 评论

Faster-rcnn之RNP网络代码详解B

1. 首先将一个batch内的图片经过resnet50-fpn网络输出得到featrues,经过FPN层以后会输出5个特征图,在每个特征图上的每个点上进行预测3个坐标框 # RPN uses all feature maps that are available # features是所有预测特征层组成的OrderedDict features = list(features.values()) # 计算每个预测特征层上的预测目标概率和bbo
原创
发布博客 2021.05.26 ·
125 阅读 ·
0 点赞 ·
0 评论

Faster-rcnn中的数据预处理

该代码中讲的是faster-rcnn中在进行训练过程中,对图片进行预处理操作。对图像进行预处理在faster-rcnn训练过程中,需要对传入网络中的图片进行预处理,其中包括减均值,除方差,对图像进行缩放等。使用如下函数进行调用。注意其中images,targets代表的是在pytorch框进中打包好的一个batch_size的图片和其对应的标签from transform import GeneralizedRCNNTransformimages, targets = self.transfor
原创
发布博客 2021.05.26 ·
412 阅读 ·
1 点赞 ·
0 评论

python类的继承

python继承父类的属性和方法让子类直接拥有父类的属性和方法的过程就是继承父类 - 被继承者(又叫超类)子类 - 继承者在子类中添加类属性和方法类属性和方法的添加不会因为继承而收到任何影响添加对象属性对象属性是怎么被继承:继承的时候因为init方法被继承,间接继承了对象属性类中的方法的调用过程(重要)通过类或者对象在调用方法的时候,会先看当前类中有没有这个方法,如果有就直接调用自己类中的方法;没有就看父类中有没有定义这个方法,如果父类定义了就调用父类的;父类没有定义,就看父类的父类中有没
原创
发布博客 2021.05.25 ·
22 阅读 ·
0 点赞 ·
0 评论

pycharm中debug代码参数的设置

1.当使用pycharm调式代码时候,会经常加一些参数,但是在pycharm中只有run和debug,其中并没有带参数的调试。如下我们可以选择加入需要的参数重点:由于在windows下,脚本的工作路径会和linux下不同,所以使用相对路径的时候特别注意,参数的相对路径的设置。当然具体如何设置呢?如下所示1.首先找到该脚本代码predict_cls.py的工作路径,找法如下:然后看看加入的参数的路径相对于这个工作路径的目录,添加到参数中即可。...
原创
发布博客 2021.04.29 ·
466 阅读 ·
0 点赞 ·
0 评论

ResNet论文解读

ResNet论文解读一、提出背景随着深度学习的大热,使用卷积神经网络来作为图像的特征提取,从开始的浅层神经网络逐渐向深层神经网络发展(ALexNet–VGG–GoogLeNet,网络结构在不断的加深,这是因为更深的网络可以进行更加复杂的特征模式的提取,从而理论上更深的网络可以得到更好的结果。但是通过简单的叠加层的方式来增加网络深度,可能会带来更多的训练错误率,如下图所示,56层的训练错误率要高于22层网络的错误率,这个问题的出现是由于网络加深,可能引来梯度消失/梯度爆炸的问题:...
原创
发布博客 2021.04.18 ·
71 阅读 ·
0 点赞 ·
0 评论

一文搞懂BN的原理及其实现过程(Batch Normalization)

1. 在讲BN之前我要向大家提出几个问题,就是为什么要引入BN呢?在神经网络训练的时候输入图片不是引入了image normalization吗?所以BN到底是什么呢?Batch Normalization是由google提出的一种训练优化方法。原论文地址:https://arxiv.org/abs/1502.031672.引入BN的原因?我们在图像预处理过程中通常会对图像进行标准化处理,也就是image normalization,使得每张输入图片的数据分布能够统均值为u,方差为h的分布。这样
原创
发布博客 2021.04.16 ·
15117 阅读 ·
21 点赞 ·
3 评论

os.path.dirname(__file__),os.path.basename(_file_),os.path.abspath(_file_)在python中的用法

我在windows磁盘F:\debug\1文件下创建了一个test.py的python文件,下面在这个python代码中解释os.path.dirname(__file__),os.path.basename(_file_),os.path.abspath(_file_)等用法1.os.path.abspath(file)os.path.dirname(file) 返回脚本的绝对路径# -*- coding: utf-8 -*-import os #os.path.abspath(__fil
原创
发布博客 2021.03.29 ·
189 阅读 ·
0 点赞 ·
0 评论

opencv保存单通道图片

由于opencv读取完图片在保存图片时候,图片的通道需要时三通道,否则在保存的时候会报错。如下代码可以完成单通道图片的保存。注:opencv读取图片的通道数默认为b,g,r。故在使用cv2.cvtColor函数转成rgb的时候,仍然需要对图片进行通道转换,故需要使用img= img[:, :, ::-1]才能使用cv2.imwrite()函数保存图片。import cv2img = cv2.imread('1.png')if len(img.shape) == 2 or img.sha..
原创
发布博客 2021.03.26 ·
2554 阅读 ·
0 点赞 ·
0 评论

力扣-160. 相交链表(python)

160. 相交链表编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。
原创
发布博客 2021.03.26 ·
85 阅读 ·
0 点赞 ·
0 评论

力扣142.环形链表 II(python求解)

142. 环形链表 II给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。进阶:你是否可以使用 O(1) 空间解决此题?示例 1:输入:head = [3,2,0,-4], pos = 1输出:返回索引为 1 的链表节点解释:
原创
发布博客 2021.03.25 ·
117 阅读 ·
1 点赞 ·
2 评论

剑指 Offer 40. 最小的k个数(python求解)

剑指 Offer 40. 最小的k个数输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。题解;比较直观的想法是使用堆数据结构来辅助得到最小的 k 个数。堆的性质是每次可以找出最大或最小的元素。我们可以使用一个大小为 k 的最大堆(大顶堆),将数组中的元素依次入堆,当堆的大小超过 k 时,便将多出的元素从堆顶弹出。。class Solution: def getLeastNumbers(self, arr
原创
发布博客 2021.03.25 ·
29 阅读 ·
0 点赞 ·
0 评论

python如何判断图像是几通道图片

1.在图像处理的过程中,图像的种类各异,有单通道8bit的,有3通道,24bit的,还有4通道32bit的,当然如果不加判断的读取图片有时候可能会导致代码的bug,所以在读取图片的过程中要先判断图像是什么类型,针对不同的类型图片采取不同的处理方式,如下代码采用PIL来判断图像是几通道图片。"coding = utf-8"import shutilimport os,sysimport cv2from PIL import Imageimport numpy as npinput_path
原创
发布博客 2021.03.23 ·
2860 阅读 ·
2 点赞 ·
0 评论

VGG16_BN网络结构

VGG16_BNSequential((0): Conv2d(3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(2): ReLU(inplace=True)(3): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), p
原创
发布博客 2021.03.18 ·
763 阅读 ·
0 点赞 ·
0 评论

pycharm专业版连接远程docker容器

pycharm专业版连接远程docker容器一.windows环境下pycharm专业版的安装如果想使用pycharm远程连接docker容器,需要在windows环境下安装专业版的pycharm,专业版下载链接https://www.jetbrains.com/pycharm/二.配置远程docker容器1.启动带有端口的docker容器。6006端口是用来运行tensorboard的,这里重要的是22端口。如果希望通过ssh远程连接docker,需要对容器的22端口做端口映射。docker
原创
发布博客 2021.03.08 ·
1170 阅读 ·
1 点赞 ·
4 评论

短视频去除logo(抖音)

Video-removal -logo​ 本代码仓库使用opencv中的图像修复技术来对视频中的每一帧进行修复,从而得到干净去除掉水印的视频,同时保留了视频的音频部分。Dependent environmentpip install opencv-pythonpip install moviepypip install pydubHow to remove1.找到水印的位置,对于视频中logo会出现在相对固定位置的去除方法。比如抖音,快手,logo会出现在视频的左上角或者视频的
原创
发布博客 2021.03.02 ·
1939 阅读 ·
3 点赞 ·
0 评论

剑指 Offer 32 - III. 从上到下打印二叉树 III

请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。例如:给定二叉树: [3,9,20,null,null,15,7],# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None#
原创
发布博客 2021.02.22 ·
31 阅读 ·
0 点赞 ·
0 评论
加载更多