自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 解决:could not load library libcudnn_cnn_train.so.8

could not load library libcudnn_cnn_train.so.8

2024-04-29 10:20:37 731

原创 instructGPT论文精读

instructGPT论文精读

2023-07-09 09:42:49 422

原创 H100显卡环境对应的cuda和torch版本

原本的cuda版本是12.1,torch版本是2.0.1。新申请了几张H100的显卡,但运行程序会出现提示。卸载掉之前安装的,重新安装11.8版本的cuda。

2023-06-30 17:22:34 3447 3

原创 python-logging模块配置

python-logging配置

2023-05-31 20:03:53 283

原创 python多进程读取大量小文件

最近参加一个算法比赛,比赛的数据很大,解压后大约35G左右,由712839个小csv文件组成,每个文件大小在几kb大小不等,每个文件里包含一列、若干行数据,且每个文件的数据长度不一致,甚至会遇到空文件。所以想到可以用json保存数据,每个特征用字典存放,key是特征名称,value为具体的特征数据,一个json文件中包含一个字典,每个字典中用不同的key区分不同特征数据,读取速度也很快。多进程方面,可以将所以的文件路径放到一个list中,利用多进程分别处理其中每个文件。,这还是在没有用全部核的情况下。

2023-03-15 11:17:53 989 2

原创 openAI API简易使用教程

openAI提供了几种不同场景的模型,主要有text completion、code completion、chat completion、image completion,例如chat completion,则调用方式为。而且请求的token和回复的token数会被加一起计费,例如说输入了10个token,openAI回复了20个token,那么最终收费是按照30个token进行收费。model 是具体的模型,gpt-3.5-turbo是openAI最先进的语言模型,当然也可以用其他模型。

2023-03-14 21:09:30 20038 2

原创 python-matplotlib画图相关

python-matplotlib画图记录

2022-11-16 20:42:53 112

原创 Google could避坑记录

Google cloud使用记录

2022-11-11 18:57:53 112

原创 python训练保存模型后利用jpmml给Java后端调用预测

Python训练保存模型,Java后端调用

2022-09-28 19:25:16 1629 4

原创 docker常用命令整理

docker常用命令整理

2022-09-08 20:34:02 290 1

原创 TensorFlow报错日志记录2(version = 2.1.0)

TensorFlow报错日志记录及解决方法

2022-07-13 21:09:42 229

原创 自定义模型中遇到的报错日志及解决方法(TensorFlow2.1.0 )

TensorFlow 2中遇到的错误日志及解决方法

2022-07-12 21:06:14 1136

原创 机器学习秋招复习知识点

1.逻辑回归为什么用交叉熵损失函数而不用平方误差函数?答: 因为平方误差函数得到的损失函数,是一个非凸函数,求解时很容易陷入局部最优,而交叉熵损失函数是一个凸函数,通过凸优化算法很容易得到最优解。2.解决非线性问题时,SVM采用核技巧,逻辑回归为什么不用?答:SVM只有少量的支持向量参与到核函数运算中,计算复杂度不高,而逻辑回归如果要使用核技巧,所有的样本点都要参与运算,计算复杂度太高。3.为什么要引入核函数?解决线性不可分解决在高维空间中计算困难的问题4.SVM为什么对缺失的特征值敏

2020-09-11 18:27:54 5795

原创 判断第二个序列是否为第一个序列的弹出

题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。LeetCode原题:栈的压入、弹出序列思路:第一个序列表示栈的压入顺序,因为在压入过程中,随时可能从当前序列弹出,所以可以构建一个辅助栈,模拟栈的压入过程,设置两个指针,分别指向第一个压入序列和第二个弹出序

2020-08-08 22:54:19 153

原创 贪心算法---会议室问题

问题:有一堆会议,每个会议都有开始时间和结束时间,问至少需要几个房间可以安排下这些会议?解决思路:这是个贪心类问题, 每个会议都有结束时间和开始时间,可以对两个时间分开存储并排序,从最先开始的会议开始遍历,只要当前会议的开始时间小于结束时间数组中的第一个结束时间,就需要重新开辟一个房间。接着看下一个会议的开始时间,如果开始时间依旧小于结束时间,那么还需要一个房间用作这个会议,如果开始时间大于等于结束时间,说明这个会议开始的时候,前面的会议中至少有一个已经结束了,此时不需要重新开辟一个新房间,复用即可,

2020-08-01 23:15:01 1724

原创 数据结构----表示数值的字符串

题目:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、“5e2”、"-123"、“3.1416”、“0123"都表示数值,但"12e”、“1a3.14”、“1.2.3”、“±5”、"-1E-16"及"12e+5.4"都不是。LeetCode原题:表示数值的字符串分析一下能够字符串能够表示数值的满足条件有:指数符号只能出现一次;正负号出现的地方的前一位置必须是指数符号,或者是在开头位置出现;指数符号不能出现在开头;小数点同样只能出现一次,并且不能在指数符号

2020-07-07 22:46:59 102

原创 L1正则化与L2正则化的相关问题

1. 正则化的目的在对已有的数据进行训练时,由于在实际中不可能获取无穷无尽的数据去训练,以获取一个泛化性能特别好的模型,所以针对当前的有限数据,学习出的模型很有可能会出现过拟合,也就是过分的拟合当前的数据,或者说模型太过复杂。针对过拟合现象,正则化是人为的降低了模型的复杂度,类似于剪枝策略。希望在最小化训练误差的同时,通过这种正则化还能够提升模型的泛华能力。2. L1正则化L1正则化就是权值向量各个分量的绝对值之和,它更容易获得一个稀疏解。3. L2正则化L2正则化是权值向量的模的和,它对模型的

2020-07-04 22:48:29 242

原创 由先序、中序、后序遍历重建二叉树

先序、中序重建给定先序遍历和中序遍历数组,依次重建出整个二叉树由先序遍历可知,先序遍历的第一个值就是整个树的根节点,在中序遍历数组中找到该值对应的位置,则该位置左边部分就是整个树的左子树,右边就是整个树的右子树。得到了左子树和右子树长度后,可以根据该长度确定,在先序遍历中下一个右子树的根节点位置,而左子树的位置,因为是先序遍历,所以当前根节点的下一位就是它的左子树。左子树、右子树的节点位置确定后,递归建立剩余的左子树和右子树,当左子树和右子树的位置相等时,结束递归。代码如下:# Definiti

2020-06-28 16:27:35 211

原创 机器学习之集成学习算法学习笔记

1.boosting方法Boosting方法是一种将弱学习器提升为强学习器的算法。原理:先从初始的训练集中训练处一个基学习器,在根据基学习器的表现对训练样本分布进行调整,使得当前基学习器的分类错误的样本在后续收到更多的关注,基于调整后的样本分布继续训练下一个基学习器。如此反复进行,直到所有基学习器训练完毕,最终将所有基学习器加权平均。最著名的代表是 AdaBoost 算法。它学习过程中,对分类正确的样本降低了权重,对分类错误的样本升高权重或保持不变。在算法中,需要对训练样本分布进行重新调整。有两种调

2020-06-14 23:14:01 160

原创 排序算法--冒泡排序、选择排序、归并排序、快速排序、堆排序、计数排序

冒泡排序最简单的排序,原理非常简单,只要当前数比后面的数大,就把当前数往后移,直到数组末尾。def bubble_sort(arr): if len(arr) < 2: return arr j = len(arr) - 1 while j > 0: for i in range(j): if arr[i] > arr[i + 1]: arr[i], arr[i + 1]

2020-06-14 15:22:58 490

原创 累加和小于等于 aim 的最长子数组

题目:给定一个数组 arr 和目标值 aim,求该数组的子数组中累加和小于等于 aim 的最长子数组长度思路准备两个辅助数组,一个是 min_num, 其中存放的是以当前位置为左边界,能够取得的最小累加和是多少;另一个辅助数组是 min_index ,存放的是 该位置取得最小累加和时候的右边界位置。首先考虑两个辅助数组的求解, min_num 因为求的是以当前位置为左边界的最小累加和,所以我们可以考虑从右往左求解,最后一个位置存放的当然就是 arr 中最后一个数本身,相应的 min_index 存放

2020-06-07 16:27:12 167

原创 面试算法之正则表达式匹配

题目:请实现一个函数用来匹配包含’. ‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但与"aa.a"和"ab*a"均不匹配。原题来自LeetCode:思路假设 字符串为 str , 正则表达式为 exp ,显然这里的变量是 exp,而表达式中最让人头疼的部分就是碰到了 * 怎么办?所以可以根据表达式中 * 的出现情况分类讨论,这里采

2020-06-07 15:32:21 112

原创 支持向量机问题笔记

1.函数间隔一般来说,一个点距离超平面的距离的远近可以表示该点分类正确的确信程度,即该点距离超平面越远,越相信该点的分类是正确的,越近就越不相信;超平面确定的情况下,可以相对的表示该点到平面的距离,而符号表示分类是否正确,所以符号乘以距离就表示分类的正确性以及确信程度,这就是函数间隔。对于样本点(xi , yi),超平面wx + b = 0对于该点的函数间隔为超平面关于数据集函数间隔的定义为,对于一个超平面,数据集中所有样本点到该超平面的最小函数间隔值。2. 几何间隔在函数间隔中,当成比例

2020-06-03 23:12:34 466

原创 递归和队列实现基本计算器

题目:实现一个基本的计算器来计算一个简单的字符串表达式的值。字符串表达式仅包含非负整数,+, - ,*,/ 四种运算符和空格 。 整数除法仅保留整数部分。LeetCode:https://leetcode-cn.com/problems/basic-calculator-ii/思路先不考虑空格,以及乘除、括号,假设现在有一个最简单的表达式,只有加减两种运算符,也没有括号,应该如何运算?显而易见,从左到右,依次遍历即可,那我们先把这样的情况翻译成代码,借助队列,队列中从0位置到最后一个位置,对

2020-05-31 17:02:27 466

原创 决策树笔记(西瓜书)

决策树:一棵决策树包含一个根节点,若干个叶节点,若干个内部节点。每个叶节点表示相对应的决策结果。决策树的生成是一个递归过程,每个节点会遇到三种情况:当前节点对应的数据集中只有一种类别数据,则无需再划分;当前节点属性集为空,或者数据的取值全部相同,则将当前节点设为叶节点,对应的类别为,数据中包含样本量最多的类别,即哪个类别的样本量最多,叶节点对应的类别就是它;当前节点已经不包含任何样本,则当前节点同样设为叶节点,对应的类别为,父节点中包含类别数最多的类别。决策树的关键在于如何选择属性进行划分,

2020-05-26 21:04:30 281

原创 最大搜索二叉树的大小

问题给定一个二叉树,求它的最大搜索二叉树的大小解决思路:分成三种情况来考虑:当前节点的左子树是搜索二叉树,而右节点并不是搜索二叉树;或者左节点的最大搜索二叉树的大小大于右节点的最大搜索二叉树的大小,那么此时最大的搜索二叉树就是它的左子树;当前节点的右子树是搜索二叉树而左节点不是搜索二叉树;又或者左节点的最大搜索二叉树的大小小于右节点的最大搜索二叉树的大小,那么此时最大的搜索二叉树就是它的右子树;当前节点的左子树和右子树都是搜索二叉树,并且当前节点的值大于左子树的最大搜索二叉树的最大值,小于右子

2020-05-24 21:38:22 232

原创 二叉树之二叉搜索(排序、查找)树、AVL树、红黑树、SB(Size Balanced Tree)树

概念篇1.二叉查找树,也叫二叉搜索树、二叉排序树,Binary Search Tree在二叉查找树中,有以下性质;若任意节点的左子树不为空,则左子树上的所有节点的值小于它的根节点;若右子树不为空,则右子树的所有节点大于它的根节点;任意节点的左右子树也都是二叉查找树;树中不存在重复值;...

2020-05-24 21:07:23 275 1

原创 和为aim的最长子数组长度

问题:求在给定的数组中,子数组中所有数加起来的和等于固定值 aim 的最长子数组长度。解题思路:准备一个字典,key是从 -1 位置到当前位置的累加和,value 是第一次得到这个累加和的位置。默认 -1 位置的累加和是0.从头开始遍历数组,每次都计算从 -1 位置到当前位置的累加和是多少,并将位置信息和 累加和存到字典中,如果一个累加和出现多次,只记录第一次出现这个累加和的位置,因为我们要求的是最长的子数组。当累加和减去 aim的差值出现在字典中时,表明该差值对应的位置的下一个位置到当前位置,累

2020-05-24 15:26:41 194

原创 Morris遍历中的先序、中序、后序实现

Morris遍历先介绍一下Morris遍历的具体过程,至于先序、中序和后序就是在遍历中选择不同时机进行打印。在Morris遍历中,我们假设当前节点为 cur,只要当前节点的左节点存在,顺着左节点的右边一直走到它的最右边界节点,如果是第一次遍历到这个最右边界节点,那么这个边界节点的 right 应该指向 None,这里做一个标记,将它的 right 不再指向 None,改为指向当前的 cur 节点, 此时cur 下一步就应该来到cur的左节点;如果不是第一次来到这个最右边界节点,那么最右边界的 ri

2020-05-24 14:05:27 345

原创 logistic regression 系列问题

1. LR与线性回归的区别与联系区别:经典线性模型的优化目标函数是最小二乘法,也就是基于均方误差函数的最小化;而LR是最大化似然函数,也是最小化交叉熵。线性回归的输出是一个实值,而LR的输出是{0, 1};或者说,线性回归是解决回归问题,但LR是解决分类问题;联系:LR的本质也是一个线性回归模型,只不过在模型外套了一层联系函数,使得线性回归的输出实值与分类问题的{0, 1}联系在了一起。2. 为什么要对数据做归一化?归一化可以加快梯度下降时的速度:如上图中,x1, x2两个特征

2020-05-22 22:39:47 175

原创 线性回归基础相关公式

具体公式推导:一元线性回归公式推导多元线性回归公式推导

2020-05-21 20:36:23 1732

原创 搜索引擎的背后(粗糙入门)

搜索引擎架构搜索引擎大概可分为4步:搜集预处理索引查询搜集利用爬虫搜集信息,初始可以从一些优质网页,然后通过广度优先遍历,不断提取出网页内容和其中的链接,并将链接加入到待爬取队列中,不断迭代爬取更多的网页;问题一:这么多的网页,必然存在重复爬取的网页,如何避免重复爬取?答:利用布隆过滤器。假如有10亿个url,每个URL平均长度为64字节,则10亿个至少需要1 KB = 1024 字节(Byte),所以需要 1 * 10^9 * 64 / 2^30 = 60 G 内存,使用普通存

2020-05-18 09:56:46 179

原创 最大值减去最小值小于等于num的子数组数

满足条件的子数组数问题:给定一个数组,固定数 num,该数组的子数组中,有多少个子数组满足 在该子数组中最大值 - 最小值 小于或者等于 num?还是滑动窗口类问题,子数组可以看成是一个滑动窗口,不过该窗口长度是可变的,同样可以借助双端队列完成。不过在这题中,需要两个双端队列,一个存放最大值,一个存放最小值,具体更新原理和上一篇差不多(见滑动窗口最大值问题)。不同之处在于,此题中,我们需要判断当前窗口内的最大值和最小值是否满足条件,满足则结果 + 1。但这里额外需要了解两个性质,性质1. 当一

2020-05-17 19:51:04 311

原创 滑动窗口系列之求窗口中最大值问题

滑动窗口最大值问题: 给定一个数组,窗口长度为 k ,求每次窗口从左往右划过时每个窗口中的最大值解决思路: 利用双端队列的性质----头部和尾部都能出和进;队列中保存的是每个窗口内的最大值信息,关键在于窗口移动的过程中,如何更新其中的最大值信息。在每次窗口向右移动的过程中,都要判断两个信息:第一个,当前窗口的最大值是否需要更新;解决方法: 判断当前值是否大于队列的尾部上的值,不成立的话就直接压入当前位置到队列尾部;如果成立,说明此时最大值需要更新了,那么把队列的尾部值弹出丢弃,直到当前值大

2020-05-17 15:41:35 468

原创 让人头大的KMP算法

KMP算法:什么是kmp?给定两个字符串,分别为 str1 和 str2 ,问:在 str1 中,是否存在子字符串和 str2 相等?简单暴力法str1 从头开始遍历,如果当前字符和 str2 中第一个字符相等,则判断 str1 下一个字符和 str2 第二个字符是否相等,如果相等,继续判断第三个、第四个、、,如果不相等,那么 str2 又要回到开头位置,等待下一次, str1 也要...

2020-04-30 16:50:17 94

转载 Ubuntu从本地传输文件到服务器

(1)在本地的终端下,而不是在服务器上。在本地的终端上才能将本地的文件拷入服务器。命令:scp -r file username@192.168.1.1:address其中,1)scp 是命令,-r是参数2)file 是要文件的路径和文件名(整个文件夹也可以一起上传)3)username 是要上传服务器的用户名4)192.168.0.1 是要上传的服务器ip地址5)ad...

2020-04-29 15:54:02 527

原创 深度优先遍历DFS和宽度优先遍历BFS

深度优先遍历和宽度优先遍历,其实算法原理都很相似,区别在于**深度遍历:只有当一个节点的所有后代被访问完,才会访问同层的下一个节点;宽度遍历: 只有同层的所有节点访问完,才会继续访问下一层节点**因此在设计算法时,深度遍历可以借助栈,先压当前节点再压后代,就保证了不会漏掉该节点的每一个后代,先后顺序也不会乱;而宽度遍历借助队列,则保证了每次压入队列时先弹出的都是同一层的节点。深度优先遍历(...

2020-04-25 22:39:32 352

原创 数据结构算法之判断是否为平衡二叉树

数据结构什么叫平衡二叉树?如果在一棵二叉树中,任何一个子树的左右子树的深度差(高度差)不超过1,则该二叉树输入平衡二叉树,否则不是。判断方法有两种:1. 从上往下依次递归判断首先假设当前的头结点高度为1,每往下走一层高度+1,只要当前节点不为None,则递归获取当前节点的左子树高度和右子树高度;在每轮递归时都要判断当前左子树和右子树的高度差是否大于1,如果大于1,则直接返回Fals...

2020-04-24 17:59:19 616

空空如也

空空如也

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

TA关注的人

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