- 博客(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
原创 计算网络模型的参数数量并将其转换为兆字节(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
原创 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
原创 图嵌入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数码问题
2022-03-26
C语言实现:八数码问题的深度优先搜索、广度优先搜索、过程表示(全)
2022-03-26
python用百万汉字拼一张彩色照片(表白神器;送女朋友闺蜜的浪漫礼物)
2022-03-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人