自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 基于black的VS code 自动Python保存PEP8格式

首先,安装black库然后,在VS code中的setting中,搜索python formatting provider,并选择black,如下图所示。最后,搜索format on save,并打上勾,如下图所示这样,设置就全部完成了。以后,写完py脚本后,保存的时候,会自动将代码修改为PEP8格式。

2022-12-07 22:50:17 752 1

原创 Linux系统下自动搜索USB摄像头地址及设备信息

Linux系统下自动搜索USB摄像头地址及设备信息在进行到多个USB摄像头开发时,会涉及到获取摄像头地址及设备信息问题。一般USB摄像头的设备信息是固定的,我们基于设备信息,就可以在软件开发时进行有选择性地使用特定摄像头。整个代码测试环境:Ubuntu18.04,使用Cmake编译完整的工程代码:chunqiangqian/ScaneCamera (github.com)搜索USB摄像头的主程序:#include "scane.h"int v4l2_open(const char* name

2022-05-07 15:24:43 1918

原创 Linux系统的一些库安装记录

Linux系统的一些库安装记录查看CPU核心数命令nproc注意:在使用make命令进行编译库的时候,可以使用多核并行处理make -j6但是,在编译opencv时,可能会发生内存不足的错误,可以用简单的make命令再继续编译。1. Opencv库的编译安装1.1 修改镜像源为清华源在安装opencv库时,会涉及到很多依赖库的安装,默认的镜像源会导致安装失败,所以,一开始,应将镜像源修改为清华源具体步骤:备份原文件:sudo cp /etc/apt/sources.list /

2022-04-28 14:39:56 5669

原创 Ubuntu上Anaconda创建虚拟环境出错--The current user does not have write permissions...

解决办法:sudo chown -R user anaconda3

2022-04-12 15:36:58 1973 1

原创 使用FFT进行快速FIR滤波

使用FFT进行快速FIR滤波摘自<Understanding Digital Signal Processing>第三版,13.10 Fast FIR Filtering Using the FFT一节基于的理论:频域上的乘积等效于时域上的卷积。基本的计算流程,如下图所示。将输入信号x(n)x(n)x(n)和滤波器参数h(k)h(k)h(k)分别进行FFT,得到X(m)X(m)X(m)和H(m)H(m)H(m),在频域上进行乘积,然后,进行IFFT。对于Q−tapQ-tapQ−tap

2021-08-24 14:39:58 5527 1

原创 论文Pruning Filters for efficient convnets解读

由于常规基于大小对权重的剪枝可以对全连接层的参数显著较少,但可能对卷积层的计算量降低不够,因为剪枝后的网络的不规则稀疏。本论文对输出精度影响较小的卷积核以及与之相连的特征映射移除,达到计算量显著降低的效果。与权重剪枝不同的是,本文的方法不会导致稀疏连接模式。过滤器Filters和特征图Feature maps的剪枝nin_ini​为第iii层卷积层的输入通道数,hi/wih_i/w_ihi​/wi​为输入特征图的高/宽。卷积层将输入特征图Xi∈Rni×hi×wiX_i \in \mathbb{R}^{n

2021-07-15 15:22:35 394

原创 自动生成当前工程的Python环境--requirements.txt

# 安装pip install pipreqs# 在当前目录生成pipreqs . --encoding=utf8 --force

2021-07-13 15:37:21 142

原创 Pytorch只对指定层进行梯度求解设置

代码来源:zheng-ningxin/Pruning-from-scratch (github.com)使用了lambda表达式并结合filter函数,生成需要求梯度参数的迭代器,具体代码如下:# 冻结所有模型参数for para in model.parameters(): para.requires_grad = False# 只更新BN层的参数for layer in model.modules(): if isinstance(layer, nn.Batc...

2021-07-07 15:44:26 1216

原创 基于经典网络组装自己的网络架构

笔记来源:【深度学习直播课精选01】深度学习拒绝调包!从0构建自己的神经网络架构哔哩哔哩bilibili感谢Up主:TsaiTsai直接使用经典网络可能存在的问题 经典网络结构太深 实际自己的数据样本较小,不适合经典网络 查看Pytorch中包含的经典网络import torchimport torch.nn as nnfrom torchvision import models as m​#查看所包含的模型,模型名称大写的为父类,小写的为子类dir(m)..

2021-07-06 22:52:08 188 1

原创 VS CODE远程linux服务器及图片显示

远程连接linux服务器可参考以下B站视频,UP主介绍的非常详细vscode远程连接linux服务器_哔哩哔哩_bilibili在配置完成远程连接后,运行python代码会无法在本地显示图片,解决方法可参考下面的博客VSCode 连接远程服务器使用图形化界面(GUI)_Dteam_f的博客-CSDN博客_vscode x11不过该博客中的步骤4.4和4.5不设置也没关系,只需export DISPLAY=windowsIP:0.0 在你的vscode terminal执行...

2021-06-24 16:44:23 2920 2

原创 特征选择--相关性和p-value

参考博客导入必要的库import numpy as npimport pandas as pdimport seaborn as snsimport matplotlib.pyplot as plt导入数据data = pd.read_csv('./*.csv')基于相关性进行特征选择# 获取相关系数矩阵corr = data.corr()corr.head()# 绘制相关系数热力图sns.heatmap(corr)def s...

2021-06-18 17:18:07 1593

原创 混淆矩阵绘制

混淆矩阵绘制代码有些参考了其他博客from sklearn.metrics import confusion_matriximport matplotlib.pyplot as pltimport itertoolsdef plot_confusion_matrix(cm, classes, normalize=False, cmap=plt.cm.Blues): """ This function prints and plots the confusion matrix.

2021-06-10 16:14:32 522

原创 Jupyter Notebook中进度条单行显示(tqdm)

问题:如果使用from tqdm import tqdm,在jupyter notebook中会出现进度条多行显示解决方法:改用from tqdm.notebook import tqdm as tqdm即可,而且进度条比原先的还更美观

2021-05-14 14:02:23 2153

原创 使用WeightedRandomSampler处理类不平衡(PyTorch)

使用WeightedRandomSampler处理类不平衡(PyTorch)参考博客:博客一:Address class imbalance easily with Pytorch | by Mastafa Foufa | Analytics Vidhya | Medium播客二:Address class imbalance easily with Pytorch Part 2 | by Mastafa Foufa | Towards Data Science类不平衡如论文所给出的结论,处理类不

2021-05-13 15:19:52 5686 3

原创 ECG信号处理相关的开源Python库

ECG信号处理相关的开源Python库1. NeuroKit2详细信息,可以查看具体文档,文档地址安装方法:conda install neurokit2# 或者pip install neurokit2该库提供了一些比较有用的ECG处理方向:基于ECG信号的呼吸分析呼吸率变异分析心率变异分析P,Q,S,T的定位输出模拟信号:ECG,RSP,EMG和EDA2. hrv该库主要针对心率变异性分析,具体可查看文档,[文档地址](Welcome to hrv’s docume

2021-05-08 17:03:28 5384

原创 使用pandas.DataFrame进行增量记录模型训练过程

使用pandas.DataFrame进行增量记录模型训练过程示例代码import pandas as pdimport numpy as npimport matplotlib.pyplot as pltdef results_plot(path): df = pd.read_csv('./test.csv') name_cols = df.columns for i in range(len(name_cols)-1): plt.plot(df[name

2021-04-27 16:16:11 747 5

原创 sys.modules[__name__]

sys.modules[_name_]在B站上学习李沐大神的动手学习深度学习V2,对他使用的dl2库源代码很感兴趣,然后,发现dl2库中包含以下几个文件,分别对应不同的深度学习库在导入其中torch脚本的时候,会使用如下代码:from d2l import torch as d2l初看起来感觉有点奇怪,然后torch.py脚本中有如下一行代码d2l = sys.modules[__name__]查阅了一些博客,给出的信息为大致应该是,一种将当前代码归入到module中使用的方式,所以才

2021-04-22 09:56:40 1769

原创 Pytorch Image Models (timm)

计算机视觉模型库–Pytorch Image Models (timm)帮助文档"timm"是由Ross Wightman创建的深度学习库,是一个关于SOTA的计算机视觉模型、层、实用工具、optimizers, schedulers, data-loaders, augmentations,可以复现ImageNet训练结果的训练/验证代码。Installpip install timm使用方法创建模型import timm import torchmodel = timm.creat

2021-04-08 17:30:46 6797 2

原创 特征重要性排序--Permutation Importance

特征重要性排序–Permutation Importance参考:Permutation Importance | Kaggle相比于其他衡量特征重要性的方法,Permutation Importance的优点:计算量低广泛使用和容易理解与我们要测量特征重要性的属性一致Permutation Importance的计算是在模型训练完成后进行的,即,模型参数不再改变。如果我们将验证集中的单独一列的数据进行打乱,并保持其他列和目标值不变,那么,预测打乱后的验证集的结果会怎么变化?上图示例是将

2021-03-30 14:00:59 13148 6

原创 Pytorch-Lightning基本方法介绍

Pytorch-Lightning基本方法介绍文章目录Pytorch-Lightning基本方法介绍LIGHTNINGMODULEMinimal Example一些基本方法TrainingTraining loopValidation loopTest loopInferenceInference in researchInference in productionLightningModule API(略)LIGHTNINGMODULELightningModule将PyTorch代码整理成5个部分

2020-10-14 17:00:55 17478 5

原创 PhysioBank Annotations(最全)

PhysioBank Annotations参考网站:https://archive.physionet.org/physiobank/annotations.shtmlBeat annotationsCodeDescriptionNNormal beatLLeft bundle branch block beatRRight bundle branch block beatBBundle branch block beat (unspecified)

2020-08-07 14:13:38 223

原创 训练递归神经网络的挑战--梯度消失爆炸

本文为Charu C. Aggarwal的一书的笔记。由于递归神经网络中,不同层敏感度的变化和共享的参数,导致网络具有较大的不稳定效应,如,梯度消失和梯度爆炸(vanishing and exploding gradient)。解决这一问题的方法有以下几种:1. 对训练参数应用强的正规化但是非常强的正规化,会导致模型无法达到其全部的潜能。2. 梯度截断 gradient clipping梯度截断主要有两种形式:2.1 基于数值的截断 value-based clipping在对梯度进行相加前

2020-07-29 16:50:21 362

原创 分类:类不平衡问题的解决方法

分类:类不平衡问题的解决方法现实世界的数据集通常会存在**类不平衡(class imbalance)**问题,具有较少样本的类,由于模型习得的较少,因而更容易被误分类。极端情况下,所设计的网络会直接忽略小样本类。解决这一问题的方法,主要有,对小样本类进行重采样:SMOTE修改loss 函数:Focal loss,CEFL loss / CEFL2 loss对小样本进行重采样:SMOTE这部分的详细内容可参考博文:https://blog.csdn.net/qian_chun_qiang/ar

2020-07-27 13:39:01 834

原创 Python字符串

Python字符串(列表元素拼接)内容来自https://www.youtube.com/watch?v=e6ivlABOYRI列表元素合并成字符串两种方法的效率比较:from timeit import default_timer as timermy_list = ['a'] * 1000000#print(my_list)# badstart = timer()my_string = ''for i in my_list: my_string += istop = t

2020-07-22 09:11:31 116 1

原创 日志保存--Python

日志保存–Python本文方法来自:MINA: Multilevel Knowledge-Guided Attention for Modeling Electrocardiography Signals, IJCAI 2019一文的代码训练模型的时候,经常需要保存中间训练过程的日志,可以采用以下方法:run_id = 'mina_{0}'.format(strftime("%Y-%m-%d-%H-%M-%S", localtime()))directory = 'res/{0}'.format(r

2020-07-16 10:18:16 375

原创 DEAP 框架(遗传算法)模块笔记

DEAP 框架笔记文章目录DEAP 框架笔记使用creator模块创建Fitness类定义fitness策略存储fitness值创建Individual类使用Toolbox类创建遗传算子创建种群创建fitnessDEAP(Distributed Evolutionary Algorithms in Python)为Python框架,支持采用遗传算法或其他演化算法进行快速求解。使用creator模块creator模块通过对现有类赋予新的属性来进行扩展类。例如,假设我们有一个类名为Employee。那

2020-07-09 09:39:50 2378

翻译 SMOTE for Imbalanced Classfication with Python

SMOTE for Imbalanced Classfication with Python文章目录SMOTE for Imbalanced Classfication with PythonImbalanced-Learn LibrarySMOTE for Balancing DataSMOTE for ClassificationSMOTE With Selective Synthetic Sample GenerationBorderline-SMOTEBorderline-SMOTE SVMAda

2020-07-06 22:07:31 610

原创 数学归纳法 Mathematical Induction

数学归纳法 Mathematical Induction–摘自Discrete Mathematics and Its Applications数学归纳法原理为了证明对于所有正整数nnn,P(n)P(n)P(n)为真,其中P(n)P(n)P(n)为命题函数,可以分为以下两步:基本步BASIC STEP:证明P(1)P(1)P(1)为真归纳步INDUCTIVE STEP:证明对于所有正整数k,条件表述P(k)→P(k+1)P(k)\rightarrow P(k+1)P(k)→P(k+1)为真。这一

2020-06-29 22:07:19 1074

原创 Python实现matlab的spectrogram函数

Python实现matlab的spectrogram函数关于matlab的spectrogram函数的详细介绍可参考这篇博客matlab代码:s = spectrogram(x,window,noverlap,nfft)%%x---输入信号的向量。默认情况下,即没有后续输入参数,x将被分成8段分别做变换处理,如果x不能被平分成8段,则会做截断处理。默认情况下,其他参数的默认值为:window---窗函数,默认为nfft长度的海明窗Hamming;noverlap---每一段的重叠样本数,默认值是在

2020-06-16 21:45:13 2413

原创 离散数学及其应用(英文版)--笔记1

Conditional statement“if p, then q.” 与“p only if q” 是等价的,后一个表述是有点迷惑的。“p only if q” 里面隐含的意思:1. p不能为true,当q为false,--- p(F), q(F), statement(T)2. 如果p为true,q为false,则该表述是false--- p(T), q(F), statement(F)3. 当p为false, 则q无所谓true 或 false--- p(F), q(F), st

2020-06-09 21:53:28 737 6

转载 C++笔记(cstring和string的区别)

1.string与cstring有什么区别&lt;string&gt;是C++标准库头文件,包含了拟容器class std::string的声明(不过class string事实上只是basic_string&lt;char&gt;的typedef),用于字符串操作。&lt;cstring&gt;是C标准库头文件&lt;string.h&gt;的C++标准库版本,包含了C风格字符串(NUL即'\0...

2018-06-11 10:45:51 101888 3

转载 C++笔记(iostream,namespace)

#include 是个包含命令,就是把iostream.h这个文件里的内容复制到这个地方iostream.h是input output stream的简写,意思为标准的输入输出流头文件。它包含: (1)cin&gt;&gt;"要输入的内容" (2)cout&lt;&lt;"要输出的内容" 这两个输入输出的方法需要#include&lt;iostream.h&gt;来声明头文件。 iostr...

2018-06-11 10:40:53 489

翻译 数据结构和序列(Python for data analysis,2ed)

Tuple(元组)元组为一种固定长度、不可改变的Python体序列。创建方法有:1. 直接用逗号分开In [1]: tup = 4, 5, 6In [2]: tupOut[2]: (4, 5, 6)2.创建复杂一些的元组In [3]: nested_tup = (4, 5, 6), (7, 8)In [4]: nested_tupOut[4]: ((4, 5, 6), (7, 8)) 3.将任何序...

2018-04-20 18:34:37 201

翻译 Python 库介绍(Python for data analysis, 2ed)

NumpyNumpy, 为Numerical Python的缩写,包含以下内容:快速高效的多维数组体ndarray对数组进行元素级计算或数组间的数学运算的函数对硬盘进行读写数组的工具线性代数运算,Fourier变换,以及随机数生成成熟的C API对Python进行扩展,可以方便进行原生C或C++代码获取Numpy的数据结构并进行计算pandaspandas提供了高阶的数据结构和函数,可以快速简单善...

2018-04-20 10:23:05 272

原创 assert(a.shape == ())

a = np.array([[1]])print(a)a = np.squeeze(a) # To make sure your cost's shape is what we expect (e.g. this turns [[17]] into 17).print('a:',a)print(a.shape)assert(a.shape == ())b = np.array(1)print('b...

2018-04-02 15:42:30 3593

原创 Matlab 函数收集整理

randpermp = randperm(n),返回从1到n的整数,随机排列p = randperm(n,k),返回从1到n的数中的k个唯一的整数    randperm(6)might be the vector[3 2 6 4 1 5]randperm(6,3)might be the vector[4 2 5]maxM = max(A) returns the largest el...

2018-03-27 09:16:35 168 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除