自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++ 常见问题的回答

因为HTTP是无状态的,依次请求,下一次还是这个客户请求无法识别出这是熟人,自动填入用户名和密码解决方案就是session配合 cookie ;或者 token 配合 cookieSession和Token机制原理上差不多,都是用户身份验证的一种识别手段,它们都有过期时间的限制,但两者又有一些不同的地方。1、Session是存放在服务器端的,可以保存在:内存、数据库、NoSQL中。它采用空间换时间的策略来进行身份识别,若Session没有持久化落地存储,一旦服务器重启,Session数据会丢失。2、Toke

2023-08-14 17:02:00 181

原创 一些博客荣誉嘿嘿,一起创作一起进步~

2023-08-03 13:22:50 53

原创 NTS 对于METIS库的使用 :

train_sampler->update_metis_data()代码执行完,属于 Sampler类 全局的vector<vector<VertexId>>batch_nodes 属性的值就已经被正确安排上 对应METISbatch中的节点ID了。因此: MetisPartitionGraph() 在调用 MetisPartition() 后,用 partition_id 承接子图划分后的结果。并且将各个METIS子图所包含的节点ID 按顺序 线性存放在 metis_partition_id 中。

2024-02-26 19:50:38 306

原创 关于在代码中vector的一些使用

简言之,就是 无论是数组还是vector都可以使用列表初始化,也可以使用 数组 初始化 vector。下面的内容使用C++11版本。

2024-02-21 14:43:53 245

原创 CSC 转 CSR 的C++代码:

template <typename T>void printfVector(vector<T>&vec) { printf("输出:\n"); for(int i=0;i<vec.size();i++) { printf("%ld ",vec[i]); } printf("\n");}// 如果函数需要修改 vector 的内容或者需要避免不必要的拷贝操作,可以使用引用传递void csc2csr(int v_size, int

2024-02-20 18:38:42 145

原创 VSCode C/C++无法跳转到定义(又是你 clangd !)

如果设置不了,那就吧clangd这个扩展禁用掉,然后再次修改 Intelli Sense Engine 为default 就可以啦。把 C_cpp : Intelli Sense Engine 的内容设置为 default。点击 齿轮⚙ 符号,进入 配置设置,找到。重新配置后,重启 vscode 就行了。

2024-02-20 16:21:51 867 1

原创 MAC VSCODE g++编译器无法编译C++11语法的 解决办法(CodeRunner版本)

于是我很诧异,我自己用终端手敲了一遍 g++ main.cpp -std=c++11 就不会提示我语法出错,那就说明,是这个语句没有指定C++版本为11导致的编译错误。coderunner的原理大致是:先判断你这是什么语言,然后有一个 code-runner.executorMap 来对应各个语言是用什么执行语句。OK,那么,解决办法也很简单,在coderunner的设置中把对应的编译语句加上std=c++11就成了。然后,重启VSCODE(不重启理论上也行,但还是有仪式感的重启一下吧)

2024-02-17 16:37:11 443

原创 写代码时遇到的一些工程性问题

aaaaaaaaaaaaaaaaaaaaaaaaaaa

2024-02-17 14:49:02 101

原创 函数模板 函数参数

可以显示得使用 来指明 typename 中的R的含义,也可以通过传入参数让编译器自己意会。但是编译器一会会存在意会错误的情况,因此更建议。1. 函数模板只能在全局中定义,或者是在类中定义。不可以在函数中(例如 main 函数中被定义)我真的麻了,就是欠的债一定一定要补上,不然就会一直一直的恶心你!而且就是这种常见的语法,由于我不会,导致我。2. 举个例子:函数模板的定义和使用。

2024-02-14 21:47:32 221

原创 如何通过DOI搜索到文章

打开下述连接,输入DOI号或者直接键入文章名字就好了。

2024-01-18 20:04:10 536

原创 解决方案|AttributeError: (module ‘scipy.sparse‘ has no attribute ‘coo_array‘) | 常见下载指定版本库的命令

打算画图,然后发现一直报错:AttributeError: (module ‘scipy.sparse‘ has no attribute ‘coo_array‘)网上说可能是networkx 和scipy 的版本原因,于是我先更新了scipy 原来的scipy是1.6.2 这个版本,更新为 :1.8版本。networkx 一直是 3.1 版本的。指定版本 为1.8版本。

2023-12-23 20:00:05 851

原创 ubuntu pycharm 死机,如何重启

如图所是,我们看到有多个pycharm的进程正在运行,找到对应的id。通过 `kill -s 9 IDXXX` 结束指定进程。2. 使用 kill -s 9 来杀死进程。1. 找出pycharm 进程的id。ps -ef 是查看当前运行的进程。

2023-12-15 19:32:16 1196

原创 GraphSAGE 到底在训练什么? 图上的Mini-Batch 是怎么训练的 ?

【代码】GraphSAGE 到底在训练什么?图上的Mini-Batch 是怎么训练的?

2023-12-12 21:39:02 953

原创 python 源码阅读

,但一般情况下,普通字符串表示也可以用于函数的文档字符串。选择使用原始字符串表示主要是考虑到其中可能包含大量特殊字符,使用原始字符串可以方便地避免对特殊字符进行转义。文档字符串是放置在函数定义内部顶部的字符串,用于描述函数的作用、参数、返回值以及其他相关信息。它们通常被用作函数的说明文档,便于其他开发者理解并正确使用该函数。需要注意的是,虽然这里使用了原始字符串表示(的说明,包括函数的功能描述、参数说明等。内的内容提供了对函数。

2023-12-06 20:31:02 479

原创 GCN 到底在训练什么呢?关于全图GNN训练,在聚合什么,训练什么?

但如果我们将该脚本作为模块导入到另一个脚本中,则__name__属性会被设置为模块的名称(例如"example"),语句块中的代码不会被执行。在DGL 中使用一串 True 或 False 组成的 一维tensor 来标识 这个节点到底是属于 train test val 哪一类。当我们直接执行这个脚本时,__name__属性被设置为__main__,因此满足if条件,语句块中的代码被调用。就可以:select_label_tensor = labels[train_mask] 了。

2023-12-04 22:43:05 524

原创 记录一个傻错误:“error: expected identifier before string constant“

然后我 在类的属性中定义了一个 ofstream 类型的变量,指定了路径,然后就会给我抱着个错误,号和,真够傻的:"error: expected identifier before string constant"就是 : 在类中,类的 无论什么属性 public private 等,都是不可以在定义的时候赋初值 的。

2023-11-21 15:49:54 820

原创 画图时使用的函数和一些错误处理

出现这个错:"ValueError: shape mismatch: objects cannot be broadcast to a single shape. Mismatch is between arg 0 with shape (0,) and arg 1 with shape (100,)."

2023-11-17 20:05:43 317

原创 dgl 的cuda 版本 环境配置(dgl cuda 版本库无法使用问题解决)

建议使用pip版本的,因为conda版本的命令我试过,没下载成功,因为开不开魔法梯子我都无法在命令行访问到anaconda官网,离谱,,明明刚还用conda下载了dglcu。1. 如果你同时有dgl dglvu-XX.XX 那么,应该只会运行dgl (DGL的CPU版本),因此,你需要把dgl(CPU)版本给卸载了。但是我只卸载CPU版本还不够,我GPU 版本的dglcu依旧不好使,因此吧GPU版本的也得卸载了重新安装。因此,torch 可以下载。

2023-11-15 08:57:43 1718

原创 C++源文件的编译过程 & 学习 CMake 文档的前置知识

想要成功将main.cpp编译生成可执行文件,需要使用指令告知 g++ 编译 main.cpp 的时候需要链接上 math.cpp 中的内容(因为main.cpp 中使用了 math.cpp 中定义的函数)2. include file 和 .lib 区别。1. include file 是什么?

2023-11-08 10:56:02 129

原创 cmake 中经常出现的 关键词 scope 中的 三种:PUBLIC PRIVATE INTERFACE

如果 在使用 `target_include_directories() `函数的时候,选择 PUBLIC 选项,那么,当生成B.lib的时候,只需要 `target_link_libraries(但是 我不可以使用 add_library() 来实现这个嘛, add_library() 和 target_include_directories() 有什么去区别?A.lib 依赖 a1.h a2.h ,B.lib 也依赖 a1.h a2.h。

2023-11-07 17:26:13 80

原创 什么是 archive file ,与 object file 的区别

archive file 是指:将这三个object file 文件 合成一个文件,之所以要将三个文件合成一个文件是因为这样更方便拷贝和分发给他人使用(因为此时的 archive file 文件依旧不是一个可执行的目标文件,想要生成一个可执行文件需要将这些object file 和 object file 中涉及的标准库中的头文件也连接起来,才能生成可执行文件。但是大多数情况下,object file 的源文件 是需要链接其他文件的,因此,源文件 编译后 生成的内容无法直接执行。

2023-11-06 16:19:20 265

原创 一个阅读英文文档的记录与思考:

我之前会把他理解为关键字,但是还不太准确,这是一类定义好含义的,在CMAKE 执行阶段会被赋初值(如果我们在CMakeLinks.txt文件中有指定,那么,按我们的set()来,没有指定就有一个默认的初始值),因此,被称作是 settable variable。==》因此,我目前的策略是,遇到这种没见过的用法,在第一次出现的时候,一般tutorial 中都会给出解释,标亮或者记录一下,方便以后回头来进一步理解(因为妄图一次就理解清楚基本是不可能的,暂时先别想了)

2023-10-29 20:31:59 92

原创 cmake 学习记录

开始吧:1. 首先熟悉最基本的几个命令:cmake 与 CMakeLists.txt配套,通过 cmake 命令将 CMakeLinks.txt翻译为能被make命令使用的makefile.txt文件因此,cmake在执行命令的时候,需要 为 包含CMakeLists.txt 的路径make 与 makefile.txt文件配套,是用于编译链接各个.c .o .h 文件的因此,make在执行命令的时候,需要与makefile.txt 在同一路径中补充:(1)cmake 也有通过mak

2023-10-29 19:25:11 179

原创 vscode markdown 使用技巧 -- 如何快速打出一个Tab 或多个空格

【注意】 现在应该是该版本了,上述的把markdown的自动补全功能打开用的json语句会被VSCode自动修改匹配为,不过既然还是自动匹配,那么,markdown的 json还是像步骤那样书写也是可以的,没关系啦。我在使用VSCode,这玩意很好用,但是,有一个缺点是,我想使用Tab来做一些对其,但是我发现在VSCode中,无论是Tab还是多个空格,最终显示出来的都是一个空格。很好的实现,但,我的傻逼Ubuntu实在是下载不了搜狗,因此这种方法对我来说没啥帮助。

2023-10-26 19:13:58 1173

原创 Windows 和 Linux 这2个系统在进行编程实现的时候的一些区别:

很惭愧,学了很多年才意识到,噢,原来这两个系统实现一些功能的时候会使用到不同的库,使用不同的函数。那么,也会延伸出一些问题:比如,如何实现版本的迁移。一个在Linux上运行的代码如何可以比较容易地迁移到Windows平台上运行成功呢?同时我们已知,编译器得一个功能就是匹配不同的运行平台(这里我特指C++ 这两个语言,因为Java 可以全平台通用【这个涉及JDK ,稍后补充一下】)

2023-10-26 17:08:22 607

原创 sudo apt update 后会出现的一堆问题的解决

在这一步中,你需要把Driver给去掉,否则会报错。(去掉Driver的方法是 再点击一下 Enter)因为已经装了Driver了,所以再次安装会起冲突。我暂时不知道英伟达为什么要把驱动和CUDA捆绑在一起。warning里面关于CUDA driver的内容不用管,说的就是没装NVIDIA driver。去掉之后选Install,稍等一会儿,就能安装成功了。如果有协议,输入accept就行。

2023-10-25 20:13:10 159

原创 安装 fcitx + 搜狗/谷歌输入法 之后导致 死机,重启后黑屏只有鼠标可以移动

首先:ctrl+alt+F6 进入命令行界面,如果进不去就 ctrl+alt+F2。一般的原因就是 : fcitx 导致的问题。方法就是 先卸载搜狗,再卸载fcitx。

2023-10-25 16:52:19 964 2

原创 GPU 驱动下载记录

1. 我的GPU 是这个:GeForce RTX 2060。

2023-10-18 14:23:38 101

原创 CPU GPU TPU NPU 的一些概念 和 使用

NVCC(NVIDIA CUDA Compiler):将包含CUDA内核操作的 C/C++ 代码 编译为 可以被GPU处理的机器码,这样我们就可以通过指令来操作GPU这个本来用于图形渲染的硬件了。不同硬件的驱动程序不同:对于GPU来说,有很多厂商都提供GPU硬件,如 英伟达,AMD等,不同厂商的硬件产品对应的驱动不同。CUDA Toolkit 提供了一些 CUDA-C CUDA-C++的编译器(这个编译器就是 NVCC),一些实用库、科学库等,一些 library API 及其示例代码。

2023-10-10 18:51:41 441

原创 英语字典的一些 关键字 解释:

这里的specialized 后面还接了 finance & economics 含义是 在经济和金融的领域,principal 作为一个专业术语,含义是 “本金,可生息资本”

2023-10-09 19:56:37 82

原创 SQL 语句学习总结:

题目 :John Lasseter导演的每部电影每分钟值多少钱,告诉我最高的3个电影名和价值就可以==》定义 val 变量,并在排序的时候直接使用limit 3。

2023-09-02 16:45:02 1322

原创 读写一致 && MySQL&&Redis

延迟等待一小段时间(避免此时的读操作 正在把 之前读到的旧数据写回到Cache的路上,等这个读操作把旧数据写回到cache,然后在删除,这样就避免了,我这边刚删完,写操作就带着旧数据写回到Cache中了,这不白删除了嘛);==》和旁路缓存的区别在于:旁路缓存是全由用户去做的,数据不存在就自己写代码从MySQL中读,load到Redis中;但是读写穿透则是:用户就直接和缓存交互,缓存和数据库的交互有缓存自己处理,不用用户操心。:恶意攻击,访问不存在于数据库中的请求,那Redis中没缓存。

2023-08-24 19:04:49 336 1

原创 【计算机网络】【常考问题总结】

出现 ②数据乱码 这种情况的原因是:A发送了第一个包200字节,B的缓冲区大小是70,因此,B最多收到70字节,此时,由于数据包没有结束,因此没有\0结尾,在读取的时候,就会因没有\0一直读取,越界了也要读取,一直到读到\0才会停止,而这会导致读取到不需要的非法数据,形成乱码。出现 ①数据截断 这种情况的原因是:A发送了第一个包100字节,但是B收到了前50 ,同时B的缓冲区大小是70,因此,B自动给这获得的50字节补充了一个\0 ,接下来再收到A发来的后50字节因为\0的存在,不会被读走。

2023-08-22 13:43:19 1715

原创 【操作系统】虚拟内存相关&分段分页&页面置换算法

虚拟内存是什么?【进程地址空间=虚拟地址空间=C/C++程序地址空间就是那个4G的空间】虚拟内存是操作系统内核为了对进程地址空间进行管理,而设计的一个逻辑意义上的内存空间概念。在程序运行过程中,虚拟内存中需要被访问的部分会被映射到物理内存空间中,CPU 通过将虚拟地址翻译成物理地址,这样才能访问到真实的物理内存,使得程序顺利执行。【比如我们在写完一段C++程序之后都需要采用g++进行编译,这时候编译器采用的地址其实就是虚拟内存空间的地址。

2023-08-20 20:03:22 1179

原创 Java高级 【21小时】听吧

还是陈的课。

2023-08-08 19:44:10 32

原创 Redis 总结【6.0版本的】

Redis的使用:如果源码不编译,是无法实现自动跳转的,Redis在win上编译有点麻烦,我是使用的CentOS环境,Clion编译编译完就可以直接通过shell连接Redis server了server.c 中放的是就是主类 :6000多行左右是入口main()函数位置Redis的使用:通过redis.conf 文件的如下位置 配置 Redis有多少个数据库:select 0 select 1对应就是数据库的序号,16个数据库对应0-15下标。。。。。。。。。。。。。。。。。。。。。。

2023-08-05 20:11:40 927

原创 mysql 的 操作内容:sql语句,优化策略,锁,一致性等?

一般情况下我们创建的表对应一组存储文件当数据量较大时(一般千万条记录级别以上),MySQL的性能就会开始下降:此时只是单纯的添加索引的话,会发现 影响到了新增和删除的性能。此时 我们将数据分散到不同的表上,单表的索引大小就得到了控制,对索引以及表结构 的 变更会变得很方便和高效。总结一下:当数据量较大(千万级别记录),我们就需要将数据分散到多组存储文件,保证其单个文件的执行效率。

2023-08-04 13:14:01 237

原创 MySQL 的存储引擎 InnoDB的架构(Redolog UndoLog binLog 是如何支持事务的);各种宕机场景解决措施【THIS】【Deal It 23/8/8】

锁、乐观悲观锁 这块 看看第四节视频里面有没有,没有就看看理解一下记录一下,这块重点常考【是吧】一个总结的比较全面的MySQL内容;

2023-08-04 10:17:58 55

原创 容器的简单使用

docker将程序以及程序所有的依赖都打包到docker container,这样你的程序可以在任何环境都会有一致的表现,这里程序运行的依赖也就是容器就好比集装箱,容器所处的操作系统环境就好比货船或港口,,这是当前互联网公司最常见的一个应用场景,一个原因在于容器启动速度非常快,另一个原因在于只要确保一个容器中的程序正确运行,那么你就能确信无论在生产环境部署多少都能正确运行。问题:Docker中是有自己的此时运行的程序的全部环境对吗?,这里的运行时环境指的是程序运行依赖的各种库以及配。

2023-08-02 07:08:51 102

原创 Nginx使用

Tomcat8 默认配置的最大请求数是 150,也就是说同时支持 150 个并发,当然了,也可以将其改大。所以在低并发的情况下,用户可以直接访问tomcat服务器,然后tomcat服务器返回消息给用户。当某个应用拥有 250 个以上并发的时候,应考虑应用服务器的集群。在传统的Web项目中,并发量小,用户使用的少。

2023-08-01 14:58:18 36

空空如也

空空如也

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

TA关注的人

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