- 博客(192)
- 资源 (3)
- 收藏
- 关注
原创 ChatGLM2-6b的本地部署
chatglm2是清华大学发布的中英文双语对话模型,具备强大的问答和对话功能,拥有长达32K的上下文,可以输出比较长的文本。6b的训练参数量为60亿,本地部署大约需要12G以上的显存才能运行起来,但6b提供了一个量化后的int4版本,实测推理仅需要6gb即可。int4版本对于某些老旧的或者不支持int4的GPU而言运行不了,在额外的blog里面会记录如何修改使其运行起来。
2024-06-08 15:43:37
441
原创 pypi程序打包和解析blast文件的新工具推荐
这个包是为了解析blast的xml文件和sqlite文件而写的,可以将blast本地解析的xml文件,直接转换为csv文件和fasta文件,也可以将sqlite的文件直接解析为excel文件。此处记录了如何使用pypi打包一个自己的程序
2024-06-06 10:15:11
380
原创 tensorflow内存泄漏或模型只加载不运行
使用tf2模型进行推理的过程中,发现模型的内存占用在逐步增加,甚至会因为OOM被kill掉进程,有时候模型只加载不运行,搜索得到很多五花八门的答案,有些认为是tf2本身的问题,但在使用内存追踪的时候发现,是模型的动态图没有得到释放,而导致这个问题出现的原因,是数据的加载方式存在问题!如这段代码,直接使用了list作为模型的输入,尽管tf2也支持numpy的输入格式,但却存在隐患,会产生大量的空tensor!
2023-11-07 14:32:47
683
原创 linux下使用ftp下载服务器数据
ftp下载。注意看,get到这个文件之后,要指定是下载这个文件,否则会报错。命令:get /x/x/x/xxx.gz xxx.gz。这里的传输模式我使用的是二进制:binary。密码:任意邮箱,如123@163.com。可见,ftp地址不需要前面的https。匿名:anonymous。
2023-04-24 10:57:14
1123
原创 基于tensorflow2.x的多GPU并行训练
基于TensorFlow2.x的多GPU并行训练,给出了基本操作流程,基本内容解释,其中注意事项。
2023-04-20 15:38:11
3182
7
原创 快速配置tensorflow-gpu版本
3) 确认使用的版本之后,在terminal中输入: conda install cudnn=8.2。2)从推荐的配置单中查看tensorflow版本、cudnn版本和cuda版本之间的关系;4)等待3执行完之后,2)中的推荐配置就能对的起来了,这时候直接使用就OK了。1)首先确认自己安装的系统驱动版本,在terminal中使用nvcc -V。这里看到使用的cuda版本是11.3。
2023-02-17 10:58:29
365
原创 Could not load dynamic library libcudart.so.10.1
在tensorflow中遇见的问题,电脑已经装了CUDA且在pytorch上可以正常运行,但在tf中,遇见了这个问题,参考很多文档是加链接一类的,但其并不推荐,可以使用conda命令直接安装cudatoolkit或者cudnn解决这个问题,版本匹配上参考这个链接:https://tensorflow.google.cn/install/source#gpu错误日志:Could not load dynamic library 'libcudart.so.10.1'; dlerror: libcudart
2022-05-10 23:13:41
3130
原创 transformer-xl实现文本生成
提供了一个效果较好的文本生成项目,该项目基于transformer-xl,并将代码修改为可以在tensorflow 2.x版本下运行,同时可以兼容tensorflow 1.x版本。提供了鲁迅小说数据集、唐诗数据集,可参考项目给出的说明,有针对性的训练对应的文本生成模型。训练时,修改script文件下的.sh文件,将数据集、模型保存地址、注意力层、注意力头数改为自己想要的,然后运行train.py文件;生成模式时,调用train中的inreference即可,input位置为输入文本位置。项目代码:t
2022-05-09 23:34:08
785
原创 知识图谱-关系抽取
关系抽取有基于字符模式的抽取、基于语法模式的抽取、基于语义模式的抽取、自动化模式抽取和基于学习的抽取。基于学习的抽取是目前的主流方法,因此主要介绍基于学习的抽取。基于学习的抽取分为基于监督学习、基于弱监督学习和基于远程学习的抽取。从模型的角度来看,无论是采用哪种方法,都可以采用序列标注方式或者序列分类模型进行,如果已经给定了实体位置,使用分类模型更方便。1. 基于监督学习的关系抽取监督学习是利用标注数据进行学习的一种方法,在监督学习的关系抽取中,核心问题是如何从标注样本中抽取有用的特征,常用的特征有:
2022-05-08 11:34:44
1542
原创 seaborn.distplot具体用法
seaborn.distplot可以绘制比较漂亮的直方图,在Kaggle数据集上也有很多分析在用,最近使用遇到了一些问题,故把整个API的参数记录一下:seaborn.distplot(a=None, bins=None, hist=True, kde=True, rug=False, fit=None, hist_kws=None, kde_kws=None, rug_kws=None, fit_kws=None, color=None, vertical=False, norm_hist=False,
2022-05-08 10:21:31
5275
1
原创 plotly中trace标签去除
第一次使用plotly绘制图像,效果很经验,但是也有很多问题,比如标签时怎么生成的,分类是根据什么来的,看了一天的文档看得一脸懵逼…同时遇到了add_trace后出现trace标签的问题,给出原来的代码和改进后的代码,以供参考。fig = make_subplots(rows=1, cols=2, specs=[[{"type": "pie"}, {"type": "bar"}]])colors = ['gold', 'mediumturquoise', 'lightgreen'] # 绘制饼状图f
2022-05-06 22:36:03
1497
原创 Leetcode 合并区间
合并区间以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入:intervals = [[1.
2022-05-04 23:11:49
358
原创 leetcode 跳跃游戏
跳跃游戏给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到.
2022-05-02 10:58:36
960
原创 命名实体识别(Named Entity Recognition,NER)
命名实体识别是指在文本中定位命名实体的边界并分类到预定义类型的集合的过程。实体的标注形式有BIOE等,其中B是body的缩写,I是in的缩写,O是output的缩写,E是expect的缩写。NER的输入是一个句子对应的单词序列s=<w1,w2,...wn>s=<w_1,w_2,...w_n>s=<w1,w2,...wn>,输出是一个三元组集合,其中每个元组形式为<Is,Ie,it><I_s, I_e,i_t><Is,Ie,it&
2022-04-29 21:00:14
1172
原创 长短时记忆网络LSTM
网络介绍长短时记忆网络(Long short time memory network, LSTM)是RNN的重要变体,解决了RNN无法长距离依赖的问题,同时缓了RNN的梯度爆炸问题。LSTM由遗忘门、输入门、重置门和输出门四部分组成,当中使用了tanhtanhtanh和sigmoidsigmoidsigmoid作为激活函数。模型概述使用记忆单元C~t{{\tilde{C}}_{t}}C~t解决长距离依赖和梯度爆炸的问题,使用CtC_tCt避免梯度消失的问题。在 LSTM中,将文本看成一个文本序列,
2022-04-29 16:12:29
718
翻译 条件随机场CRF
CRF可以方便的处理各类序列标注问题,最常见的形式是链式结构,其最大的优点是,每次标注都会充分考虑已有结果的影响。给定一个输入的字符序列C=c1c2...cTC=c_1c_2...c_TC=c1c2...cT,输出序列LLL的计算过程:P(L∣C)=1Z(C)exp(∑t=1T∑kλkfk(lt,lt−1,C,t))P(L|C)=\frac{1}{Z(C)}exp(\sum_{t=1}^T\sum_k \lambda_kf_k(l_t,l_{t-1},C,t))P(L∣C)=Z(C)1exp(∑t
2022-04-27 00:14:30
251
原创 知识图谱-词汇挖掘
叙词表:叙词表又被称为主题词表,是一个针对特定学科领域的词汇表,也可以是涉及多个学科领域的综合性词汇表。改词汇表又一些雨衣相关的规范化名词术语组成。通常按照主题词首字母的顺序进行组织。词汇挖掘=短语挖掘,短语是真一个单词或者多个连续的单词组成的序列。对于短语的质量,从以下几方面评估:1)频率:一般来说,一个N-Gram在给定的文档集合中要出现的足够频繁才能被视作高质量短语。2)一致性:是指N-Gram的搭配频率明显高于其各部分偶然组成在一起的可能性,反应了N-Gram中不同单词的搭配是否合.
2022-04-26 23:28:30
1865
原创 NLP中的基本概念
自然语言处理以不同的粒度处理自然语言。对于一个英文句子"“my name is xiaowang”,基本组成单元是字符(character),由空格符得到的是单词(word)。如果不考虑单词出现的重复情况,这个句子认为有4个token。加上标点符号的叫句子(Sentence),多个句子组成的叫段落(Paragraph),多个段落组成的叫篇章(Document)NLP的常见任务:断句(Sentence Segmentation)通过标点符合实现词性标准(Tokenization)是给句子中的
2022-04-24 23:52:29
416
原创 知识表示-马尔科夫链(MC)
马尔科夫链MC是一种满足马尔可夫性的离散随机变量集合。所谓马尔可夫性是指给定一个随机变量的邻居信息,该随机变量的独立于其他所有的非邻居变量,即当前随机序列的下一个状态,仅仅与当前的状态有关,而与之前的状态没有关系。(有点类似于DP思想)。当随机变量集合{X1,X2,...XN{X_1, X_2,...X_N}X1,X2,...XN}满足马尔可夫性时,以下公式成立:P(Xt+1∣Xt,...X1)=P(Xt+1∣Xt)P(X_{t+1}|X_t,...X_1)=P(X_{t+1}|X_t)P(Xt
2022-04-24 23:32:31
374
原创 知识表示-概率图模型
有向无环图贝叶斯网络,也被成为信念网络或者有向无环图,是一种概率图模型,也是不确定知识表示的典型方法。一个贝叶斯网络就是一个有向无环图,其中节点代表一组随机变量x=x1,x2,...xnx={x_1,x_2,...x_n}x=x1,x2,...xn,节点之间的有向边代表随机变量之间的相互影响,XiX_iXi->XjX_jXj之间的有向边表示XjX_jXj的分布取决于XiX_iXi的取值。通常,XiX_iXi又称做因(Casue),XjX_jXj成为果(Effect)。因此贝叶斯网络
2022-04-24 23:21:22
389
原创 leetcode 最长有效括号
给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。示例 1:输入:s = “(()”输出:2解释:最长有效括号子串是 “()”示例 2:输入:s = “)()())”输出:4解释:最长有效括号子串是 “()()”示例 3:输入:s = “”输出:0提示:0 <= s.length <= 3 * 104s[i] 为 ‘(’ 或 ‘)’来源:力扣(LeetCode)链接:https://leetcode-cn.com/prob
2022-04-24 17:42:05
401
原创 Leetcode 二进制间距
二进制间距给定一个正整数 n,找到并返回 n 的二进制表示中两个 相邻 1 之间的 最长距离 。如果不存在两个相邻的 1,返回 0 。如果只有 0 将两个 1 分隔开(可能不存在 0 ),则认为这两个 1 彼此 相邻 。两个 1 之间的距离是它们的二进制表示中位置的绝对差。例如,“1001” 中的两个 1 的距离为 3 。示例 1:输入:n = 22输出:2解释:22 的二进制是 “10110” 。在 22 的二进制表示中,有三个 1,组成两对相邻的 1 。第一对相邻的 1 中,两个 .
2022-04-24 16:39:15
303
原创 知识表示之知识图谱的图和数值表示
知识表示是对显示世界的一种抽象表达,评价知识表示的两个因素是表达能力(expressiveness)和计算效率(efficiency)知识表示主要分为符号表示和数值表示,常用的知识表示方法是RDF,这是一种基于图的知识表示方法,另外几种是知识图谱、语义网络、实体关系图。1. 知识图谱的图表示:基于图的表示:在很多场景下, 图又被成为网络(Network),一个图就是一个二元组G=G(U,V),其中v表示节点集,E表示边的集合,图表达了节点集上的二元关系。这一部分与数据结构中的图非常像,有无向图和有向
2022-04-21 23:12:21
2126
转载 Leetcode 字典序排数
字典序排数给你一个整数 n ,按字典序返回范围 [1, n] 内所有整数。你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。示例 1:输入:n = 13输出:[1,10,11,12,13,2,3,4,5,6,7,8,9]示例 2:输入:n = 2输出:[1,2]提示:1 <= n <= 5 * 104思想:按照字典顺序输出数组,从1开始,符合python的sorted函数基本规则:class Solution: def lexic.
2022-04-18 21:03:46
247
原创 生成模型与判别模型
生成模型:通俗的说,给定输入X产生输出Y的模型叫生成模型,生成模型也是描述这样一种关系。数学解释:由数据学习联合概率分布P(X,Y)P(X,Y)P(X,Y),然后求出条件概论分布P(Y∣X)P(Y|X)P(Y∣X)作为预测的模型。P(Y∣X)P(Y|X)P(Y∣X)=P(XY)P(X)\frac{P(XY)}{P(X)}P(X)P(XY)典型的生成模型有朴素贝叶斯和隐马尔科夫模型判别模型:通俗的说,由数据直接判定输出,即给定对应的输入X,应该预测什么杨的输出Y数学解释:由数据直接学习决策函
2022-04-17 20:43:38
963
转载 Language Model语言模型
Language ModelLM是一个概率分布模型,对于语言里的每一个字符串S给出一个对应的概率P(S)P(S)P(S),其计算过程:P(S)P(S)P(S)=P(w1w2...wn)P(w_1w_2...w_n)P(w1w2...wn) = P(wn∣w1w2...wn−1)P(w_n|w_1w_2...w_{n-1})P(wn∣w1w2...wn−1)P(w1w2...wn−1)P(w_1w_2...w_{n-1})P(w1w2...wn−1)=P(w1)∏i=2nP(wi∣w1
2022-04-17 12:02:42
310
原创 Leetcode 迷你语法分析器
迷你语法分析器给定一个字符串 s 表示一个整数嵌套列表,实现一个解析它的语法分析器并返回解析的结果 NestedInteger 。列表中的每个元素只可能是整数或整数嵌套列表示例 1:输入:s = "324",输出:324解释:你应该返回一个 NestedInteger 对象,其中只包含整数值 324。示例 2:输入:s = "[123,[456,[789]]]",输出:[123,[456,[789]]]解释:返回一个 NestedInteger 对象包含一个有两个元素的嵌套列表:.
2022-04-16 00:06:09
329
原创 总结一下tf2.3上遇到的奇奇怪怪的问题
自然语言处理方面,很多的代码是基于tf1.x的版本,这也导致了在目前的平台上没有办法使用。最近两周遇到的格外多,因此做一个小结:1)module ‘tensorflow‘ has no attribute ‘xxx’首先尝试:import tensorflow.compat.v1 as tftf.disable_v2_behavior()能解决大多数问题2)module ‘tensorflow.compat.v1 has no attribute contrib ‘xxxx’比较典型的问题
2022-04-15 16:11:19
1593
原创 Leetcode 找出最具竞争力的子序列
找出最具竞争力的子序列给你一个整数数组 nums 和一个正整数 k ,返回长度为 k 且最具 竞争力 的 nums 子序列。数组的子序列是从数组中删除一些元素(可能不删除元素)得到的序列。在子序列 a 和子序列 b 第一个不相同的位置上,如果 a 中的数字小于 b 中对应的数字,那么我们称子序列 a 比子序列 b(相同长度下)更具 竞争力 。 例如,[1,3,4] 比 [1,3,5] 更具竞争力,在第一个不相同的位置,也就是最后一个位置上, 4 小于 5 。示例 1:输入:nums = [3,.
2022-04-15 00:29:31
806
原创 LeetCode 最富有客户的资产总量
最富有客户的资产总量给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。示例 1:输入:accounts = [[1,2,3],[3,2,1]]输出:6解释:第 1 位客户的资产总量 = 1 + 2 + 3 = 6第 2 位客户的资产总量 = 3 +.
2022-04-14 23:48:06
168
原创 LeetCode O(1) 时间插入、删除和获取随机元素
O(1) 时间插入、删除和获取随机元素实现RandomizedSet 类:RandomizedSet() 初始化 RandomizedSet 对象bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true ;否则,返回 false 。bool remove(int val) 当元素 val 存在时,从集合中移除该项,并返回 true ;否则,返回 false 。int getRandom() 随机返回现有集合中的一项(测试用例保证调用此方法时集合中至.
2022-04-13 20:48:24
492
原创 leetcode 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4提示:1 <= nums.length <= 1
2022-04-13 20:19:39
480
boostdesc_bgm.i资源包.zip
2020-10-10
MNIST数据集及使用BP神经网络分类的源程序
2020-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人