自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 资源 (2)
  • 收藏
  • 关注

原创 安装fabricmanager解决print(torch.cuda.is_available())报错NumCudaDevices()

print(torch.cuda.is_available())报错但是CUDA和cudnn都安装完成,版本对应良好,报错如下 UserWarning: CUDA initialization: Unexpected error from cudaGetDeviceCount(). Did you run some cuda functions before calling NumCudaDevices() that might have already set an error? Error 802:

2023-09-05 10:46:43 2052

原创 linux正确下载lfs(用来在huggingface上下载模型)

【代码】linux正确下载lfs(用来在huggingface上下载模型)

2023-08-30 13:11:42 412

原创 利用register_forward_hook()精确定位到模型某一层的输入和输出

在论文中偶然读到一些方法会用到模型中间的隐藏层作为分类器,与模型最后一层作为分类器的性能进行对比,故而思考如何能够简便快捷地实现将模型某一层的输出输出拉取出来的方法,发现有现成hook函数可以做到这一点。

2023-08-23 15:35:57 378

原创 pip安装时出现:INFO: This is taking longer than usual. You might need to provide the dependency resolver w

INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.

2023-08-11 15:26:55 1323 1

原创 Deep Bidirectional Language-Knowledge Graph Pretraining论文阅读

最近的工作表明,知识图(KG)可以补充文本数据,提供结构化的背景知识, 为推理提供有用的支架。然而,这些作品并没有经过预先的训练来学习大规模的两种模态的深度融合,这限制了获得文本和 KG 完全联合表征的潜力。在这里,我们提出 DRAGON(深度双向语言知识图预训练),一种自我监督的方法,用于从文本和KG在规模上预训练深度联合的语言知识基础模型。具体来说,我们的模型采用成对的文本段和相关的 KG子图作为输入, 并双向融合来自两种模态的信息。

2023-04-23 11:27:51 555 2

原创 leetcode刷题——字符串(双指针、滑动窗口、动态规划)

具体来说,小于 −231 的整数应该被固定为 −231 ,大于 231 − 1 的整数应该被固定为 231 − 1。将前面步骤读入的这些数字转换为整数(即,“123” -> 123, “0032” -> 32)。请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。

2023-04-12 13:31:07 433

原创 leetcode刷题——数组部分(排序、双指针、二分查找)

例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2]。例如,arr = [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1]。而 arr = [3,2,1] 的下一个排列是 [1,2,3] ,因为 [3,2,1] 不存在一个字典序更大的排列。类似地,arr = [2,3,1] 的下一个排列是 [3,1,2]。例如,arr = [1,2,3] 的下一个排列是 [1,3,2]。

2023-04-09 21:27:43 307

原创 GPT-4博客介绍

为防止模型拒绝有效请求,我们从各种来源收集了多样化的数据集(例如,标记的生产数据、人类红队、模型生成的提示),并在允许和不允许的类别上应用安全奖励信号(具有正面或负面价值)。与之前的GPT模型一样,GPT-4基础模型的训练目标是预测文档中的下一个单词,并使用公开可用的数据(如网络数据)以及我们许可的数据进行训练。需要注意的是,RLHF并不能提高在各类考试上的成绩,模型的能力主要依赖数据和算力的堆砌,用简单的language modeling loss得到结果,然而,GPT-4的额外功能导致了新的风险面。

2023-04-07 11:25:43 611

原创 21根火柴游戏【C语言实现】

21根火柴游戏。现有21根火柴,两人轮流取,每人每次可以取1至4根,不可多取(假如多取或者取走的数量不在合法的范围内,则要求重新输入),也不能不取,谁取最后一根火柴谁输。请编写一个程序进行人机对弈,要求人先取,计算机后取;请设计一种计算机取走火柴的规则,使得计算机一方为常胜将军。**输入格式要求:“%d” 提示信息:“Game begin:\n” “How many sticks do you wish to take (1~%d)?”**输出格式要求:" %d sticks left in the

2023-03-19 11:52:44 1529

原创 深度学习面试问题汇总(二)

深度学习面试问题汇总(二)Batch Normalization、Layer Normalization、Instance Normalization、Group Normalization1BN1.1什么是**internal covariate shift**问题?具体表现是什么呢?1.2BN的具体实现及细节问题2LN3GN4 BN、LN、IN、GN的区别优化器1. Batch gradient descent(BGD)2.Stochastic gradient descent(SG

2023-03-17 16:43:51 396

原创 深度学习面试题汇总(一)

规范化将越来越偏的分布拉回到标准化的分布,使得激活函数的输入值落在激活函数对输入比较敏感的区域,从而使梯度变大,加快学习收敛速度,避免梯度消失的问题。第L层每个神经元的激活值进行Normalization操作,比如BatchNorm/ LayerNorm/ InstanceNorm/ GroupNorm等方法都属于这一类;对神经网络中连接相邻隐层神经元之间的边上的权重进行规范化操作,比如Weight Norm就属于这一类。

2023-03-15 22:31:45 445

原创 C语言:写一个程序读入一条句子中的所有单词,并计算该语句中所有单词的平均长度。假定句子以换行结束,单词间用空格分隔,并且每个单词长度不超过25个字符。 **提示信息:“请输入一行字符:“ **输出格

写一个程序读入一条句子中的所有单词,并计算该语句中所有单词的平均长度。假定句子以换行结束,单词间用空格分隔,并且每个单词长度不超过25个字符。**输出格式要求:“总共有%d个单词,平均长度为%d\n”**提示信息:“请输入一行字符:”

2023-03-09 21:29:10 472

原创 torch.max()详解

pytorch文档中提到:该函数返回一个元组:(值,索引),其中值是给定维度dim中输入张量每行的最大值。索引是找到的每个最大值(argmax)的索引位置。如果keepdim为True,则输出张量的大小与输入相同,但维度dim中的大小为1。否则dim被压缩,导致输出张量的维数比输入少1。注:若有多个最大值,则返回第一个最大值的索引。

2023-03-02 16:40:21 948

原创 BertTokenizer的使用方法(超详细)

convert_tokens_to_ids是将分词后的token转化为id序列,而encode包含了分词和token转id过程,即encode是一个更全的过程,另外,encode默认使用basic的分词工具,以及会在句子前和尾部添加特殊字符[CLS]和[SEP],无需自己添加。从下可以看到,虽然encode直接使用tokenizer.tokenize()进行词拆分,会保留头尾特殊字符的完整性,但是自己也会额外添加特殊字符。将token映射为其对应的id(ids是我们训练中真正会用到的数据)

2023-03-01 23:39:07 11348

原创 Zero-shot(零次学习)简介

所以模型需要知道的信息是马的样本、老虎的样本、熊猫的样本和样本的标签,以及关于前三种动物和斑马的描述。假设我们已知驴子和马的形态特征,又已知老虎和鬣狗都是又相间条纹的动物,熊猫和企鹅是黑白相间的动物,再次的基础上,我们定义斑马是黑白条纹相间的马科动物。如今十分火热的纯监督模型往往需要足够多的样本才能训练出足够好的模型,并且用熊猫训练出来的分类器,只能对熊猫进行分类,其他物种都无法识别,也无法进行特征的综合推理,这样的模型功能还有待完善。ZSL这样的设置其实就是上文中识别斑马的过程中,已知的条件。

2023-02-19 11:27:44 18261 4

原创 指针数组和数组指针

指针数组:本质上它就是一个数组,只不过它是由多个指针变量构成的。指针变量存放各自指向的地址。数组指针:本质上它就是一个指针,它是存在与二维以及多维数组中的行指针。数组指针的定义:数据类型(*指针变量名)【元素的个数】;指针数组的定义:数据类型 * 指针变量名【元素的个数】;

2023-02-08 19:16:53 84

原创 清华机试——叠筐问题

输入是一个个三元组。分別是:外筐尺寸n(n为满足0<n <80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符。输出叠在一起的筐图案,中心花色与外筐花色宇符从内层起交错相叠,多筐相叠时,最外筐的角总是破打磨掉。叠筐与叠筐之间应有一行间隔。把一个个大小差一園的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机完成,得看你的了。

2023-02-08 00:08:58 448

原创 用二维数组输出图形(所有题目均适用)

分析:h=4时 第一行为h个 星号,第二行h+2个星号 …第四行h+6个星号 每行的空格和星号总数为3h-2。输入一个高度h,输出一个高度为h、上底边长度为h的梯形。按照此规律讲字符填入二维数组并进行打印即可。一个整数h(1 ≤h≤1000)

2023-02-06 14:22:52 1479

原创 Alexnet实现Caltech101数据集图像分类(pytorch实现)

从101个文件中读取图像数据(进行resize和RGB的转化,原始图像数据大小不一,必须resize),并为其加上101类标签(0-100)进行图像变换,并分出训练集,验证集和测试集自定义一个数据集类(继承自dataset)便于数据加载网络结构Alexnet模型由5个卷积层和3个池化Pooling 层 ,其中还有3个全连接层构成。AlexNet 跟 LeNet 结构类似,但使⽤了更多的卷积层和更⼤的参数空间来拟合⼤规模数据集 ImageNet。它是浅层神经⽹络和深度神经⽹络的分界线。Alexnet

2022-06-10 19:05:34 5827 5

原创 pytorch中.numpy()、.item()、.cpu()、.detach()及.data的使用

目录.numpy().item().cpu().detach()和.data(重点).numpy()Tensor.numpy()将Tensor转化为ndarray,这里的Tensor可以是标量或者向量(与item()不同)转换前后的dtype不会改变a = torch.tensor([[1.,2.]])a_numpy = a.numpy() #[[1., 2.]].item()将一个Tensor变量转换为python标量(int float等)常用于用于深度学习训练时,将loss值转换为

2022-05-09 09:23:21 12228

原创 torch.nn.CrossEntropyLoss()使用注意

torch.nn.CrossEntropyLoss()使用注意CrossEntropyLoss(将 nn.LogSoftmax() 和 nn.NLLLoss() 结合在一个类中)一般用于计算分类问题的损失值,可以计算出不同分布之间的差距。CLASS torch.nn.CrossEntropyLoss(weight: Optional[torch.Tensor] = None, size_average=None, ignore_index: int = -100, reduce=None, reduct

2022-05-05 23:37:48 2222

原创 1×1卷积在神经网络中的理解和应用

1×1卷积我们经常会在各种网络中看到1×1的卷积核,这是一个非常实用的卷积核,那么为什么要使用1×1的卷积核呢?我们可以从两个角度进行理解信息融合1×1卷积运算可以将多个通道的信息进行融合,例如上图中三个通道进行卷积后,变为一个通道,不同通道相同位置的像素会被加权相加在结果像素中。在MobileNet中,需要进行Depthwise和pointwise操作:Depthwise:将每一个通道分为一个组,每组一个卷积核专门负责这一个通道的卷积,相比于普通的卷积,计算量大大下降Poinwise:

2022-05-04 17:00:20 2511

原创 ResNet原理详解

目录Residual Net为什么要引入残差连接?残差网络结构解析残差块的实现ResNet模型实现Residual Net首先下图为一个简单的残差连接,我们先不介绍具体内涵,而是讨论一下为什么需要残差连接?注意:googlenet在这里是拼接,resnet是相加为什么要引入残差连接?首先大家已经形成了一个通识,在一定程度上,网络越深表达能力越强,性能越好。不过,好是好了,随着网络深度的增加,带来了许多问题:计算资源的消耗模型容易过拟合梯度消失/梯度爆炸问题的产生在resnet出来之

2022-05-04 14:58:05 6214

原创 pytorch中的dataset和DataLoader创建数据集进行训练

目录序言Dataset和DataLoaderDatasetDataLoader具体实现(构造数据集、加载数据集、训练)序言1.每次采用一个样本进行随机梯度下降,会得到随机性较好的训练结果,但是速度较慢,训练时间长2.加入batch,用全部的样本进行训练时速度十分快,但是会训练效果会下降。所以在这里引入mini-batch,综合二者的优点,得到折衷的结果。batch_size(批量大小):进行一次前馈、反馈、更新所用到的样本数量iteration(迭代次数):样本数量/批量大小一般来说PyTor

2022-05-03 20:52:46 2636

原创 Batch Normalization解析

Batch NormalizationBatch Normalization, 批标准化, 和普通的数据标准化类似, 是将分散的数据统一的一种做法, 也是优化神经网络的一种方法发现问题如上图所示,在神经网络中, 数据分布对训练会产生影响. 比如某个神经元 x 的值为1, 某个 Weights 的初始值为 0.1, 这样后一层神经元计算结果就是 Wx = 0.1; 又或者 x = 20, 这样 Wx 的结果就为 2. 现在还不能看出什么问题, 但是, 当我们加上一层激励函数, 激活这个 Wx 值的时候

2022-05-03 00:21:55 814

原创 pagerank算法详解

目录一、pagerank定义两个重要假设二、pagerank算法公式定义计算演示矩阵化计算三、存在的两个问题问题1.Dead Ends问题2.Spider Traps一、pagerank定义入链数:指向该节点的链接数出链数:由该节点指出的链接数以上图为例:A的入链数为1,出链数为3,所以将由A指向其他节点的边权重设置为1/3,表示A访问B、C、D节点的概率均为1/3两个重要假设数量假设:在Web图模型中,如果一个页面节点接收到的其他网页指向的入链数量越多,那么这个页面越重要。质量假设:指向

2022-04-16 10:09:04 37200 8

原创 临界资源及临界区(内核/普通)以及三种进程不能切换的情况

临界资源和临界区临界资源:虽然进程可以共享系统中的各种资源,但其中许多资源一次只能为一个进程所用,我们将一个时间段内只允许一个进程使用的资源。各进程需要互斥地访问的资源叫做临界资源。普通临界资源:如打印机,摄像头等,进程访问这些资源的时候,运行速度很慢,并且会阻塞其他请求这一资源的进程,知道本进程结束,才在等待队列中唤醒一个等待的进程我们可以将对临界资源的访问分为四个部分:进入区(检查并上锁)、临界区、退出区(标志清除)和剩余区。临界区:访问临界资源资源的那段代码。内核程序临界区内核程序临界区:

2022-04-15 17:07:39 4721

原创 Bert模型介绍及代码解析(pytorch)

21.Bert(预训练模型)动机基于微调的NLP模型预训练的模型抽取了足够多的信息新的任务只需要增加一个简单的输出层注:bert相当于只有编码器的transformer基于transformer的改进每个样本是一个句子对加入额外的片段嵌入位置编码可学习[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DwkojOLg-1649776319364)(C:\Users\pc\AppData\Roaming\Typora\typora-user-images

2022-04-12 23:15:36 10010 3

原创 LSTM基本理论及手写数字识别实战应用(pytorch)

LSTM介绍LSTM的特点(与RNN的区别)具体实现流程公式汇总及总结LSTM实现手写数字识别(pytorch代码)导入环境定义超参数训练和测试数据定义定义LSTM模型LSTM模型训练和预测

2022-04-07 09:59:37 3816 1

原创 图解奇异值分解SVD

目录奇异值分解目的线性变换分解的物理意义推广到任意大小的矩阵压缩后的重构(利用U、V和删去部分值得Σ)SVD分解的计算计算流程奇异值分解目的将一个任意矩阵M,分解为三个矩阵的乘积形式线性变换拉伸:旋转:左乘一个正交矩阵分解的物理意义推广到任意大小的矩阵奇异值从上至下依次递减,可以去掉奇异值小的部分,进行数据压缩。压缩后的效果:压缩后的重构(利用U、V和删去部分值得Σ)SVD分解的计算引入特征值的求算计算流程...

2022-03-22 17:15:07 553

原创 二叉树操作大全(C实现)

以下代码包括:辅助栈(链栈)、辅助队列(顺序存储循环队列)、二叉树的两种先序建立、先序中序后序遍历(递归)、中序遍历非递归方法、层次遍历。注释充分,逻辑清晰,代码可读性强。#include <stdio.h>#include <malloc.h>#include <stdbool.h>typedef char BiElemType;typedef struct BTNode{ BiElemType data; //数据域 struct BTN

2022-03-21 11:22:00 1281

原创 jupyter notebook 闪退问题解决(重新设定工作目录)

有段时间没有使用notebook,今天突然想跑一跑代码,结果发现jupyter notebook打开后立刻闪退,并不会弹出浏览器内容,在这里记录一下解决方案。找到配置文件首先WIn+R打开cmd输入jupyter notebook --generate-config:得到一个路径(jupyter的配置文件),修改配置文件直接打开该配置文件取消下图红色方框中第二行的注释,并为你的jupyter工程创建一个新的工作环境:以我个人为例:我创建的工作目录为"D:\Jupyter_projec

2022-03-17 21:00:24 13795 2

原创 使用一级/二级指针创建二叉树(两种角度详解二叉树建立及二级指针)

目录二级指针是什么???二叉树的创建二级指针是什么???可以先通过以下代码感知一下二级指针是什么?int main(){ int arr[5] = {1, 2, 3, 4, 5}; int* parr = &arr[0]; //也可以直接写数组名arr int* *pparr = &parr; //二级指针,指针的指针,一般希望修改函数中的指针时会用到 printf("%d\n", *(arr + 3)); //arr[3] print

2022-03-10 23:44:49 1764

原创 Mysql基础语句(创建、插入、单/多表查询)

目录基本操作创建数据库创建关系/表查询多表联合查询基本操作创建数据库create database的简单语法形式:create database 数据库名;-- 1.创建数据库create database SCT;创建关系/表创建create table简单语法形式:Create table 表名( 列名 数据类型 [ Primary key |Unique ] [Not null][, 列名 数据类型 [Not null] , … ]) ;Primary key: 主键约束。

2022-03-05 15:58:31 1069

原创 手撕递归(汉诺塔问题C代码实例讲解)

目录递归问题铺垫一个简单的递归程序递归的内部机制递归满足三个条件循环和递归?汉诺塔问题实现递归问题铺垫一个简单的递归程序# include <stdio.h>//递归求和int f(int n){ int res; if(n == 1){ return 1; }else{ return n + f(n - 1); }}int main(){ int a = f(100); printf("%d",

2022-03-04 23:38:53 287

原创 手撕链式栈+循环队列(动态分配长度)

链式栈空栈示意图:栈中有元素示意图:#include <stdio.h>#include <malloc.h>#include <stdbool.h>//链式栈typedef struct Node{ int data; struct Node * next;}NODE, * PNODE;typedef struct Stack{ PNODE pTop; //栈顶 PNODE pBottom;//栈底}STA

2022-03-03 10:11:45 297

原创 手撕链表各操作(插入、删除、排序)、指针操作

目录链表指针(地址)指针基础指针和一维数组指针与地址指针传入函数结构体typedef的使用动态分配内存链表#include <stdio.h>#include <malloc.h>#include <stdlib.h>#include <stdbool.h>typedef struct Node{ //单链表的节点类型 int data; struct LNode * next;}LNode, * PNode; //Lin

2022-03-01 00:08:40 547

原创 Transformer模型(pytorch代码详解)

目录Transformer模型基本介绍多头注意力有掩码的多头注意力基于位置的前馈网络层归一化信息传递(对应结构图中连接解码器与编码器的线)预测多头注意力实现Transformer实现Transformer模型基本介绍与seq2seq相比transformer是一个纯粹基于注意力的架构(自注意力同时具有并行计算和最短的最大路径长度这两个优势),没有用到任何CNN和RNN。如下图所示,transformer是由编码器和解码器组成的。transformer的编码器和解码器是基于自注意力的模块叠加而成的,源

2022-02-12 16:33:22 8568 1

原创 自注意力和位置编码(含pytorch代码)

目录自注意力和位置编码自注意力位置编码绝对位置信息相对位置信息代码实现导入模块自注意力位置编码自注意力和位置编码自注意力自注意力池化层将xi当作key, value, query来对序列特征得到yi与CNN、RNN进行比较:最长路径:信息从序列前端的某个位置传递到末端的某个位置的路径self-attention在长句子中虽然计算复杂度很好,但能很快地抓取距离很远的信息(适合处理较长的序列,付出了计算复杂度的代价,计算量超大)位置编码与CNN/RNN不同,自注意力并没有记录位置信息在处理

2022-02-08 17:18:43 5585

原创 数学建模比赛题型划分、常用算法及其适用场景

目录题型划分、常用算法及其适用场景常见赛题类型算法体系分类常用算法分类数据预处理模型及应用场景优化类模型及应用场景优化类模型:聚类模型及应用场景评价模型及应用场景预测类模型及应用场景题型划分、常用算法及其适用场景常见赛题类型优化类机理分析类评价类预测类算法体系分类数据处理模型优化模型预测模型评价模型聚类分析模型常用算法分类数据预处理模型及应用场景1.插值拟合主要用于对数据的补全处理;其中样本点较少时(泛指样本点小于30个)采用插值方法,主要有拉格朗日插值算法、牛顿

2022-02-07 22:32:29 14353

软件构造21春.zip

哈工大21春软件构造学习资料

2021-07-23

Git&github学习资料.zip

git&github学习文档

2021-07-21

空空如也

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

TA关注的人

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