Sunrise

`长路漫漫,唯剑作伴`


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

Linux OOM机制

发表于 2022-04-03 | 分类于 Linux

记录一次程序总是异常中止的解决过程

问题描述:

开发的爬虫脚本在服务器上99%的时间都可以正常运行,但是偶尔会自动中止,进程消失。频率不固定,有的时候一天一次,有的时候一周一次,甚至很久不报错。后来解决该问题后,发现其实就是因为触发了某些条件才会出现异常,所以并不是有规律可言的。

解决过程

前面的这些解决过程不是很重要,实际是Linux系统的OOM机制导致程序被杀,不过遇到问题一般很难一开始就精准的定位到问题,都是一步步的推测问题产生的原因,然后不断地排除,直至问题的解决。所以前面这些步骤仅是在问题解决时的一些尝试性思路。

阅读全文 »

反爬(八)

发表于 2022-03-12 | 分类于 爬虫

反爬八

网站介绍

本次破解目标网站,该网站是一个搜索式的网站,支持模糊搜索,我们输入“公司”进行搜索,发现有滑动验证码。

分析其网络请求,我们可以看到这样几个关键请求:

获取验证码的请求:https://neris.csrc.gov.cn/shixinchaxun/sxcx/captcha/get(实际为一个POST请求)

post参数

1
2
3
captchaType: "blockPuzzle"
clientUid: "slider-d063f7fa-f53c-4868-8fed-12d68cfe932b"
ts: 1647072841626

请求返回json数据,内容如下

阅读全文 »

Python sm4加解密

发表于 2022-01-27 | 分类于 python编程

安装模块gmssl,pip install gmssl

阅读全文 »

CRNN项目实践

发表于 2022-01-09 | 分类于 深度学习

CRNN项目实战

之前写过一篇文章利用CRNN进行文字识别,当时重点讲的CRNN网络结构和CNN部分的代码实现,因为缺少文字数据集没有进行真正的训练,这次正好有一批不定长的字符验证码,正好CRNN主要就是用于端到端地对不定长的文本序列进行识别,当然是字符和文字都是可以用的,所以这里进行了一次实战。

主要是参考github项目:https://github.com/meijieru/crnn.pytorch

关于lmdb

lmdb安装

首先关于lmdb这个数据库,python有两个包,一个是lmdb,另一个是python-lmdb。

使用pycharm的包安装功能可以看到关于lmdb的描述

Universal Python binding for the LMDB 'Lightning' Database Version 1.3.0

关于python-lmdb的描述

simple lmdb bindings written using ctypes Version 1.0.0

所以理论上我们安装前者肯定是可以用的,但是经过亲身实践,

在pip环境中使用pip install lmdb确实可以正常使用;

但是在conda环境中,使用conda install lmdb安装完成之后却无法导入包。

所以又使用:conda install python-lmdb安装,安装完之后却可以使用,非常奇怪。

后发现原因大概率是版本问题,使用pip可以安装lmdb=1.3.0的最新版本,而conda只能安装lmdb=0.9.x的版本,所以目前在conda中只能使用python-lmdb暂替使用。

制作适用CRNN的lmdb数据集

github项目中关于如何训练自己的数据集写的不是很清楚,如果我们直接运行train.py会遇到各种问题,首先第一个问题就是数据集的问题,lmdbDataset中的初始化

阅读全文 »

Linux shell命令

发表于 2021-12-28 | 分类于 Linux

Linux shell命令

vim程序编译器

vi分为3种模式,分别是一般命令模式,编辑模式与命令行模式。

  • 一般命令模式:以vi/vim打开一个文件就直接进入一般命令模式,在该模式下可以进行光标移动、复制、粘贴、删除操作。

  • 编辑模式:在一般命令模式下,输入【i、o、a、r】(大写也可),进入编辑模式。按【ESC】键回到一般命令模式。

  • 命令行模式:在一般命令模式下,输入【: / ?】中的任何一个,进入到命令行模式,光标会移动到最下面一行,可以进行读取、保存、批量替换字符、退出vi、显示行号等操作。

编辑模式与命令行模式之间不可互相切换。

一般命令模式下的快捷键

阅读全文 »

遗传算法

发表于 2021-12-18 | 分类于 算法

遗传算法

基本概念

遗传算法(Genetic Algorithm,简称GA)

遗传算法的基本思想可归为三点:

1)遗传:子代总是和亲代相似。

2)变异:子代和亲代有某些不相似的现象。

3)选择:具有精选的能力,它决定生物进化的方向。

要点1:遗传算法按照一定的规则生成经过基因编码的初始群体,

要点2:然后从这些代表问题的可能潜在解的初始群体出发,挑选适应度强的个体进行交叉(或称交配、交换)和变异,以期发现适应度更佳的个体,

要点3:如此一代代地演化,得到一个最优个体,将其经过解码,该最佳个体编码则对应问题的最优解或近似最优解。

术语:

串:算法中的二进制串,对应于遗传学中的染色体。染色体是进化的信息载体。染色体可能发生突变,并因为这种突变,可能生成更好的、更能适应环境的后代。

基因:基因是串中的二进制位之数,基因用于表示个体的特征。基因是染色体遗传功能的最小操作单位。

基因位置:一个基因在串中的位置称为基因位置,有时也简称基因位或基因座。

基因特征值:在用串表示整数时,基因的特征值与二进制数的权一致。

种群:个体的集合称为种群,或称群体。生物的进化不是通过单个个体来实现的,而是一代代的种群同时进行。

种群大小:种群中个体的数量称为群体的大小。

适应度:适应度表示某一个体对于环境的适应程度。在GA中,也称做适值函数,用以估计个体的优劣。适应度值越高,被选来交配和进行后继遗传行为的概率也就越大。对于给定的优化问题,将其目标函数作为适应度函数。

阅读全文 »

无监督学习--聚类算法

发表于 2021-12-11 | 分类于 算法

无监督学习–聚类算法

聚类算法是一种无监督学习算法,监督学习指的是我们的训练数据有一系列标签,我们通过假设函数去拟合它,而在无监督学习中,我们的数据不带有任何标签

聚类的定义

将物理或抽象的对象的集合分组成为由类似的对象组成的多个类的过程被称为聚类。 同一类中的对象之间具有较高的相似度,而不同类中的对象差别较大。

注:相似度是基于描述对象的属性计算的,计算是对对象之间距离进行计算

基于划分的方法–K-means聚类

阅读全文 »

感知机与BP算法

发表于 2021-12-04 | 分类于 算法

感知机与BP算法

M-P 神经元模型 [McCulloch and Pitts, 1943]

输入:来自其他n个神经元传递过来的输入信号(特征值)

处理:输入信号通过带权重的连接进行传递, 神经元接受到总输入值将与神经元的阈值进行比较

输出:通过激活函数的处理以得到输出

激活函数

阅读全文 »

决策树

发表于 2021-11-27 | 分类于 算法

决策树

决策树的概念

1、决策树是一种分类器,是一个有向、无环树。

2、树中根节点没有父节点,一个节点可以有1-2个或者没有子节点。

3、每个叶节点都对应一个类别标识C的值;每个内部节点都对应一个用于分割数据集的属性Xi,称为分割属性;每个内部节点都有一个分割判断规则qj。

4、节点n的分割属性和分割判断规则组成了节点n的分割标准。

决策树原理

1、决策树原理:归纳推理

2、归纳:是从特殊到一般的过程

3、归纳推理:从若干个事实表现出的特征、特性或属性中,通过比较、总结、概括而得出一个规律性的结论。

4、归纳推理的基本假定:任一假设如果能在足够大的训练样本集中很好地逼近目标函数,则它也能在未见样本中很好地逼近目标函数。

阅读全文 »

朴素贝叶斯分类

发表于 2021-11-20 | 分类于 算法

贝叶斯分类(朴素)

• 是一种统计学分类方法

• 可以用来对一个未知的样本判定其属于特定类的概率

• 分类模型是在有指导的学习下获得

• 分类算法可与决策树和神经网络算法媲美

• 用于大型数据库时具有较高的分类准确率和高效率。

基础概念

朴素贝叶斯分类的假设前提:类别C确定的情况下,不同属性(X1,X2)间是相互独立的,即条件独立。(朴素即为条件独立)

即:C确定下,P(X1,X2)=P(X1)P(X2) ;或表示为:P(X1,X2|C)=P(X1|C)P(X2|C)

设X是未知类别的数据样本(属性值已知),H为假定:X属于某特定类的类C。分类问题即为,确定P(H|X)——给定观测数据样本X,假定H成立的概率。

后验概率:P(H|X),在条件X下,H的后验概率

先验概率:P(H)

贝叶斯定理

注:P(X/H)相当于已知带标签的数据,即有导师了。

换个表达形式就会明朗很多:

阅读全文 »
1…567…12
chenxi

chenxi

120 日志
12 分类
224 标签
Links
  • Docle
  • Swift
© 2025 chenxi
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4