自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python 刷题之 bisect

【代码】python 刷题之 bisect。

2023-04-04 15:36:02 403 1

原创 【树形DP】树边染色,携程2023年3月29号晚算法岗笔试第四题随笔记录

2、如果我们染色以root为端点的某一条边,这时我们有3种选择,我们可以选择3条边(root-x1),(root,x2),(root,x3)中任何一条边来进行染色。1、如果我们不染色以root为上端点的任何一条边,也就是(root-x1),(root,x2),(root,x3)均不染色。这时以root为根的树的最大染色权重为其所有子树x1,x2,x3的最大染色权重之和。我们以dp[0][i]表示不选择以节点i为上端点的边时所能得到的一个最大染色权重;注:所谓树,即不包含重边、自环和回路的无向连通图。

2023-03-30 13:02:16 829 2

原创 LSTM多GPU训练、pytorch 多GPU 数据并行模式踩坑日记, LSTM, nn.DataParallel()

LSTM多GPU训练pytorch 多GPU 数据并行模式踩坑日记多GPU训练时遇到的BUG解决方法

2022-05-12 14:10:03 2852

原创 DataLoader的collate_fn参数 default_collate 与 自定义的 collate_fn

文章目录1、构建数据,datasets2、使用default_collate函数构建dataloader(也就是不调用自己实现的collate_fn)3、使用自己的mycollate函数构建dataloader,以实现和default_collate一样的效果:4、在输出的格式上稍作修改,输出字典格式5、关于Default_collate函数collate_fn :DataLoader中的一个参数 实现自定义的batch输出。主要是自己在不满意默认的default_collate的batch处理结果的情况

2022-05-11 18:19:06 4018

原创 nn.BCELoss()与nn.CrossEntropyLoss()的区别

nn.BCELoss()可以认为是nn.CrossEntropyLoss()的一个二分类的特例1、但是在使用nn.BCELoss()时需要先加上一个Softmax()层,而使用nn.CrossEntropyLoss()时该函数会自动添加Softmax层。2、BCELoss = - target * torch.log(pred) - (1-target) * torch.log(1-pred)因为log0 = -inf, log1 = 0, 可能会出现损失函数nan和inf的情况。BCELoss进行了截

2022-05-02 21:53:27 2437

原创 Kaggle Competition : U.S. Patent Phrase to Phrase Matching

Kaggle Competition : U.S. Patent Phrase to Phrase Matching描述:你想从与专利发明相关的巨量文本数据集中抽取信息吗?现在就有一个机会。美国专利和商标局提供了一个最大的科学宝库,通过其开放数据门户网站向全世界提供技术和商业信息。专利是一种知识产权授予的形式,以换取公开披露新的和有用的发明。由于专利在授予前要经过严格的审查程序,而且由于美国的创新历史跨越了两个世纪和1100万项专利,美国专利档案是数据量、质量和多样性的罕见组合。“The USPT

2022-04-06 16:39:52 1217

原创 LSTM&BiLSTM输出output与h_n的关系

先说结论结论对于单向LSTMh_n = output[:,-1,:]对于双向LSTM来说,output[:batch_size, -1, :hidden_szie*2/2] = h_n[0,:,:] #其中2表示bidirection方向为2output[:batch_size, 0, hidden_szie*2/2:] = h_n[1,:,:] #其中2表示bidirection方向为2output_size:[batch_size, sequence_lenght, hidden_sz

2022-02-23 16:29:08 1332

原创 git学习笔记

一、安装二、常用命令初始化:创建一个git仓库,创建之后就会在当前目录生成一个.git的文件git init添加文件:把文件添加到缓冲区git add filename添加所有文件到缓冲区(从目前掌握的水平看,和后面加“.”的区别在于,加all可以添加被手动删除的文件,而加“.”不行):git add .git add --all提交:提交缓冲区的所有修改到仓库(注意:如果修改了文件但是没有add到缓冲区,也是不会被提交的git commit -m "提交的说明"commit

2022-01-20 15:52:04 191

原创 scipy.sparse.coo_matrix

记录一下:scipy.sparse.coo_matrixclass scipy.sparse.coo_matrix(arg1, shape=None, dtype=None, copy=False)

2021-12-21 12:12:24 212

原创 torch.max(tensor_data,dim)

a = torch.Tensor([[1,2,3,4] ,[5,3,1,4]])tensor([[1., 2., 3., 4.], [5., 3., 1., 4.]])torch.max(a,1)返回每一行中最大值的那个元素,且返回其索引(返回最大元素在这一行的列索引)torch.max(a,dim=1)torch.return_types.max(values=tensor([4., 5.]),indices=tensor([3, 0])

2021-12-14 16:32:59 1510

原创 关于DataLoader:default_collate(batch),Batch自动变成Tensor数据类型的探索

1、我DataLoader中DateSet的数据形式为([101, 860, 7741, 9648, 2330, 2292, 953, 1921, 2248, 7987, 6381, 1282, 1920, 1158, 3173, 3519, 6229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

2021-12-14 14:41:27 2586

原创 代码中bert的输入和输出

Inputs: `input_ids`: a torch.LongTensor of shape [batch_size, sequence_length] with the word token indices in the vocabulary(see the tokens preprocessing logic in the scripts `extract_features.py`, `run_classifier.py` and `run_squad.py`

2021-12-12 02:03:20 7586 3

原创 Dataset的简单构建

我们自定义的Dataset类必须要实现:class dataset(Dataset): def __init__(self, corpus_path, sentence_max_length): pass def __getitem__(self, index): pass def __len__(self): pass可以看到自定义的dataset必须要有len()方法,和下标索引方法所以我们并不是构建一个dataload

2021-11-30 21:32:19 2993

原创 NLP自己动手构建一个简单的Dataset

NLP应用构建一个简单的Dataset参考:入口需要处理的语料文件 corpus_engllish.txt 的文件格式大致如下:The Rock is destined to be the 21st Century Segal . ||| 3The gorgeously elaborate continuation of `` The Lord of the Rings '' trilogy Middle-earth . ||| 4Singer/composer Bryan Adams contr

2021-11-30 20:53:47 2017

原创 np.c_与np.r_

np.c_与np.r_a = np.array([[1, 2, 3],[7,8,9]])b=np.array([[4,5,6],[1,2,3]])c = np.array([1, 2, 3])d = np.array([4,5,6])print('a=',a,"\n",'b=',b)输出为:a= [[1 2 3] [7 8 9]] b= [[4 5 6] [1 2 3]]np.c_[a,b]可以看出c_是按合并array([[1, 2, 3, 4, 5

2021-10-24 14:27:09 97

原创 make_classification()的使用

make_classification()参数信息参考:make_classification()参数信息from sklearn import preprocessingimport numpy as npfrom sklearn.model_selection import train_test_splitfrom sklearn.datasets import make_classificationfrom sklearn.svm import SVCimport matplotlib.

2021-10-13 18:36:45 2349

原创 make_classification()

make_classification()def make_classification( n_samples=100, n_features=20, *, n_informative=2, n_redundant=2, n_repeated=0, n_classes=2, n_clusters_per_class=2, weights=None, flip_y=0.01, class_sep=1.0, hyp

2021-10-13 17:08:03 728

原创 数据预处理【sklearn.preprocessing,OneHotEncoder,标准化,正则化,缺失值,StandardScaler(),fit(),transform()】

参考blog1 2 3 4 5 6 7一、序言当我们拿到一批原始的数据需要进行以下操作:1、首先要明确有多少特征,哪些是连续的,哪些是类别的。2、检查有没有缺失值,对确实的特征选择恰当方式进行弥补,使数据完整。3、对连续的数值型特征进行标准化,使得均值为0,方差为1。4、对类别型的特征进行one-hot编码。5、将需要转换成类别型数据的连续型数据进行二值化。6、为防止过拟合或者其他原因,选择是否要将数据进行正则化。7、在对数据进行初探之后发现效果不佳,可以尝试使用多项式方法,

2021-10-13 11:33:06 541

转载 transforms 中的各个预处理方法进行介绍和总结

一、 裁剪——Crop1.随机裁剪:transforms.RandomCrop2.中心裁剪:transforms.CenterCrop3.随机长宽比裁剪 transforms.RandomResizedCrop4.上下左右中心裁剪:transforms.FiveCrop5.上下左右中心裁剪后翻转: transforms.TenCrop二、翻转和旋转——Flip and Rotation6.依概率p水平翻转transforms.RandomHorizontalFlip7.依概率p垂直翻转tra

2021-09-21 11:10:28 2826

原创 vscode_python环境的配置

一、首先要下载Vs Code和Python解释器然后设置Vs Code下载几个好用的插件: .1.Better Comments(多彩注释)2.TabNine (自动补齐,支持Python C++ Java JavaScript等等, 还有人工智能)3.Bracket Pair Colorizer (多彩括号和大括号)4.vscode-icons(文件图标, 仅仅推荐)5.Python(必须要装这个插件)装完插件过后,就可以开始写程序了注意:新手小白很常犯的错误是:直接用Vs Code打

2021-03-31 21:22:57 208

原创 哈弗曼树的建立与编码

哈弗曼树问题:在"7.in"中有几个数,和为1,进行哈弗曼编码,并把编码结果输出到"7.out"中。Sample input:0.1 0.15 0.2 0.25 0.3Sample output:000001011011思路:根据哈夫曼树的建立思想,每一次都是选取权重最小的两个子树进行合并成新的树,然后再将新树加入到集合中,直至集合中只有最后一颗树。这个集合可以考虑使用优先队列来进行保存子树集合,这样我们可以不用考虑选取最小的两个子树的过程,优先队列会直接返回权值最小的子树。关

2021-03-01 14:21:25 199

原创 2019PAT冬原题

Sample Input:..C...C.C.C...CCCCCCC...CC...CC...CCCCC.C...CC...CCCCC.C...CC...CCCCC..CCC.C...CC....C....C....C...C.CCC.CCCC.C...CC...CC...CC...CC...CCCCC.CCCCCC....C....CCCC.C....C....CCCCCCCCCCC....C....CCCC.C....C.

2020-09-12 21:44:15 923

原创 2019PAT秋季原题

Sample Input:26 457 80Sample Output:Case 110 18999910 27999910 36999910 45999910 54999910 63999910 72999910 81999910 909999Case 2No SolutionSample Input:00100 01000 702233 2 3489100100 6 0000134891 3 1008601000 1 0223300033 5 -1.

2020-09-12 21:39:10 378

原创 2019PAT春季原题

Sample Input 1:47Sample Output 1:Yes41Sample Input 2:21Sample Output 2:No23Sample Input:537292819690611871061048119780620221344068419861215041713072819571002001X150702193604190912653012519790126001915070219360419091222022119670102.

2020-09-12 21:33:34 244

原创 2020年PAT秋原题

这一次的PAT应该来说比前几次都难了不少了,至少在满分的人数上比前几次的人数减少了好多,上一次满分有95个这一次我在考试结束前5分钟的时候看了看只有30多个人拿了满分。下面给大家看看我截下来的原题图,以供大家参考。第一题忘记截了,我没有做出了,应该只拿了13分好像。(我用的找极小值的方法,不知道是不是思路上就错了)。题目意思就是:给Panda喂milk,每个熊猫至少要喂200ml。然后若相同体重的熊猫发现喂的牛奶不一样,那么就是饲养员“偏心”。熊猫之间就会打起来,不能好好喝牛奶。但是呢,每个熊猫只能比

2020-09-07 13:39:39 4833 1

原创 给出一个整数,求解该整数各位之和。

第一方法:使用string存储该数字,然后遍历该数组所有位,进行累加求和。int sum(string num){ int sum_num; for(int i=0;i<num.length();i++){ sum_num+=num[i] - '0'; } return sum_num;}第二种方法:利用递归的方法进行求解。int sum(int n){ if(n==0) return 0; else return sum(n/10)+n%10;}若在学到其

2020-09-04 15:01:37 615

原创 1147 Heaps 我出错的地方,及其改正

在判断是否符合堆的特性时,我一开始使用的判断语句是:if ((heap[root] > heap[2 * root] || heap[root] > heap[2 * root + 1]) && (heap[2 * root]!= -999999 && heap[2 * root + 1]!= -999999)) flag_min = 0;//不是小根堆;虽然我将每个空节点都设置为了-999999.但是这样有一个致命的错误,就是root*2可能超过设置

2020-09-03 20:37:25 237

原创 1153 Decode Registration Card of PAT 最后两个测试点

不使用printf最后两个测试点会过不去,将COUT换成printf后就可以通过了。#include<bits/stdc++.h> #include<unordered_map>using namespace std;struct stu { string NO; int score; stu(string a,int b):NO(a),score(b){}};struct exam_room { string NO; int stu_num; exam_ro

2020-08-31 22:19:13 520

原创 1152 Google Recruitment【及其简单的一道题,说说一些注意的测试点】

1152 Google Recruitment (20分)OJ入口注意的点:1、在遍历输入的字符串中,注意边界的处理,不要忘记等号。2、输出的时候注意00004这种情况,前面的0也是要输出的。#include<bits/stdc++.h>using namespace std;string num;bool isprime(int num){ if(num==1||num == 0) return false; for(int i=2;i*i<=num;i++){

2020-08-20 18:59:39 461 2

原创 【数据结构】归并排序

归并排序(Merge) 稳定性: 稳定最好时间复杂度: O(nlog n)最坏时间复杂度: O(nlog n)空间复杂度: O(n)将两个有序数组进行归并:void Merge(int low, int mid, int high) { int *B = (int*)malloc(N * sizeof(int)); for (int i = low; i <= high; i++) B[i] = A[i]; int i = low, j = mid + 1,

2020-08-02 10:26:11 100

原创 【操作系统OS】简答题必备 第二章:进程管理

• 1、库函数和系统调用的区别和联系• 库函数是应用程序的一部分,运行在用户空间中。而系统调用是操作系统的一部分,内核为用户提供的程序接口,运行在内核空间中。许多库函数都会使用系统调用来实现调用某一些内核功能,未使用系统调用的库函数,其执行效率通常要比系统调用的高。因为使用系统调用时,需要上下文的切换以及用户态和核心态的切换。• 2、处理器为什么要区分核心态和用户态两种操作方式,在什么情况下会...

2020-08-02 09:26:11 347

原创 【数据结构】 堆排序,简单选择排序

选择排序稳定性: 不稳定最好时间复杂度: O(n^2)最坏时间复杂度: O(n^2)空间复杂度: O(1)void Select_Sort() { for (int i = 1; i <= N - 2; i++) { int min = i; for (int j = i; j < N; j++) { if (A[j] < A[min]) min = j; } if(min!=i) swap(A[min], A[i]);//min

2020-08-01 15:55:42 195

原创 【数据结构】交换排序(冒泡排序,快速排序)

冒泡排序稳定性: 稳定最好时间复杂度: O(n)基本有序的话不用交换直接比较一遍元素就好了最坏时间复杂度: O(n^2)空间复杂度: O(1)void Bubble_Sort() { for (int i = N-1; i >= 0; i--) { int flag = 0; for (int j = 1; j < i; j++) { if (A[j] > A[j + 1]) { swap(A[j], A[j + 1]);

2020-08-01 13:18:49 148

原创 【数据结构】 插入排序 (包括复杂度,稳定性) (直接插入排序,折半插入排序,希尔排序的代码实现)

定义好数组长度和待排数组,其中A[0]用作暂存空间,或者哨兵const int N = 9;int A[N] = { 0,49,38,65,97,76,13,27,49 };插入排序稳定性: 稳定 最好时间复杂度: O(n) 最坏时间复杂度: O(n^2)空间复杂度: O(1)void InsertSort() { int i, j; for (int i = 2; i < N; i++) { //从第二个元素开始 if (A[i]

2020-08-01 11:04:58 1109

原创 【数据结构】拓扑排序 Kahn版和DFS版

Kahn版 TopologicalSort:const int NUM = 10;vector<int> v[10],ans_path;//其中v[]是用邻接表存储的一个图。int degree[NUM];int N,M;//图节点从1~N , 边数一共有M条 //其中v[]是用邻接表存储的一个图。bool TopologicalSort(){ stack<int> S; for(int i=1;i<=N;i++){ for(int j = 0; j&lt

2020-07-30 15:32:26 130

原创 进程中的各个分区中都存些什么?

程序进程中的分区中都存些什么?1、BSS区通常是指用来存放程序中未初始化的全局变量的一块内存区域。2、数据段通常是指用来存放程序中已初始化的全局变量的一块内存区域。3、代码段通常是指用来存放程序执行代码的一块内存区域,在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。4、堆堆是用于存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减。Windows系统在该进程退出时由OS释放,Linux则只在整个系统关闭时OS才去释放。5、栈栈又称堆栈,用户存放程序临时创建的

2020-07-26 19:23:10 543

原创 2020PAT甲级春季考试题目及解答

总结:按这个出题的风格,历年的题应该没啥常考价值了,没有模板体,都得靠平时编码积累。一、Prime Day1、题意:给你一个日期字符串,判断字符串及其后缀字符串所对应的数字是否是一个素数。如果全是素数的话还要输出一个 All Prime!,还有一个测试样例忘记了。思路:就是利用stoi()和 substr()可以几分钟直接过了这题。Input Sample20191231Output Sample20191231 Yes0191231 Yes191231 Yes91231 No

2020-07-25 18:56:19 3739 10

原创 Telefraud Detection

7-3 Telefraud Detection (25 分)Telefraud(电信诈骗) remains a common and persistent problem in our society. In some cases, unsuspecting victims lose their entire life savings. To stop this crime, you are supposed to write a program to detect those suspects from

2020-07-23 21:36:32 221

转载 C语言sprintf与sscanf函数

1、sprintf函数sprintf函数原型为 int sprintf(char *str, const char *format, …)。作用是格式化字符串,具体功能如下所示:(1)将数字变量转换为字符串。(2)得到整型变量的16进制和8进制字符串。(3)连接多个字符串。1 char str[256] = { 0 }; 2 int data = 1024; 3 //将data转换为字符串 4 sprintf(str,"%d",data); 5 //

2020-07-23 11:08:02 204

原创 vector数组之间的较量之<,>,==

在各大OJ算法题中我们经常会遇到一些最优结果的求解。例如下面这种要求:就是说数组A[]<B[],当且仅当A[i] == B[i] (i=0,1,2,3…L-2,L-1);而A[L]<B[L]。emmmmm大家可以联想一下字符串的字典序进行比较,就是你把数组看成一个字符串,这样就可以利用字典序进行比较啦。这种做法一般都是直接写个函数进行判断,但是很麻烦有木有,下面给大家介绍一下vector数组之间的比较符。利用vector可以直接判断两个数组是否相等,判断两个数组之间的大小关系。例如

2020-07-23 09:33:53 1228 1

空空如也

空空如也

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

TA关注的人

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