自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 资源 (3)
  • 收藏
  • 关注

原创 使用python读取和保存为excel、csv、txt文件以及对DataFrame文件的基本操作

使用python读取和保存为excel、csv、txt文件以及对DataFrame文件的基本操作 读取excel文件并将其内容转化为矩阵形式。对DataFrame文件的基本操作包括DataFrame的创建(dict进行创建,也可以读取csv或者txt文件)、DataFrame轴的概念和DataFrame一些性质(索引、切片;修改数据;算数运算;函数应用和映射;排序和排名;汇总和计算描述统计;处理缺失数据Dataframe中的Series是什么?......

2022-04-08 12:51:56 33679 1

原创 Python中pickle模块的dump()和load()方法

python中的pickle模块,一个对象可以被序列化到文件中,然后可以从文件中恢复。

2024-11-24 23:25:47 411

原创 测试/测试开发八股——找大厂测试实习基础篇

测试的相关流程:需求测试->概要设计测试->详细设计测试->单元测试->集成测试->系统测试->验收测试单元测试:白盒测试的一种,对软件设计中的单元模块进行测试。集成测试:黑盒和白盒结合,在单元测试的基础上,对单元模块之间的连接和组装进行测试。系统测试:黑盒测试的一种,是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等是否满足其规约所指定的要求。回归测试:是指在发生修改之后重新测试先前的测试用例以保证修改的正确性。验收测试:是部署软件之前的最后一个测试操作。

2024-03-02 22:39:17 3070

原创 如何快速生成电脑中文件夹层级目录?

如何通过批处理实现快速生成文件目录,一键生成文件名和文件夹名目录

2024-02-21 19:02:23 837

原创 计算网络模型的参数数量并将其转换为兆字节(MB)和千字节(KB)

所有参数的总数),怎么将其转化为MB(兆字节)或者K?要将模型的参数总数转换为 MB(兆字节)或 KB(千字节),需要考虑每个参数通常用 4 字节(32 位浮点数)或 8 字节(64 位浮点数)来表示。接下来,将总参数数量乘以每个参数所占用的字节数(例如 4 字节),然后除以相应的单位转换因子。

2023-05-06 21:30:15 4730 3

原创 下拉菜单点击没有反应 bootstrap5

原因:一般是引入js文件的时候,顺序搞错了或者未引入bootstrap.bundle.js。解决方法:使用npm install bootstrap导入bootstrap包

2023-02-23 22:23:32 1671

原创 解决pytorch训练时的显存占用递增的问题

在pytorch训练过程中突然out of memory。解决方法:1. 设置 torch.no_grad():2. loss.item()3. 在代码中添加以下两行:torch.backends.cudnn.enabled = Truetorch.backends.cudnn.benchmark = True4. del操作后再加上torch.cuda.empty_cache()补充:Pytorch显存不断增长问题的解决思路

2023-01-15 09:08:30 7887

原创 关于win10“你未连接到任何网络“解决方法

第一步:点击此电脑右键 —> 管理 —> 设备管理 —> 网络适配器第二步:把电脑关机,拔掉所有外接设备,包括充电器、鼠标键盘等,不要开机。第三步:按住开机键不松手,40s以上,操作完之后,再点开机。【按开机键时自动开机也没事,按够40s以上即可】第四步:再重启电脑如果经过以上四步还不可以,则继续第五步:在网络状态中点击网络重置,然后等五分钟,让电脑自动重启。

2022-12-06 09:43:40 12119 10

原创 程序报错之torch、torch-geometric、torch_sparse等版本依赖问题

重新安装torch、torch-geometric库1 查询cuda版本,下载对应的torch库2 先下载对应版本的torch_scatter、torch_sparse等3 安装.whl文件4 安装 geometirc

2022-10-05 18:16:45 7203

原创 自监督Self-supervied 学习笔记

自监督学习的思想很简单,设计一个辅助训练目标,然后利用大量无标注的数据本身的结构或者特性【标签不需要人工标注】,训练网络使得网络具备特征提取的能力。在网络具备特征提取能力后,通过少量的有标注的数据对网络进行微调,使得网络具有分类的能力。总之,自监督的监督信号来源于数据本身的内容,也就是自己给自己监督信号(self的含义)。也可以认为是实例级别的标注,每个样本是一个类。

2022-09-26 21:16:27 1629

原创 Python中__init__.py文件的作用学习笔记

`__init__.py`文件的一个主要作用是将文件夹变为一个Python模块,Python中的每个模块的包中,都有`__init__.py` 文件。python在解释包的时候会给本模块下的所有文件建立一个索引放在当前路径下的`__init__.py`文件中,如果没有文件索引,即使import了指定的包,解释器还是找不到这个模块下的文件。如果一个文件夹下没有`__init__.py`文件,不会被当做一个模块。

2022-09-22 08:30:58 4197

原创 Pytorch中DataLoader的collate_fn()参数学习笔记

使用pytorch训练网络之前的数据准备部分都要有两个流程:Dataset和DataLoader。继承Dataset类,自定义数据处理类。必须重载实现len()、getitem()这两个方法。其中__len__返回数据集样本的数量,而__getitem__应该编写支持数据集索引的函数,返回数据和对应label,例如:通过dataset[i]可以得到数据集中的第i+1个数据。DataLoader中的collate_fn函数将这些一条一条的数据组织成一个batch。

2022-09-21 18:04:40 1964

原创 Pyg消息传递源码(MESSAGE PASSING)+实例

MessagePassing基类GNN关键的步骤就是消息传递、聚合、更新。**pytorch geometric**提供了一个MessagePassing基类,它已经通过MessagePassing.propagate()实现了以上三步对应的计算过程。我们只需定义一个继承了MessagePassing基类的class,然后根据具体的图算法来更新函数 **message()** 的邻域聚合方式aggr="add", aggr="mean" or aggr="max",以及函数**update()**,

2022-09-20 11:20:29 1689

原创 设定并理解随机数种子 && Pytorch在Dataloader类中设置shuffle的随机数种子方式

1 PyTorch设置随机数的种子为了保证模型和数据生成的可再现性,需要设定随机种子。只要知道随机性来自哪里,设置对应的随机种子即可。比如使用了numpy.random,则应设置numpy.random.seed(seed)。2. python调试技巧之设定随机数种子3.Pytorch在dataloader类中设置shuffle的随机数种子方式设置随机种子的作用就是让你的每一次训练都乱的一样,即可以让你在单次训练内部数据保持乱序但不同训练之间都是一样的乱序。

2022-09-20 10:14:07 7068 1

原创 python PyQt5(自定义)信号与槽详解与实例

所谓PyQt5高级自定义信号与槽,指的就是我们可以以自己喜欢的方式定义信号与槽函数,并传递参数,自定义信号的一般流程如下- 定义信号- 定义槽函数- 连接信号与槽函数- 发射信号

2022-09-19 11:35:36 6200

原创 PyG自定义数据集学习笔记(持续更新

PyG 提供了torch_geometric.data.Data用于构建图。除了使用benchmark数据集进行实验外,还可以自定义数据集,其方式与Pytorch类似,需要继承数据集类。PyG中提供了两个数据集抽象类:torch_geometric.data.InMemoryDataset:用于构建内存数据集(小数据集),继承自Dataset,一次性加载所有数据到内存。torch_geometric.data.Dataset:用于构建大型数据集(非内存数据集),分次加载到内存;

2022-09-18 15:45:28 6514 9

原创 python保存float类型的小数的位数的三种方法

python保存float类型的小数的位数的三种方法

2022-09-09 15:17:05 4336

原创 使用PyQt5开发一个扫雷小游戏(代码可以直接运行)

使用PyQt5开发一个扫雷小游戏(代码可以直接运行)

2022-09-08 12:00:38 934 1

原创 Weisfeiler-Lehman(WL)算法和WL Test的学习笔记

1. 什么是Weisfeiler-Lehman(WL)算法2. WL Test3. Weisfeiler-Lehman算法与GCN的关系4. Weisfeiler-Lehman算法应用Weisfeiler-Lehman算法通常被用在解决图的相似性问题上5. 举例说明①聚合邻居节点的标签得到一个标签的字符串,对字符串进行升序排列。②对字符串进行哈希处理,这里生成了一个一一映射的字典,这一步也可以使用其它的字符串哈希函数,只要保证**碰撞率**尽量小就可以。③将哈希过的值重新赋值给相应的节点...

2022-08-31 17:52:48 3397

原创 使用A*算法实现三维迷宫并进行可视化

使用A*算法实现三维迷宫并进行可视化# 定义一个含有障碍物的100×100的栅格地图# 10表示可通行点# 0表示障碍物# 7表示起点# 5表示终点

2022-08-10 21:35:53 418

原创 python输出多维数组最大值、最小值和指定值的全部索引值index

查询最小值索引的常规操作是:np.argmin(data)这里的4代表:将数组降成一维后最小值的索引,即[5,2,3,2,1,2,1,4,6,6,5,1]的第一个1的索引。局限性:①我们需要的索引是二维或者多维的,4不是我们想要的,我们需要的是(2,1)②当存在多个最大值时,argmax只会返回第一个最大值的索引,不能返回全部的索引值③只能返回最大最小值的索引,如果我们相返回指定值6的对应的索引呢?...

2022-07-27 12:26:47 5718

原创 自动机器学习库:TPOT の 学习笔记

Tree-based Pipeline Optimization Tool(TPOT,基于树的管道优化工具)是一个用于在 Python 中执行 AutoML 的开源库。TPOT 使用基于树的结构来表示预测建模问题的模型管道,包括数据准备和建模算法以及模型超参数。它利用流行的 Scikit-Learn 机器学习库进行数据转换和机器学习算法,并使用遗传编程随机全局搜索过程**来有效地发现给定数据集的性能最佳的模型管道。...

2022-07-18 07:55:21 2461 1

原创 使用gym搭建自定义(以二维迷宫为例)环境并实现强化学习 python

文章目录1. 查看所有环境Gym是一个包含各种各样强化学习仿真环境的大集合,并且封装成通用的接口暴露给用户。2. 编写文件放置首先找到自己的环境下面的gym环境包envs,之后我们要创建自己的myenv.py文件,确保自己创建的环境可以在gym里使用,可以进入classic_control文件新建一个myenv的文件夹。3.注册自己的模拟器4. 自定义环境实现5. 测试环境6. 自定义环境以及测试代码解释7. gym模块中环境的常用函数gym的初始化gym的各个参数的获取刷新环境..

2022-07-12 14:51:53 7498 3

原创 计算机保研面试题总汇(网上搜集的题 自己写的答案)

计算机保研面试题总汇(网上搜集的题 自己写的答案)

2022-07-09 17:38:56 7129 1

原创 图嵌入Graph embedding学习笔记

将图的节点或边映射到一个低维的向量空间,即**将海量、高维、异构、复杂和动态的数据表示为统一、低维、稠密的向量**,用以保存图的结构和性质,旨在实现节点分类与聚类、链接预测、图的重构和可视化 等,提供一种具有更低计算复杂度的方法。包括**节点、边、子图、全图**基于**手工构造特征、矩阵分解、随机游走、图神经网络**的图嵌入方法。1.DeepWalk采用随机游走形成序列,采用skip-gram方法生成节点embedding。2.node2vec采用不同的随机游走策略形成序列,类似skip-gram

2022-07-04 17:41:01 2947

原创 《人工智能-机器学习》数据预处理和机器学习算法(以企鹅penguins数据集为例)

加载给定或者自行选定的数据集,首先对数据进行查看和理解,对样本数量、各特征数据类型、分布、特征和标签所表达的含义等进行解释,然后对其进行必要的数据预处理工作,接下来选用数种不同的机器学习算法(不少于三种),在对原理进行简介之后,将其应用到数据集上来完成回归、分类或者聚类操作,最后对算法进行评估和分析。.........

2022-07-02 16:09:48 6612 2

原创 【PyG】文档总结以及项目经验(持续更新

PyG(PyTorch Geometric)是一个基于PyTorch的图神经网络框架,包含图神经网络训练中的**数据集处理、多GPU训练、多个经典的图神经网络模型、多个常用的图神经网络训练数据集而且支持自建数据集**,主要包含以下几个模块 - torch_geometric:主模块 - torch_geometric.nn:搭建图神经网络层 - torch_geometric.data:图结构数据的表示 - torch_geometric.loader:加载数据集 - torch_geometr

2022-06-28 16:53:55 2098 1

原创 Python 编程规范和软件开发目录规范的重要性

Python 编程规范和软件开发目录规范的重要性 编程规范的重要性、注释、Python 中的特殊注释、规范命名变量:、变量定义规则:、变量规范命名注意事项:、总体命名规则:、排版问题、代码排版:、文档排版:、空格的使用:、其他、 软件开发目录规范的重要性、 为什么要设计好目录结构?、 目录组织方式、 README项目说明文件、为什么要写README文件?、完整的README包含的内容、一个简单的范本、规范的README文件怎么写?、 关于requirementstxt和setuppy、setup.py、r

2022-06-23 14:25:26 941

原创 获取列表中最大最小值的前n个数值的位置索引的四种方法

第一种方法:heapq内置函数 + map基本思想:使用heapq内置函数 + map 建立前n个最大值和最小值的映射。第二种方法:建立副本+遍历第三种方法:字典形式第四种方法:遍历

2022-06-09 17:23:21 621

原创 RuntimeError: Attempting to deserialize object on CUDA device 1 but torch.cuda.device_count() is 1.

若你当前在只有 CPU 环境下运行的话,需要加上map_location=torch.device('cpu')。若你当前在有 CUDA环境下运行的话,需要加上map_location=torch.device('cuda')。checkpoint = torch.load('model5_4.pt')

2022-06-09 15:53:18 2976 1

原创 NetWorkX使用方法及 nx.draw()相关参数

文档阅读笔记 NetWorkX 使用方法及 nx.draw()相关参数。Python+NetworkX画图的nx.draw_networkx(函数详解)networkx在02年5月产生,是用python语言编写的软件包,便于用户对复杂网络进行创建、操作和学习。利用networkx可以以标准化和非标准化的数据格式存储网络、生成多种随机网络和经典网络、分析网络结构、建立网络模型、设计新的网络算法、进行网络绘制等。......

2022-06-07 15:51:14 11935 1

原创 中国工科研究生200多篇英文论文中最常见的习惯(The Most Common Habits from more than 200 English Papers written by Gradua)

本文介绍了中国作家从两百多篇英文科技论文中观察到的一些最常见的汉英习惯。习惯被解释,在大多数情况下,示例文本从实际论文连同首选文本给出。本文试图解释如何纠正和防止这类错误。在某些情况下,还可能解释为什么会产生这种习惯。这篇文章可以作为编辑技术论文的个人指南,特别是当母语为英语的编辑不在时。...

2022-05-28 11:37:13 4190 2

原创 决策树&随机森林&GBDT&XGBoost学习笔记以及代码实现

XGBoost是GBDT的优秀版本,是一种基于决策树的集成机器学习算法,使用梯度上升框架,适用于分类和回归问题。XGBoost的整体结构与GBDT一致,都是在训练出一棵树的基础上,再训练下一棵树,预测它与真实分布间的差距,通过不断训练用来弥补差距的树,最终使用树的组合实现对称式分布。

2022-05-18 23:54:01 2559

原创 梯度提升回归(Gradient boosting regression,GBR) 学习笔记以及代码实现&permutation_importance(PI)

梯度提升回归(Gradient boosting regression,GBR)是一种从它的错误中进行学习的技术。它本质上就是集思广益,集成一堆较差的学习算法进行学习。有两点需要注意:①每个学习算法准确率都不高。但是它们集成起来可以获得很好的准确率。②这些学习算法依次应用。也就是说每个学习算法都是在前一个学习算法的错误中学习

2022-05-14 22:46:01 17543 1

原创 tsne原理以及代码实现(学习笔记)

t-SNE(t-distributed stochastic neighbor embedding) 是一种非线性降维算法,非常适用于高维数据降维到2维或者3维,并进行可视化。对于不相似的点,用一个较小的距离会产生较大的梯度来让这些点排斥开来。这种排斥又不会无限大(梯度中分母),避免不相似的点距离太远。t-SNE在低维空间采用重尾分布,以缓解SNE的拥挤问题和优化问题。

2022-05-09 03:58:36 19993 13

原创 SMILES, a Chemical Language and Information System.【SMILES, 一种化学语言和信息系统。】

SMILES, a Chemical Language and Information System.SMILES(Simplified Molecular Input Line Entry System 简化分子输入行输入系统)是为现代化学信息处理而设计的化学符号系统。基于分子图论的原理,SMILES允许通过使用非常小且自然的语法进行严格的结构说明。SMILES符号系统也非常适合高速机器处理。由此产生的化学家易用性和机器兼容性允许设计许多高效的化学计算机应用程序,包括生成独特的符号、恒定速度(零阶)数据

2022-04-28 15:46:17 3019

原创 深入理解网络结构设计中的add操作和concatenate操作

深入理解网络结构设计中的add操作和concatenate操作两者都可以理解为整合特征图信息,但concat理解起来更加直观。当两路输入可以具有**对应通道的特征图语义类似的性质**的时候,可以用add来替代concat,这样更节省参数和计算量(concat是add的2倍),如图像分类。

2022-04-26 11:11:06 2671 1

原创 影响神经网络训练速度的因素&使得神经网络训练速度加快的方法

一、影响网络训练速度的因素 1.使用的处理器(GPU和CPU) 2.batchsize大小 3.模型的大小和权重参数 4.内存访问成本(训练过程中的中间结果) 5.网络的结构也会影响神经网络的速度 二、加速神经网络训练的方法 1. 合理的超参数设计 BatchSize epoch和学习率策略 2. 权值共享 3. 升级相关软件包 4. 多卡训练、数据并行 5. 混合精度训练 6.减少不必要的网络连接和RELU层

2022-04-13 09:59:27 12157 3

原创 np.random.seed()随机数种子学习笔记

①随机数种子相当于给我们一个初值,之后按照固定顺序生成随机数(该随机数种子对应的list);如果使用相同的seed( )值,则每次生成的随机数列表都相同;②如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。③设置seed()的时,可以调用多次random()向该随机数的列表中添加信息;而再次使用设置的seed()值时,仅一次有效,也就是说调用第二次random()时则脱离该随机数的列表。④seed方法设立的目的是为了能够实现实验的可重复进行,得到相同的随机值结果。

2022-04-11 10:22:02 4189

原创 项目代码中参数的管理:mmcv中的Config包&argparse导入参数

当我们项目的超参数很多时,在文中设定和修改并不方便,这时我们需要项目中所有参数放入一个文件夹中,方便管理和修改。我们常常可以把argparse的使用简化成下面四个步骤:①导入模块②创建一个解释器对象parser=argparse.ArgumentParser()③parser.add_argument()向该对象中添加你要关注的命令行参数和选项④parser.parse_args()调用parse_args()方法进行解析,解析成功之后即可使用。

2022-04-10 15:25:33 1733

C语言实现:使用A*算法来解决15数码问题

本资源代码可以直接运行,有详细注释。 15数码问题同八数码问题,是人工智能中一个很典型的智力问题。15数码问题是在4×4方格盘上,放有15个数码,剩下一个位置为空(方便起见,用0表示空),每一空格其上下左右的数码可移至空格。本问题给定初始位置和目标位置,要求通过一系列的数码移动,将初始状态转化为目标状态。 状态转换的规则:空格四周的数移向空格,我们可以看作是空格移动,它最多可以有4个方向的移动,即上、下、左、右。问题的求解方法,就是从给定的初始状态出发,不断地将空格上下左右的数码移至空格,将一个状态转化成其它状态,直到产生目标状态。 本报告利用A*算法,给出了15数码问题的C++算法实现。 A*算法是一种预测算法,主要用于寻路等,根据当前状态和目标状态之间的差异,预测到达目标需要多少开销,根据这个开销来判断下一次选择以那个状态开始。这个开销在八数码问题中可以以路程为标准。

2022-03-26

C语言实现:八数码问题的深度优先搜索、广度优先搜索、过程表示(全)

人工智能实验: 实现结果:给定八数码的起始状态和目标状态,程序可以自动计算出所需要的步数,并能打印出每一步的变化。 本资源包括:使用C语言实现 ①使用深度优先搜索来解决八数码问题 ②使用广度优先搜索来解决八数码问题 ③使用过程式表示和实现八数码问题 以及相关代码详细注释 过程式知识表示是将有关某一问题领域的知识, 连同如何使用这些知识的方法,均隐式的表达为 一个求解问题的过程,每个过程是一段程序,完成对具体情况的处理。过程式不像陈述式那样具有固定的形式,如何描述知识完全取决于具体问题。 深度搜索:以栈为容器。由于每次将可能的新状态入栈,并标记为已经搜索到,当一直深入时便会遇到下一步可能搜索到的所有状态都已经标记为搜索过了,即没有可入栈的,这条深度搜索路线结束,下次出栈为栈顶状态,即另一条深度搜索路线。因为进行搜索之前判断了是否可达,所以进入搜索必有解,那么会按上述进行,直到找到目标状态。 最简单的方法是在上述深度搜索代码上进行改动,即可进行广度搜索。 深度是将集合中的元素从末尾取出,即和栈的特点相同,那么将先进后出变为先进先出,即将栈改成了队列。

2022-03-26

python用百万汉字拼一张彩色照片(表白神器;送女朋友闺蜜的浪漫礼物)

使用python编程实现: 百万汉字拼一张彩色照片(表白神器;送女朋友闺蜜的浪漫礼物) 操作流程: 放入你想要处理的图片,输出的是使用放大后可以看清楚的百万汉字的图片,可以将你想说的话放进图片里~ 可以调整参数值,最好在600*600以内的照片,当然如果照片太大也可以resize()【代码中已经实现。】 原理:将图片大小放大16倍,然后在每一个像素点上放入改字体,注意:图片不能太大,如果太大会导致使用的内存超标,虽然效果变清楚了打开时会很卡。 送给他/她,会感受到你的用心,会有意想不到的惊喜~

2022-03-26

空空如也

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

TA关注的人

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