- 博客(40)
- 收藏
- 关注
原创 Windows Latex写作之VScode + TeX Live
下载并安装 texlive,选择.iso下载(4G+),然后解压,右键管理员运行install-tl-windows.bat,选择安装路径后按默认设置安装即可;VScode扩展商店中,安装LaTex和LaTex Workshop;VScode中F1,键入“open setting”,搜索“首选项-打开设置(json)”,在打开的settings.json中输入如下跟LaTex配置相关的内容:{ // 其它配置 "remote.SSH.remotePlatform": { ".
2022-05-26 23:08:14
717
1
原创 Linux安装PCL库
记录安装PCL库(point cloud library),参考PCL官网和3DMatch项目。# Notes for PCL installation, # 1. dependencies# sudo apt-get update# sudo apt-get install g++ # skip if already has# sudo apt-get install cmake # skip is already has# su
2021-07-02 13:30:48
1766
原创 pybind11 with cmake building
Below is a CMakeLists.txt which is used for building the source code “sampling.cpp”, during which pybind11 helps to output a shared library “sampling.so” that can be imported by python.cmake_minimum_required(VERSION 2.8.12)project(sampling)set(CMAKE_CX
2021-06-29 12:40:38
1265
原创 python中的弱引用weakref
1. 弱引用的作用弱引用是为了解决循环引用(circular reference)的问题:对象存在__del__()方法时可能导致内存泄露。对对象的弱引用不能保证对象存活:当对像的引用只剩弱引用时, garbage collection 可以销毁引用并将其内存重用于其他内容。但是,在实际销毁对象之前,即使没有强引用,弱引用也一直能返回该对象。python docs2. 对比weakref.ref()和weakref.proxy()看上去,weakref.proxy()使用起来更方便。import
2020-12-03 11:04:02
938
原创 Python-opencv读取和存储视频
# 读取视频文件并逐帧存储cap = cv2.VideoCapture(path)frame_len = cap.get(cv2.CAP_PROP_FRAME_COUNT)width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))fps = int(cap.get(cv2.CAP_PROP_FPS))fourcc = cv2.VideoWriter_fourcc('
2020-08-27 11:15:45
465
原创 图片的base64编码
1. 基于base64的编解码import base64# 编码with open(img_path1, 'rb') as f: image_data = f.read() base64_data = base64.b64encode(image_data) base64_str_1 = str(base64_data, 'utf-8') print(base64_str_1)# 解码with open(img_path2, 'wb') as f: img_dat
2020-08-26 16:00:53
1123
原创 pip install报错Retry...SSLError...
1. pip install常规安装:pip install hyperlpr指定镜像:pip install hyperlpr -i https://pypi.tuna.tsinghua.edu.cn/simple/指定host:pip install hyperlpr -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn指定路径:pip install hyperlpr --t
2020-06-08 17:01:33
445
原创 python - 变量作用域tinytest
a = 1def add(x): print(x) x += 1 print(x) return xdef main(b): # 若不存在下面的语句 if b>5: a=2, 代码正常运行; # 若存在,则运行至add()会报错:local variable 'a' referenced before assignment if b > 5: a = 2 add(a)if __name__ == "__
2020-05-28 09:30:11
254
原创 python--datetime转时区
from datetime import datetime, timedeltaimport pytz# way 1t = datetime.now() # t: datetime.datetime(2020, 5, 20, 13, 34, 21, 730673)t_new = t + timedelta(hours=8) # utc转东八区# way 2tz = pytz.timezone('Asia/Shanghai')t_new = t.astimezone(tz)
2020-05-20 21:54:08
921
原创 Rethinking:分类&回归
前言一般说到多分类问题,我们很自然地会采用softmax交叉熵损失,而谈到回归问题,我们可能会选择MSE这样的损失。但有一天,我们也许想知道二者之间是否真的就泾渭分明,能否把交叉熵损失用于回归任务,或者把MSE损失用于分类任务呢。这么想不是没有道理的,毕竟我们可以把多分类问题,看做是离散的回归问题,或者把回归问题,看做是无穷多类别下的分类问题。讨论1模型输出的logits,经过softmax...
2020-04-01 16:28:00
563
原创 Pytorch模型训练恢复之load_state_dict
官方教程:https://pytorch.org/tutorials/beginner/saving_loading_models.html#新版pytorch中load_state_dict()不支持map_location参数,但torch.load()支持背景假设pytorch model执行save操作时,模型参数是在gpu上,那么运行checkpoint = torch.load(...
2020-04-01 10:17:20
11060
4
原创 Pytorch小知识点
x = torch.tensor([1,2,3]), y=torch.tensor([4,5,6]).cuda(0)(1)tensor to numpy: x.numpy() or y.cpu().numpy(2)numpy to tensor: torch.from_numpy()(2.1)a=torch.from_numpy(b),b改变会影响a,a的dtype=torch.floa...
2020-04-01 09:58:48
583
原创 Pytorch训练out of memory
两类内存报错:RuntimeError: cuda runtime error (2) : out of memory ...RuntimeError: CUDA out of memory. Tried to allocate 20.00 MiB ...对于第一种:pytorch版本升级、避免中间变量累积、pin_memory置False …对于第二种:batchsize调小、选小模...
2020-04-01 09:52:53
1138
原创 人脸仿射对齐 & 框绘制
1. 相关代码import cv2import numpy as npfrom skimage import transform as transimg_size = 112 # Below is for 112*112 face img. src1 is for 112*96 where src1=src[:,0]-8.0src = np.array([[38.2946, 51.6...
2020-02-11 11:46:23
655
原创 Pytorch参数更新实验
概述构建一个toy net,测试不参与运算的变量是否会更新&如何更新起因实现随机深度策略时,在block内部进行requires_grad=True/False操作会报错(后面测试知道其实是DataParallel的锅)ref: 1, 2结论初始化各模块如self.conv3后,其_grad值为Noneself.conv3只有在forward中运行了,才会被纳入graph中...
2019-10-23 11:59:24
5008
原创 Pytorch权值初始化及参数分组
1. 参考MobileFaceNet_Pytorch-master中from torch.optim import lr_scheduler# define optimizersignored_params = list(map(id, net.linear1.parameters())) # id() 函数用于获取对象的内存地址ignored_params += list(map(i...
2019-08-12 16:08:18
7706
7
原创 日志logger
1. 将日志信息打印到屏幕import logginglogger = logging.getLogger()logger.setLevel(logging.INFO)logging.info('use cpu')logging.info('gpu num: %d', len(ctx))2. 将日志信息打印到屏幕,并写入文档保存class Logger(object): ...
2019-08-12 14:35:02
630
原创 日常Bugs及解决方案记录
1. No module named _tkintersolution:sudo apt-get install python3-tkFor python 3.6:sudo apt-get install python3.6-tknotesIn python 3 Tkinter is renamed to tkinterlinkhttps://stackoverflow.com/q...
2019-08-07 14:54:22
570
原创 python报错调试
1. python获取上级目录的三种方式(1) os.path.abspath(os.path.join(projPath,'..')) (2) os.path.dirname(os.getcwd())(3) os.path.split(projPath)[0]2. ModuleNotFoundError: : No module named…代码在pycharm里可以运行,但...
2018-08-06 21:22:14
1613
原创 深入理解PCA+Kmeans+NMF+谱聚类
本文对这几种算法进行统一分析和归纳。1. PCA与Kmeans降维–主成分分析(PCA)–第4.1节2. 谱聚类与Kmeans聚类–谱聚类–第5节kmeans假设数据服从高斯分布,所以对于非高斯分布的数据性能表现可能不好,这个时候我们可以利用核方法扩展,得到kernel kmeans,相当于把原始d维数据投影到一个高维核空间中再进行kmeans聚类。本质上,谱聚类也是干了这么一件事儿,相似度矩阵W就
2017-12-10 21:05:29
6460
4
原创 Matlab imshow
imread()读进来的图像矩阵Img的数据类型为uint8,用imshow()可正常显示。如果需要运算,把图像数据强制转换为double后,用imshow()则无法正常显示,大片白色区域,少数黑点点,这是因为imshow()对double型数值默认在0~1范围内,即大于1时显示白色,可以人为将其缩放到[0,1]之间,即imshow(Img/255)。另:imshow,imagesc,image区别
2017-11-30 21:23:13
613
原创 谱旋转--spectral rotation
谱聚类算法分两步进行,第一步可以看做是把原始数据投影到一个新的(低维)空间,第二步在新的空间中对数据进行处理得到最终聚类结果。第二步常采用的方法有Kmeans,这里介绍另外一种方式:谱旋转(spectral rotation)。关于谱聚类的详细介绍可参见这篇博客。谱聚类第一步中求解的目标式可表述为: minF∈Rn×kTr(FTLF)s.t.FTF=Ik.\begin{equation}\min
2017-11-20 20:04:41
2844
原创 python打开|显示|保存图片
1. 图片的打开与显示from PIL import Imagefrom matplotlib import pyplot as pltdir = 'C:/Users/user/Desktop/data/img.jpg'img=Image.open(dir)img.show() # 调用windows照片查看器plt.imshow(img) # 嵌入到开发环境比如jupyte
2017-10-30 17:18:47
11945
原创 sklearn交叉验证
摘录官网上一些容易混淆的概念、函数介绍。1. Cross-validation: Evaluating estimator performanceWhen evaluating different settings (“hyperparameters”) for estimators, such as the C setting that must be manually set for an SV
2017-10-26 20:38:06
2196
转载 python字符串分隔
1. 用法说明:指定分隔符的字符串切片Python split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串。 str.split(str=”“, num=string.count(str)). 其中,str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。num – 分割次数。返回分割后的字符串列表。2. 实例#
2017-10-23 23:13:24
1604
原创 Windows下安装TensorFlow
虽然都建议在linux下安装TensorFlow,但是仅作初步了解,直接在windows笔记本上装一个玩玩儿还是要方便一些。结合参考的几篇帖子,记录一下自己的安装流程。大家主要都是利用Anaconda来安装的,这个直接去官网下载安装就好,下面假定已经装好了Anaconda。一. 直接在Anaconda当前环境下安装tensorflow包可以参考这篇帖子,我在安装过程中报错了,没有花时间具体看什么问题
2017-10-05 18:01:18
2003
原创 Latex多处引用同一脚注
若文章中几处需要添加相同内容的脚注,各自都写\footnote{*}的话,则会出现好几个内容重复的脚注。这个问题可以通过“标签引用”+“上标”来解决。 比如我们要给ORL和Jaffe都添加同样的脚注,可以这样: ORL\footnote{http://blog.csdn.net/bear\_kai\label{web}} and Jaffe\textsuperscript{\ref
2017-09-06 00:42:22
19630
3
转载 Self-paced Learning 自步学习
在刚结束的IJCAI-17上了解到自步学习,觉得蛮有意思,它的思想很简单,然后用简洁的数学式子来表达这种思想感觉很棒。以下内容转自Longfei Han主页。1. 自步学习现有机器学习方法都需要解决非凸优化问题,例如学习感知机或深度置信网,传统的优化方法在避免非凸优化问题陷入较差局部解时,往往采用多次随机初始化方式训练模型,然后选择其中效果最好的初始化结果构建模型。然而这种方法过于adhoc,而且计
2017-09-01 11:35:52
20428
3
转载 Label Encoding & One-Hot Encoding
Label encoding在某些情况下很有用,但是场景限制很多。比如有一列 [dog,cat,dog,mouse,cat],我们把其转换为[1,2,1,3,2]。这里就产生了一个奇怪的现象:dog和mouse的平均值是cat。而且像decision tree,random forest和xgboost这种算法能处理好这种转换,而且相比转换前,所需要的内存空间小一点。One-Hot 编码即独热编码,
2017-08-30 22:50:07
4977
原创 非负矩阵分解(NMF)论文笔记(3)
记录NMF的一些变体。 数据矩阵X : d*n,分解因子——基 F : d*r, 表达G:n*r1. NMF: 输入数据非负,并约束分解因子非负,即 X+≈F+G+" role="presentation" style="position: relative;">X+≈F+G+X+≈F+G+X_+\approx F_+G_+,F的列可以看做是新空间中的基,G的行可以看做是
2017-07-05 12:56:46
2940
原创 非负矩阵分解(NMF)论文笔记(2)
记NMF经典论文:Learning the Parts of Objects by Non-negative Matrix Factorization, Nature 1999.对整体的感知是否基于对局部的感知?在心理和生理学上有研究表明,人脑中存在基于局部的表达机制,目标识别中的一些计算理论也依赖于这种假设,但是我们并不清楚人脑或者计算机到底是如何来学习这样一种局部表达的。这篇文章介绍的
2017-07-05 12:43:54
2099
原创 非负矩阵分解(NMF)论文笔记(1)
NMF经典论文:Algorithms for Non-negative Matrix Factorization(NIPS, 2001),此文主讲算法细节偏理论。 (话说怎么去掉图片默认水印,有点影响视觉效果。)1.引言NMF要做的,就是给定一个非负矩阵V∈R+d×n" role="presentation" style="position: relative
2017-06-20 15:20:36
10471
5
原创 一些公式/定理积累
积累一些可能会用的数学公式,有时可以作为简化计算、提升效率的小技巧。1. Woodbury Formula不想敲代码,直接截个wiki的图过来: 上面已经提到了这个公式的几种特殊情形,这里我们关注更简单的一种。当A是n阶单位阵,C是k阶单位阵时,有: (In+UV)−1=In−U(Ik+VU)−1V (I_n + UV)^{-1} = I_n - U(I_k + VU)^{-1}V 然后呢,
2017-06-16 11:49:25
2544
6
原创 常用矩阵向量求导公式
在机器学习中,常用的一般是求一个数对向量或矩阵的导数,这个数,一般表现为向量的内积,或者是矩阵的迹。α,x\alpha, \mathbf{x}是向量,A,B,CA, B, C是矩阵,假定以下向量矩阵都是合适大小、可乘的。∂xTα∂x=∂αTx∂x=α(1)\frac{ \partial{ \mathbf{x}^T \alpha} }{\partial \mathbf{x}} = \frac{ \pa
2017-06-16 11:27:32
2376
原创 Spyder调试python函数
记录一些简单的概念、用法、资源链接等。1. 三个比较好的链接:【1】python代码调试技巧 —- 结合例子讲解了利用pdb、PyCharm、PyDev和日志功能进行python代码调试的方法,语言简练、排版清晰。 【2】Spyder之Debugging调试简介 —- 主要是让我重新意识到要利用IDE自带的tutorial和documentation。 【3】Python 程序如何高效地调试—
2017-05-24 15:38:52
12925
原创 基于正则化的特征选择
此文谨为方便自己后续写作,有更深层需求的读者请参阅相关原始paper。1、特征选择简述降维,有时也可称为子空间学习,可以大致分为特征选择(feature selection)和特征提取(feature extraction)两大类,我们常说的主成分分析(PCA)、线性判别分析(LDA)、流形学习的代表—-局部线性嵌入(LLE)等,都是属于后者。特征提取,通常是将原始数据投影到一个新的空间,对于线性方
2017-05-08 16:04:28
6923
1
原创 降维--深入理解PCA
1 引言主成分分析(Principal Component Analysis, PCA)是一种经典又常用的数据降维算法(注意这里的降维是指特征提取 ,线性时或称子空间学习,还有一支叫特征选择,有兴趣可参这篇博客),它的主要思想是寻找数据分布方差最大的投影方向,初次听好像也不太好理解,那就上个图瞧瞧咯。 图1 如图1标注出了信号和噪音的方差方向。我们找数据变化大的方向,变化大则含信息量大,
2017-04-10 09:52:54
2770
原创 聚类--谱聚类
前言:关于谱聚类,已经有很多厉害的老师和大牛写过教程博客等,也有很不错的tutorial文章可供参考。此博文仅记述个人的一些总结、思考、困惑,算是对现有谱聚类学习资源的一个小补充。1. 谱聚类简述说到聚类,可能最先想到的就是经典的Kmeans算法。但是,Kmeans的应用是有前提条件的,它假设(目标式中的)误差服从标准正态分布,因此,Kmeans在处理非标准正态分布和非均匀样本集时,聚类效果会比较差
2017-04-06 11:04:21
4887
2
原创 windows powershell中activate python2无效
电脑里面装有anaconda3, 要用python2,今天就在envs目录下安装了anaconda2,(参见anaconda2和anaconda3共存点击打开链接),可是装好之后在命令行中>activate py2无效(py2是安装anaconda2取的文件夹名)。纠结了好久,终于发现是windows powershell自己的问题,换用普通的command line就可以了!
2017-04-05 20:52:00
2211
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人