- 博客(83)
- 资源 (3)
- 收藏
- 关注
原创 【踩坑指南】Stable Diffusion 服务器端部署笔记
https://github.com/CompVis/stable-diffusion 这个网址,下载压缩包解压,也可以用git clone下载。下载地址:https://huggingface.co/CompVis/stable-diffusion-v-1-4-original。文件中自带瑟图检测,如果触发了会生成一张全黑图片或者是其他和谐图替代。其实在代码中可以注释掉。随便选一个就行,下载了之后放到stable-diffusion 文件夹中的。其他有啥漏掉的包基本直接pip就行。就不会触发安全检测了。
2023-02-22 14:45:38
5553
7
原创 好看的混淆矩阵可视化,以小数方式显示
除了用seaborn,还可以用ConfusionMatrixDisplay。混淆矩阵通常长上面这个样子,通过。只需要简单几行,即可实现。
2023-01-04 10:31:03
2356
3
原创 latex设置citation显示作者+年份
我后续代码单独开的新文件是可以成功的,但有时候写好的论文再修改格式,怎么改都改不出来,可能是有覆盖。再overleaf上预览效果就是这样. 那个绿色的框是可以关掉的,具体代码忘了,我这里默认关,转成pdf之后就没有绿框了。就可以,就能产生(abc et al., 2015) 这种格式, 如果你不想要圆括号,可以使用。手动声明格式,你甚至可以声明一个大括号一个中括号,但注意后面这种方式,会覆盖掉前面的。如果是bib文件分开放,并且每个引用都明确写了author和year,那么直接。不显示作者和年份,或者像。
2022-12-14 20:10:00
14858
5
原创 【图像处理笔记3】Gabor Filter的手动和调包实现
Gabor filter 作为一种很出名的纹理滤波器,可以很好的捕捉纹理信息。比如设置成(3, 3, math.pi/2, 0.5)的参数。显示的时候要用np.real取实数部分,不然画不出来。现在的Gabor由4个参数控制(Gabor还可以用过skimage 调包实现。代码实现如下, 代码里的freq就是。
2022-11-09 11:20:26
913
原创 opencv图像处理笔记(二):SIFT和SURF算法,获取特征描述点并匹配
这两个算法相似,都是为了获取局部特征点的特征向量的。具体数学原理不过多赘述值得注意的是这两个函数在早期版本(opencv3.4 以前)中属于, 而在4以后是可以直接省掉的。
2022-10-14 15:48:13
1604
原创 拉格朗日乘数法
拉格朗日函数用于约束优化问题。约束优化问题简而言之就是在有一堆约束Σi=1gi(x)\Sigma_{i=1} g_i(x)Σi=1gi(x)的情况下求目标函数f(x)f(x)f(x)的问题,说起来很抽象,直接来点例子看比较直观。例1. 求f(x,y,z)=xyzf(x,y,z)=xyzf(x,y,z)=xyz在条件1x+1y+1z=1a (x,y,z,a>0)\frac{1}{x}+\frac{1}{y}+\frac{1}{z}=\frac{1}{a}\ (x,y,z,a>0)x
2022-10-07 22:44:09
8358
原创 pytorch几种learning rate的使用方式
pytorch的学习率都在torch.optim.lr_scheduler里面使用方式基本一致,都需要和optimizer配合使用。说一下几个常用的。
2022-09-14 14:37:50
1414
原创 opencv图像处理笔记【1】:LBP算法的实现
LBP的算法全称是Local Binary Pattern, 局部二值特征。他的实现也很简单,对于图像的一个3x3的块,中心的值和周围八个点作比较,周围点比中心点大为1,反之为0,从而可以将当前这个中心点转换成只包含01的二值表示,然后再将二进制转成十进制存储。LBP的实现还有很多变种,比如圆形LBP。无论其方式如何变化,其中心思想都是周围点和中心点比较。生成的图片就会产生这种类似浮雕一样的效果。
2022-08-24 10:47:31
1340
原创 python装apex遇到无文件或文件夹 error: [Errno 2] No such file or directory: ‘xxx‘的问题解决方案
会提示你某个文件或文件夹不存在,py文件的名称可能会有所不同
2022-08-05 15:28:46
1792
原创 【图像处理】Pyefd.elliptic_fourier_descriptors的使用方式
每一个轮廓的维度是【长度,1,2】,而elliptic_fourier_descriptors只能处理【长度,2】这样的数据,所以用np.squeeze()。图像轮廓的获取方式如上述代码,一般是先转灰度,再获取binary,再送到findContours函数中。返回的contours一般是一个四维的向量,分别表示【轮廓个数,该轮廓的轮廓点个数,1,坐标x和y】。关键的输入是contours,图像轮廓,可以通过opencv的函数实现。傅里叶描述器,通过傅里叶级数逼近的方式,去近似得到图像轮廓的表示。.....
2022-07-19 10:11:19
743
原创 【算法笔记】记一道力扣周赛:知道秘密的人
题目链接:https://leetcode.cn/problems/number-of-people-aware-of-a-secret/三个输入,n,delay,forget,从第一天开始有1个人知道秘密,delay天之后他会每天告诉一个人秘密,直到forget天,之后他就忘掉了秘密不会再告诉别人了,然后其他人会继续告诉秘密。求第n天知道秘密的总人数。这道题很明显的dp问题。有个最直观的想法是,今天新人数i,在delay到forget时间段会每天+i个知道秘密的人。也就是某一天新增的人数,只会影响之后的某
2022-07-05 11:25:45
368
原创 Fuzzy C Means聚类算法python快速实现(非调包,运算速度快)
跟Kmeans算法类似,迭代过程中每次都要重新计算聚类中心,更新公式如下:ck=Σzuk(x)mxΣxuk(x)mc_k = \frac{\Sigma_zu_k(x)^mx}{\Sigma_xu_k(x)^m} ck=Σxuk(x)mΣzuk(x)mx其中u是隶属度矩阵U的元素,U的维度是(n_data, n_cluster), 即一个大小和数据长度以及聚类数量有关的矩阵,它的特点是每一行加起来为1,因为这表示概率。这里有点像softmax。然后FCM的目的是为了最小化目标函数:argmin
2022-06-30 14:54:42
2133
2
原创 Pytorch深度学习(2):图像处理入门+MNIST实战
本文将通过一个经典的Kaggle比赛:MNIST手写字识别来进行简单的图像处理入门。该Kaggle竞赛链接并且会用到很常见的CNN模型。首先导入数据,做好前期准备:import pandas as pdimport numpy as nptrain_data = pd.read_csv('./train.csv')test_data = pd.read_csv('./test.csv')简单查看一下可以发现,该数据中,训练集里是包含label的,在其数据的第一位,而测试集没有。并且他的数据
2022-05-24 23:02:09
1014
原创 通过torch.nn.init更改模型初始化参数
比如模型如下:class Net(nn.Module): # 初始化定义网络的结构:也就是定义网络的层 def __init__(self): super(Net,self).__init__() self.layer1 = nn.Sequential( nn.Conv2d(3,6,kernel_size=5,stride=1,padding=0), # 激活函数
2022-05-21 14:34:12
966
原创 特征值分解,奇异值分解(SVD),线性判别分析(LDA)
文章目录特征值与特征值分解奇异值分解线性判别分析瑞利商广义瑞利商(Generalized Rayleigh Quotient)特征值与特征值分解特征值分解就是要求解Ax=λxAx=\lambda xAx=λx的问题,其中λ\lambdaλ 就是特征值,xxx就是特征向量。现在有如下矩阵A=[7238]A=\begin{bmatrix}7&2\\3&8\end{bmatrix}A=[7328]可以把原问题变换成求解(A−λ)x=0(A-\lambda)x=0(A−λ)x=0, 由
2022-05-03 14:58:27
1396
原创 关于Hdmi2.1,FRL,DSC,VRR,ALLM你需要知道这些
最近在研究Hdmi相关内容,网上很多信息都是零零碎碎的,结合自己的一些研究简单记录一下。Hdmi,High Definition Multimedia Interface,高清多媒体界面HDMI2.1是最新的一种食品接口标准,他的旧版本有2.0,1.4,1.3, 1.2,1.1。随着分辨率和帧率的要求越来越高,以及4K,8K电视、游戏等产品的相继问世,越来越多的电脑厂商也开始支持Hdmi2.1。TMDS以前的hdmi依赖于TMDS(最小化差分传输信号)的方式传输,他的传输速率有限,无法承载高分辨
2022-03-23 13:39:49
26878
1
原创 论文导读:Deep Attentive Learning for Stock Movement Prediction From Social Media Text and Company Correl
3. Problem FormulationMAN-SF的主要目标是暂时学习来自推文和历史价格信号的相关信息,并利用股票之间的公司关系来预测走势,本文进行的是一个二元预测,pdcp_d^cpdc是指第d天的收盘价, 所以0表示下跌,1表示涨4. MAN-SF:Components and Learning整体结构如下图:模型首先会编码某一个范围内的市场信息data:xt=B(ct,qt)x_t= \Beta (c_t, q_t)xt=B(ct,qt), 其中ctc_tct是基于一个l
2021-08-25 16:01:11
871
1
原创 论文导读: Stock Movement Prediction from Tweets and Historical Prices
这篇文章主要讲的是利用推特内容和股票历史价格推测股票走势。Abstract股票市场是随机的,预测是基于混沌的数据,本文提出一种深度生成网络–基于文本和价格信号,该模型介绍了recurrent,连续的潜在变量(continuous latent variable)来更好的处理随机性。然后利用神经变分推断(neural variational inference)来解决难以处理的后验推理,他们也提供带有时间辅助的混合目标函数,来灵活捕捉预测依赖。1. Introduction在NLP中,新闻和社交媒体是
2021-07-05 15:44:37
1702
2
原创 Leetcode25: k个一组反转链表
Leetcode 25 k个一组反转链表基本思路是先实现k个反转,再把最后不足k却被反转的那一段的头节点记录下来,最后单独从这个被记录的地方再反转一次。具体反转的方式有很多种,不懂的话建议先学会如何反转整个链表。start -> p -> q -> r -> *start -> p <- q, r -> *start -> * <- p ,q-> r (count+1)start -> * <- * <-p, q -&g
2021-06-30 15:13:50
195
原创 NLP word embedding汇总
Word Embedding 词嵌入,从字面意思理解其实不是很好懂,他本质是一个向量化Vectorization的过程,一个把文字文本转化成数字形式的方式。这样模型才能够处理和训练文本。比如我有一句话I love you, 最简单的翻译成向量,那就是[0,1,2],因为我的词库里暂时只有这三个词。接下来我想说I hate you,其中hate是新词,其他两个是旧词,那就是[0,3,2], 而hate是词典里的新词,所以他的编号也是放在最后。当这个词库越来越大,比如有1万个词了,就像字典一样,基本每一句话
2021-06-20 14:55:57
1224
原创 Pytorch实现RNN, GRU, LSTM模型
文章目录RNN参数代码GRU公式代码LSTM公式代码如题,几个经典的NLP模型,Pytorch实现也比较简单,复杂的模型可以通过他们堆叠而成,比如encoder decoder这些。RNN首先是最简单的RNN,他的模型最简单,就是当前时刻的input, 和上一时刻的hidden state,分别和一个W参数相乘,然后经过一个tanh门即可。还可以加上偏置项bhb_hbh,在pytroch官方文档中,偏置项写了两个,但实际上用一个表示即可。参数可以设置的参数:input_size : 输入x
2021-06-10 16:35:02
2171
原创 Colab保存模型到google drive
一般在colab中训练好模型之后,我们都希望保留模型参数或者实验结果,这样下次就可以直接访问而不需要再次run model。首先保存模型的代码比较简单,比如用pytorch的话:import torchtorch.save(model, './model.pt')或者用pickle保存模型结果,具体怎么使用pickle可以看我的另一篇文章。但问题是,这个保存并没有和自己的google drive云盘绑定,实际上只是保存在了colab的当前内存中。。等你下次刷新就没了。所以在存模型之前需要挂到d
2021-06-07 13:45:06
7833
5
原创 Attention的矩阵表示及理解
说到attention这里不再过多赘述,首先我们有encoder hidden state的一个序列: h1,h2,...hNh_1, h_2, ...h_Nh1,h2,...hN然后有 ttt 时刻的decoder state sts^tst。每次用所有的encoder hidden state去和当前位置的decoder state相乘对于ttt时刻而言的attention score就是用et=[h1Tst,h2Tst,...,hNTst]e^t = [h_1^Ts^t, h_2^Ts^
2021-06-06 23:22:17
4184
原创 pickle存储和读取
下载:pip install pickle存储:你有file这个文件,你要存到/path/路径下import picklepickle.dump(file, open('./path/file_name.pkl', 'wb'))注意open里面要用’wb’现在从/path/这个路劲读取file文件读取file = pickle.load(open('./path/file_name.pkl', 'rb'))注意open里是’rb’...
2021-05-17 14:37:18
1028
原创 论文导读:TOWARDS END-TO-END SPOKEN LANGUAGE UNDERSTANDING
这篇文章是来自大神Yoshua Benjio的,值得一读,研究对象是只基于语音spoken,而非文字的自然语言理解,链接在这。0. Abstract大概说了一下什么是NLU, 然后说他们的end-to-end的学习系统可以很好的分类spoken language。1. IntroductionSLU(Spoken Language Understanding) 近年来发展好,各大厂商都需要,其主要分为三个任务:Domain classification,Intent Detection(以下简称ID
2021-05-09 17:49:13
794
原创 论文导读:A Diversity-Promoting Objective Function for Neural Conversation Models
0. Abstract部分0.1 用于生成对话的Seq2Seq NN(序列到序列神经网络模型)倾向于产生安全,平常的反应(例如,我不知道,任何问题都能这么回答)而不考虑输入如何。我们发现使用传统的目标函数,即输出的可能性(响应)给定的输入(消息)不适合回复生成任务(Response generation task)。 因此,我们建议使用最大相互信息(MMI)作为神经模型中的目标函数。 实验结果表明,提出的MMI模型可产生更加多样化,有趣且适当的回复,从而在两个会话数据集和人工评估中的BLEU得分中获
2021-05-08 16:12:56
549
原创 python带阴影范围的折线图
有时候画折线图需要这种效果:又叫shade range graph。只需要使用plt.fill_between即可代码:x=[0,1,2,3,4,5,6,7]y1=[4, 6, 7, 5, 5.5, 6, 9, 7.3]y2=[2, 2.5, 3.9, 4, 3, 2.4, 8, 6.9]y3=[3, 4, 6, 4.5, 4, 5, 8.5, 7]plt.plot(x, y3)plt.fill_between(x, y1, y2, #上限,下限 facecolor='g
2021-04-25 14:34:28
13009
原创 cuda, cudnn和pytorch_gpu安装
cuda官网:cuda选择好对应的平台然后点击下方的下载,会提供local和network两种下载方式。下载好了之后安装他会让你自定义文件夹,但安装好了之后你会发现cuda文件夹消失了。他会跑到C盘路径下,反正就是在C盘program files里找一下。进入该文件夹并找到bin,用命令行进入到对应的路径,比如我这里是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin命令行进入之后输入nvcc -V查看cuda安装是否成功。
2021-04-08 00:45:35
987
原创 python多个图例共同显示
比如我想一张图显示好几个legend如果是直接用plt.plot()的话,使用plt.gca().add_artist()函数即可。示范代码:plt.plot([1,2,3],[3,6,9], label=[3,6,9])l1 = plt.legend(loc='upper right')plt.legend(loc='upper left')plt.gca().add_artist(l1)plt.show()因为用了第二个plt.legend之后,第一个会被覆盖掉,使用add_arti
2021-03-24 22:34:28
9161
原创 Pytorch神经网络入门(1)参数的手动更新和自动更新
Pytorch 作为深度学习届两大扛把子框架之一(另一个是Tensorflow),一直都受着AI炼丹师们的喜爱。这里将简单介绍一下神经网络参数的手动更新和自动更新。首先来说手动更新,可能很多初学者随便打开一本pytorch书或者教程,发现他们的梯度更新方式都大同小异,都是那几句话,但他其中的具体步骤究竟是怎样的,还是有必要了解一下。一般情况下,神经网络都是有隐藏层的,当然也可以像上图左边那样,只有输入输出。神经网络的循环过程如下:1,输入进来,前向传播,先用初始化的矩阵将输入转换成和输出类似的形
2021-03-23 15:58:21
12311
原创 Colab平台利用gensim包实现Word2Vec和FastText(CBOW, Skip Gram两种实现)
重复造轮子不可取,要合理学会调(tou)包(lan)!Gensim是一个可以用来进行无监督学习和自然语言处理的开源库,编写语言为Python和Cython,更多细节可以上官网查询。首先导入基本的包:import pprintimport re# For parsing our XML datafrom lxml import etree # For data processingimport nltknltk.download('punkt')from nltk.tokenize i
2021-03-22 16:11:21
1489
6
原创 终于解决python画图不显示中文的问题了
运行环境mac发现使用matplotlib等相关绘图包时中文会出现方块,无法显示,试了网上各种方法都不行。。后来发现其实是本地库根本就没有中文字体包,这样的话怎么修改代码都是没用的。。。卒首先查看是否有相关中文字体包from matplotlib.font_manager import FontManagerimport subprocessmpl_fonts = set(f.name for f in FontManager().ttflist)print('all font list g
2021-03-15 13:48:43
4430
7
原创 论文导读: Exploring Cyberbullying and Other Toxic Behavior in Team Competition Online Games
文章链接1. Abstract&Introduction 部分1 本文主要探索Cyberbullying(网络暴力,比如:骂人,口吐芬芳,问候对方家庭成员等) 在合作竞技游戏(比如LoL英雄联盟)中的情况. 除开提供大规模,基于经验的网络不良行为的理解,这篇文章的工作内容可以用来作为构建相应的检测系统的基础,同时反对这类不良行为。2 Computer mediated communication(CMC, 计算机即时聊天)带来很多不好的行为,特别是网络暴力以及其他一些类似行为已经变得很严重(大
2021-03-02 23:26:14
580
原创 论文导读: Self-Supervised Knowledge Triplet Learning for Zero-shot Question Answering
该论文可直接在网上下载。1. Abstract & Introduction部分1 QA(question answering)的主要目的是generalize to unseen questions. 使得系统能够泛化到回答没有见过的问题。通俗一点的理解就是,机器可以根据自己的理解,回答一些未知问题,从而获得一定程度的”智能“。2 一个可能的问题是:annotation 会导致unintended annotator bias 无意识地标记偏见。这个其实是个很常见的套话,反正是人标记都会有b
2021-02-25 23:27:22
965
原创 R中dplyr包的select和filter实现横向/竖向选择
当我们平时处理csv等一系列文件时,通常希望只选择其中某几列,或者符合条件的某几行。则可以通过dplyr包中的一些函数实现。library(dplyr)table <- data.frame(cbind(c(1,2,3), c('Li','Zhang','Li'), c(11,13,15)))%>%rename(id = X1, name = X2, score = X3)假如现在我有这么一个简单的表,第一列是id,第二列是名字,第三列是分数。比如我想只选则名字这一列,则table%
2021-02-09 17:25:13
4074
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人