当前位置: 首页 > news >正文

MATLAB图卷积神经网络GCN处理分子数据集节点分类研究

全文链接:https://tecdat.cn/?p=38570

本文主要探讨了如何利用图卷积网络(GCN)对图中的节点进行分类。介绍了相关的数据处理、模型构建、训练及测试等环节,通过对分子数据集的操作实践,展示了完整的节点分类流程,并对模型的效果进行了多方面评估,旨在为相关领域的研究与应用提供参考点击文末“阅读原文”获取完整代码数据)。

图卷积网络(GCN)是卷积神经网络的一种变体,在处理图结构数据的节点分类任务中有着重要应用。例如在化学领域,给定分子结构(以图表示化学键),可以利用GCN预测分子中原子的类型(如碳、氧等)。本文以数据集为例,详细阐述基于GCN的节点分类实现过程。

数据准备

(一)数据集下载与加载

首先从指定网址下载数据集,该数据集包含碳、氢、氮、氧和硫这五种不同的原子。通过以下代码实现下载与初步处理:

if ~exist(data_file,"file"):mkdir(output_folder)

加载下载好的MAT文件中的数据,其包含多个不同的数组,本文主要使用代表库仑矩阵的X数组和代表每个原子原子序数的Z数组,代码如下:

data = load(data_file)

(二)图数据预处理

从加载的数据结构中提取库仑数据和原子序数,并进行相应变换。

为了将训练数据中的库仑矩阵转换为邻接矩阵。之后对部分数据进行可视化展示,查看分子的相关情况,像提取未填充的邻接矩阵、将原子序数转换为符号并绘图等,代码如下:

nexttileplot(G,NodeLabel=symbols,Layout="force")

9226586a547d52d5275dd80ccd032172.png


点击标题查阅往期内容

cfe2b9bccca844f5698333092326aa0b.jpeg

R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)

outside_default.png

左右滑动查看更多

outside_default.png

01

96cc4bfaa74c8b8e22a2dbc0e80efc1d.png

02

10c2fa7da7c5a1b0e265dc887b0fdd9a.png

03

85d649303dda36904febd3e77ed13db6.png

04

b143f6458cf99db130139f2a4d7013cf.png

利用直方图可视化各标签类别的频率,代码如下:

figure
histogram(categorical(atomicSymbol(atom_data)))

cebb19747b3cc6b704b83a85d8498abb.png
对数据进行划分,分为训练集、验证集和测试集,分别包含80%、10%和10%的数据。

模型构建

(一)深度学习模型定义

定义的深度学习模型输入为邻接矩阵A和特征矩阵X,输出分类预测结果。模型是一系列形如 Zl+1=σl(D^−1/2A^D^−1/2ZlWl)+Zl的操作组合,其中涉及激活函数、权重矩阵等不同元素。

(二)模型参数初始化

创建结构来存放模型参数,并利用函数(本文附属文件)初始化各乘法操作的可学习权重:

parameters = struct()
num\_hidden\_feature_maps = 32

(三)模型相关函数定义

创建函数,其输入模型参数、特征数据和邻接矩阵,返回预测结果;输入模型参数、特征数据、邻接矩阵以及独热编码目标,返回损失、损失相对于参数的梯度和网络预测;另外还有函数,它们各自在模型的训练、预测等环节发挥重要作用。

模型训练

设定训练轮数为1500轮,学习率为0.01,每300轮验证一次网络。初始化Adam相关参数,将训练和验证特征数据转换为特定对象格式,若有可用GPU则将数据转换到GPU上进行训练,同时将训练和验证标签转换为独热编码向量,并初始化训练进度监测对象。然后利用自定义训练循环训练模型,在每一轮中进行模型损失和梯度评估、更新网络参数、更新训练绘图以及按要求验证网络等操作:

num_epochs = 1500
learn_rate = 0.01
validation_frequency = 300
trailing_avg = \[\]
trailing\_avg\_sq = \[\]

5db1a6f7796b4a72f68ffef176fb0256.png

模型测试与预测

(一)模型测试

使用测试数据对模型进行测试,先按照训练和验证数据的处理步骤预处理测试数据,将测试特征数据转换为相应对象格式,利用模型进行预测并将概率转换为分类标签,最后计算准确率,还通过混淆矩阵等方式可视化模型的预测情况,评估模型基于类别精度和召回率等指标的表现。

计算混淆矩阵:

figure
cm = confusionchart(labels\_test,Y\_test,

6c5c4b2826e14c1ea291e1a2cab9e3d4.png

(二)新数据预测

利用函数对未标记数据进行预测,选择测试数据的前几个观测值简单示例,可视化预测结果,将预测结果作为节点标签绘制分子的图表示:

num\_observations\_new = 4
adjacency\_data\_new = adjacency\_data\_test\[:,:,1:num\_observations\_new\]

4b613b960da80c089896b261a7aece0d.png

总结

本文通过对数据集完整的处理、基于图卷积网络的模型构建、训练及测试等流程展示,呈现了图中节点分类任务的实现过程及相关方法应用。结果表明模型在该任务中有一定的准确率等表现,后续可进一步探索优化模型结构、改进数据处理方式等方面,以提升模型在节点分类任务中的性能,更好地应用于如化学分子结构分析等诸多领域。

参考文献

[1] Kipf, Thomas N., and Max Welling. “Semi-Supervised Classification with Graph Convolutional Networks.” Paper presented at ICLR 2017, Toulon, France, April 2017.
[2] Blum, Lorenz C., and Jean-Louis Reymond. “970 Million Druglike Small Molecules for Virtual Screening in the Chemical Universe Database GDB-13.” Journal of the American Chemical Society 131, no. 25 (July 1, 2009): 8732–33. https://doi.org/10.1021/ja902302h.
[3] Rupp, Matthias, Alexandre Tkatchenko, Klaus-Robert Müller, and O. Anatole von Lilienfeld. “Fast and Accurate Modeling of Molecular Atomization Energies with Machine Learning.” Physical Review Letters 108, no. 5 (January 31, 2012): 058301. https://doi.org/10.1103/PhysRevLett.108.058301.

622b04101fab9c147c3a6ef8d6ab7369.jpeg

本文中分析的数据、代码分享到会员群,扫描下面二维码即可加群! 

f117bae4565a149b35742e711a1c7478.png


资料获取

在公众号后台回复“领资料”,可免费获取数据分析、机器学习、深度学习等学习资料。

84877ba5aa81fd9c8ff67abf8b6e77ad.jpeg

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《MATLAB图卷积网络GCN处理分子数据集节点分类研究》。

点击标题查阅往期内容

PYTHON TENSORFLOW 2二维卷积神经网络CNN对图像物体识别混淆矩阵评估|数据分享

R语言深度学习卷积神经网络 (CNN)对 CIFAR 图像进行分类:训练与结果评估可视化

R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)

MATLAB中用BP神经网络预测人体脂肪百分比数据

Python中用PyTorch机器学习神经网络分类预测银行客户流失模型

R语言实现CNN(卷积神经网络)模型进行回归数据分析

SAS使用鸢尾花(iris)数据集训练人工神经网络(ANN)模型

【视频】R语言实现CNN(卷积神经网络)模型进行回归数据分析

Python使用神经网络进行简单文本分类

R语言用神经网络改进Nelson-Siegel模型拟合收益率曲线分析

R语言基于递归神经网络RNN的温度时间序列预测

R语言神经网络模型预测车辆数量时间序列

R语言中的BP神经网络模型分析学生成绩

matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类

R语言实现拟合神经网络预测和结果可视化

用R语言实现神经网络预测股票实例

使用PYTHON中KERAS的LSTM递归神经网络进行时间序列预测

python用于NLP的seq2seq模型实例:用Keras实现神经网络机器翻译

用于NLP的Python:使用Keras的多标签文本LSTM神经网络分类

781dd4e4a4f570911bf7affadd35df62.jpeg

f6f249d833262cf0d25ebd3bbf34352a.png

1308ac519b778606c8c8a1c0f82ff7be.png

df3cec705896cb0fa107627389042982.jpeg

292a89cb3b728348cd412c2d7bc95e35.png

相关文章:

MATLAB图卷积神经网络GCN处理分子数据集节点分类研究

全文链接:https://tecdat.cn/?p38570 本文主要探讨了如何利用图卷积网络(GCN)对图中的节点进行分类。介绍了相关的数据处理、模型构建、训练及测试等环节,通过对分子数据集的操作实践,展示了完整的节点分类流程&#…...

高级Python游戏开发:创建一款多人对战坦克大战

在本教程中,我们将用Python的Pygame库开发一款高级的坦克大战游戏。这款游戏支持多人对战、碰撞检测、子弹射击以及地图障碍生成,适合作为学习Python高级游戏开发的练习项目。 一、游戏功能概述 多人对战模式:玩家可以操作坦克,在同一屏幕上互相攻击。子弹射击:坦克可以发…...

网站访问的基础-HTTP超文本传输协议

BS架构 浏览器Browser⬅➡服务器Server 浏览器和服务器之间通过 IP 地址进行通信,实现数据的请求和传输。 例如,当用户在浏览器中访问一个网站时,浏览器会根据用户输入的网址(通过 DNS 解析得到服务器 IP 地址)向服…...

使用Hydra库简化配置管理

使用Hydra库简化配置管理 简介 在现代软件开发中,配置管理是至关重要的。应用程序的灵活性和可维护性很大程度上取决于其如何处理配置。Hydra是一个由Facebook AI Research (FAIR) 开发的Python库,它旨在简化复杂应用的配置过程。Hydra使得开发者可以轻…...

Java对集合的操作方法

1. 数组转集合 //数组转集合 String[] split quickRechargeAmount.split(","); List<String> stringList Stream.of(split).collect(Collectors.toList()); 2. 对List集合数据内容进行分组 //对List集合数据内容进行分组 Map<String, List<LiveAppGi…...

WordPress酱茄主题 开源版 博客资讯自媒体网站模板

一款免费开源的WordPress主题&#xff0c;主题专为WordPress博客、资讯、自媒体网站而设计 运行环境 支持WordPress版本&#xff1a;5.6 兼容Chrome、Firefox、Safari等主流浏览器 支持设备&#xff1a;响应式布局&#xff0c;不同设备不同展示效果 服务器环境建议&#x…...

【SickOs1.1靶场渗透】

文章目录 一、基础信息 二、信息收集 三、反弹shell 四、提权 一、基础信息 Kali IP&#xff1a;192.168.20.146 靶机IP&#xff1a;192.168.20.150 二、信息收集 端口扫描 nmap -sS -sV -p- -A 192.168.20.150 开放了22、3128端口&#xff0c;8080端口显示关闭 22端…...

Javaweb web后端maven介绍作用安装

自动导入到这个项目 src是源代码 main主程序&#xff0c;核心代码 java是Java源代码 resources是项目配置文件 test测试相关的 maven概述 介绍 依赖在本地仓库查找&#xff0c;如果本地仓库有&#xff0c;用本地仓库的依赖&#xff0c;本地没有&#xff0c;连接中央仓库&…...

Input Action (输入动作) 在虚幻引擎中常用的值类型

1. Digital (bool) 含义: Digital 类型代表一个离散的、二元的输入状态,它只有两种可能的值:true(按下,激活)或 false(未按下,未激活)。 用途: 最常用于表示按键或按钮的按下状态。 适合于开关类型的操作,比如: 跳跃(按键按下时跳跃,松开时不跳跃) 奔跑/行走切换 …...

LabVIEW汽车综合参数测量

系统基于LabVIEW虚拟仪器技术&#xff0c;专为汽车带轮生产中的质量控制而设计&#xff0c;自动化测量和检测带轮的关键参数。系统采用PCIe-6320数据采集卡与精密传感器结合&#xff0c;能够对带轮的直径、厚度等多个参数进行高精度测量&#xff0c;并通过比较测量法判定产品合…...

快速且靠谱的简单安装 PostgreSQL 15 yum 安装postgis3.3

快速且靠谱的简单安装 PostgreSQL 15 yum 安装postgis3.3 1、确保已经安装了PostgreSQL数据库。2、添加PostGIS的EPEL仓库3、使用YUM安装PostGIS4、以下为其他安装方式&#xff0c;一个个去找源码的编译安装&#xff0c;过程较为繁琐&#xff08;不熟路的不推荐&#xff09; 要…...

MySQL八股文

MySQL 自己学习过程中的MySQL八股笔记。 主要来源于 小林coding 牛客MySQL面试八股文背诵版 以及b站和其他的网上资料。 MySQL是一种开放源代码的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;使用最常用的数据库管理语言–结构化查询语言&#xff08;SQL&…...

Python高性能web框架-FastApi教程:(1)创建一个简单的FastApi

&#xff08;1&#xff09;创建一个简单的FastApi 1. 导入必要的库 from fastapi import FastAPI import uvicornFastAPI 是一个用于构建现代、快速&#xff08;高性能&#xff09;的Web API的Python框架。uvicorn 是一个ASGI服务器&#xff0c;用于运行异步的Python Web应用…...

多模态机器学习综述论文|Multimodal Machine Learning: A Survey and Taxonomy

1. 引言 多模态机器学习是一个跨学科领域&#xff0c;它涉及到从多种感官模态&#xff08;如视觉、听觉、触觉等&#xff09;中提取信息&#xff0c;并构建能够处理和关联这些信息的模型。这种学习方式对于人工智能理解复杂世界至关重要。 名词解释&#xff1a; 模态Modality…...

CentOS8:英伟达显卡驱动与CUDA安装

挺偶然的&#xff0c;同事在CentOS8版本的GPU服务器上安装英伟达的显卡驱动和CUDA遇到了问题&#xff0c;于是协助进行了安装&#xff0c;顺便记录下此次安装过程与心得。 目录 显卡驱动安装 步骤简述 详细步骤 1、官网下载需要的驱动 2、驱动软件包上传并加权 3、安装…...

【IDEA】启动报错

今天启动IDEA报错 报错信息&#xff1a; Cannot connect to already running IDE instance. Exception: Process 5,444 is still running 打开任务管理器&#xff0c;关掉进程ID5444的任务...

Opencv之图像梯度处理和绘制图像轮廓

一、梯度处理的sobel算子函数 处理示意 Sobel 算子是一种常用的图像边缘检测方法&#xff0c;结合了一阶导数和高斯平滑&#xff0c;用于检测图像的梯度信息。 1、功能 Sobel 算子用于计算图像在 x 和 y 方向的梯度&#xff0c;主要功能包括&#xff1a; 强调图像中灰度值的…...

5.2章节python字符串的格式化三种方式

在Python中&#xff0c;格式化字符串是编程中常见的任务&#xff0c;它用于将变量或表达式的值嵌入到字符串中。以下是三种常见的格式化字符串的方式&#xff1a; 1.百分号&#xff08;%&#xff09;格式化&#xff1a; 这是Python早期版本中常用的字符串格式化方法。通过在字…...

.NET Core 各版本特点、差异及适用场景详解

随着 .NET Core 的不断发展&#xff0c;微软推出了一系列版本来满足不同场景下的开发需求。这些版本随着时间的推移逐渐演变为统一的 .NET 平台&#xff08;从 .NET 5 开始&#xff09;。本文将详细说明每个版本的特点、差异以及适用场景&#xff0c;帮助开发者更好地选择和使用…...

2024.12.14 TCP/IP 网络模型有哪几层?

2024.12.14 TCP/IP 网络模型有哪几层? 2024.12.14 今天周六 看到大伙都在考六级&#xff0c;我来复盘小林coding的计算机网络的知识点&#xff1a; TCP/IP 网络模型有哪几层? 问大家&#xff0c;为什么要有 TCP/IP 网络模型? 对于同一台设备上的进程间通信&#xff0c;有…...

基于SpringBoot的嗨玩旅游网站:一站式旅游信息服务平台的设计与实现

摘要 在旅游需求日益增长的今天&#xff0c;一个全面、便捷的旅游信息服务平台显得尤为重要。嗨玩旅游网站正是为了满足这一需求而设计的在线平台&#xff0c;它提供了包括景点信息、旅游线路、商品信息、社区信息和活动推广等在内的丰富旅游目的地信息&#xff0c;旨在帮助用…...

HQChart使用教程30-K线图如何对接第3方数据42-DRAWTEXTREL,DRAWTEXTABS数据结构

HQChart使用教程30-K线图如何对接第3方数据42-DRAWTEXTREL,DRAWTEXTABS数据结构 效果图DRAWTEXTREL示例数据结构说明nametypecolorDrawVAlignDrawAlignDrawDrawTypeDrawDataFont DRAWTEXTABS示例数据结构说明nametypecolorDrawVAlignDrawAlignDrawDrawTypeDrawDataFont 效果图 …...

VMware ESXi上创建Ubuntu虚拟机并实现远程SSH访问全攻略

文章目录 前言1. 在VMware ESXI中创建Ubuntu虚拟机2. Ubuntu开启SSH远程服务3. 安装Cpolar工具4. 使用SSH客户端远程访问Ubuntu5. 固定TCP公网地址 前言 本文主要介绍如何在VMware ESXi上创建一台Ubuntu 22.04虚拟机&#xff0c;并通过Cpolar内网穿透工具配置公网地址&#xf…...

进制的转换

前言 ‌进制‌是一种进位计数制&#xff0c;是人为定义的带进位的计数方法。不同的进制使用不同数量的符号&#xff0c;以及不同的规则来组合这些符号以表示不同的数值。 一、进制类型 二进制:由一串0和1组成的数字&#xff0c;逢二进一 八进制:0 1 2 3 4 5 6 7&#xff0c;…...

迁移学习中模型训练加速(以mllm模型为例),提速15%以上

根据模型训练过程的显存占用实测的分析,一个1g参数的模型(存储占用4g)训练大约需要20g的显存,其中梯度值占用的显存约一半。博主本意是想实现在迁移学习(冻结部分参数)中模型显存占用的降低,结果不太满意,只能实现训练速度提升,但无法实现显存占用优化。预计是在现有的…...

CSS系列(6)-- 排版与文本详解

前端技术探索系列&#xff1a;CSS 排版与文本详解 &#x1f4dd; 致读者&#xff1a;探索优雅的文字艺术 &#x1f44b; 前端开发者们&#xff0c; 今天我们将深入探讨 CSS 排版与文本处理&#xff0c;学习如何创建既美观又易读的文本内容。 文本基础属性 &#x1f680; 字…...

嵌入式现状、机遇、挑战与展望

在当今数字化浪潮中&#xff0c;嵌入式系统宛如一颗璀璨的明珠&#xff0c;熠熠生辉&#xff0c;深刻地渗透到了我们生活的方方面面&#xff0c;成为推动现代科技进步不可或缺的关键力量。从智能家居的便捷控制&#xff0c;到工业生产的精准运作&#xff0c;再到汽车的智能驾驶…...

关于Postgresql旧版本安装

抛出问题 局点项目现场&#xff0c;要求对如下三类资产做安全加固&#xff0c;需要在公司侧搭建测试验证环境&#xff0c;故有此篇。 bclinux 8.2 tomcat-8.5.59 postgrel -11 随着PG迭代&#xff0c;老旧版本仅提供有限维护。如果想安装老版本可能就要费劲儿一些。现在&…...

【AI日记】24.12.14 kaggle 比赛 2-4 EDA

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 工作 参加&#xff1a;kaggle 比赛 Regression with an Insurance Dataset内容&#xff1a;构建自己的EDA&#xff08;探索性数据分析&#xff09;框架时间&#xff1a;5 小时感想&#xff1a;大规模数据集&a…...

《深入浅出HTTPS》读书笔记(18):公开密钥算法RSA(续)

【RSA算法安全性】 幂运算的逆过程就是求对数问题&#xff0c;而模运算可以认为是离散问题&#xff0c;组合起来RSA算法就是离散对数模型&#xff0c;只要密钥长度足够长&#xff0c;离散对数很难破解。 破解私钥有两个方法&#xff1a; ◎公钥持有人有e和n&#xff0c;而要计…...

LabVIEW面向对象编程有什么特点?

LabVIEW面向对象编程&#xff08;OOP&#xff09;的特点主要体现在它如何结合传统面向对象编程&#xff08;OOP&#xff09;的理念与LabVIEW的图形化编程模式&#xff0c;提供灵活的抽象和模块化的功能。以下是LabVIEW面向对象编程的几个主要特点&#xff1a; ​ 1. 类&#x…...

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

目录 一、本地模式 1、安装MySQL 2、登录MySQL 3、修改密码 4、安装Hive 5、配置Hive系统环境变量 6、初始化Derby数据库 7、连接Hive用于测试 8、测试Hive 9、修改Hive配置文件 10、上传MySQL驱动包 11、初始化MySQL 12、连接Hive用于启动服务 二、远程模式 1、…...

bugku-simple MQTT-wp解析

1.下载题目打开题目&#xff0c;是一个流量包&#xff0c;题目说是MQTT&#xff0c;然后打开流量之后的流量都是MQTT&#xff0c;我们来搜一下MQTT是什么流量 MQTT流量&#xff1a; 是一种基于发布订阅模式的轻量级的通讯协议&#xff0c;并且该协议构建于TCP/IP协议之上&…...

【第四节】Git 分支管理

目录 前言 一、Git 分支简介 二、 分支的基本操作 2.1 创建分支 2.2 切换分支 2.3 列出分支 三、 分支的合并与删除 3.1 合并分支 3.2 删除分支 四、处理合并冲突 五、 总结 前言 Git 的分支管理是其核心功能之一&#xff0c;允许开发者在不影响主线开发的情况下进行…...

IDEA 修改格式化仅格式化本次改动代码

最近总是发现格式化的时候会格式化文件所有代码&#xff0c;提交Git 后再看提交日志&#xff0c;就很不清晰。修改方式如下 中文&#xff1a; 格式化代码快捷键[中文配置]&#xff1a; 英文&#xff1a; 格式化代码快捷键[英文配置]&#xff1a;...

UOB大华银行|校招网申综合能力SHL测评题库英语版本真题分析

大华银行有限公司&#xff08;大华银行&#xff09;是亚洲银行业的翘楚&#xff0c;大华银行总部位于新加坡&#xff0c;并在中国、印度尼西亚、马来西亚、泰国及越南设立了全资法人银行&#xff0c;在全球拥有约500 间分行及办事处&#xff0c;分布在亚太、欧洲与北美的19 个国…...

Redis应用—2.在列表数据里的应用

大纲 1.基于数据库 缓存双写的分享贴功能 2.查询分享贴列表缓存时的延迟构建 3.分页列表惰性缓存方案如何节约内存 4.用户分享贴列表数据按页缓存实现精准过期控制 5.用户分享贴列表的分页缓存的异步更新 6.数据库与缓存的分页数据一致性方案 7.热门用户分享贴列表的分…...

【Linux基础】基本开发工具的使用

目录 一、编译器——gcc/g的使用 gcc/g的安装 gcc的安装&#xff1a; g的安装&#xff1a; gcc/g的基本使用 gcc的使用 g的使用 动态链接与静态链接 程序的翻译过程 1. 一个C/C程序的构建过程&#xff0c;程序从源代码到可执行文件必须经历四个阶段 2. 理解选项的含…...

C++ 中面向对象编程如何实现动态绑定?

在 C 中&#xff0c;面向对象编程的一个重要特性就是动态绑定。动态绑定允许在程序运行时根据对象的实际类型来决定调用哪个函数&#xff0c;这为程序的灵活性和可扩展性提供了强大的支持。本文将详细介绍 C 中面向对象编程如何实现动态绑定。 一、静态绑定与动态绑定的概念 静…...

电源芯片的SYNC引脚

-----本文简介----- 主要内容包括&#xff1a; ① 电源芯片的SYNC引脚 ----- 正文 ----- 先赞↓后看&#xff0c;养成习惯&#xff01; 1. SYNC引脚是什么&#xff1f; 电源芯片里面的SYNC引脚是 Synchronization clock in&#xff0c;意思是同步时钟输入。 2. SYNC引脚的作用…...

安卓报错Switch Maven repository ‘maven‘....解决办法

例如&#xff1a;Switch Maven repository ‘maven(http://developer.huawei.com/repo/)’ to redirect to a secure protocol 在库链接上方添加配置代码&#xff1a;allowInsecureProtocol true...

935. 骑士拨号器

935. 骑士拨号器 题目链接&#xff1a;935. 骑士拨号器 代码如下&#xff1a; class Solution { public:int knightDialer(int n) {if (n 1){return 10;}long long res 0;for (int j 0; j < 10; j){res dfs(n - 1, j);}return res % MOD;}int dfs(int i, int j){if (…...

linux下的posix信号量

目录 引言 信号量背景知识 PV操作 信号量接口 基于环形队列的PC模型 代码实现 demo模型 具体实现 引言 在多线程编程领域&#xff0c;同步机制是确保数据一致性和避免竞态条件的关键技术。Linux操作系统作为开源软件的杰出代表&#xff0c;提供了多种同步原语&#xf…...

【JavaWeb后端学习笔记】Spring框架下的Bean管理

Bean 1、Bean的获取2、Bean的作用域3、第三方Bean 1、Bean的获取 默认情况下&#xff0c;Spring项目启动时&#xff0c;会把Bean创建好交给IOC容器管理。当需要使用时&#xff0c;通过Autowired注解注入或者通过构造方法注入即可。 除此之外还可以通过Spring提供的Applicatio…...

如何在 ASP.NET Core 3.1 应用程序中使用 Log4Net

介绍 日志记录是应用程序的核心。它对于调试和故障排除以及应用程序的流畅性非常重要。 借助日志记录&#xff0c;我们可以对本地系统进行端到端的可视性&#xff0c;而对于基于云的系统&#xff0c;我们只能提供一小部分可视性。您可以将日志写入磁盘或数据库中的文件&#xf…...

Photoshop提示错误弹窗dll缺失是什么原因?要怎么解决?

Photoshop提示错误弹窗“DLL缺失”&#xff1a;原因分析与解决方案 在创意设计与图像处理领域&#xff0c;Photoshop无疑是众多专业人士和爱好者的首选工具。然而&#xff0c;在使用Photoshop的过程中&#xff0c;有时会遇到一些令人头疼的问题&#xff0c;比如突然弹出的错误…...

mall-admin-web开源项目搭建教程(图文)

本章教程,介绍如何在本地部署运行mall-admin-web这个开源项目。 开源地址:https://gitee.com/macrozheng/mall-admin-web mall-admin-web是一个电商后台管理系统的前端项目,基于Vue+Element实现。主要包括商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计…...

nginx做为文件服务器

docker-compose 创建nginx version: 3services:nginx-web:image: nginx:1.23.4container_name: nginx-webenvironment:# 时区上海TZ: Asia/Shanghaiports:- "88:80"- "443:443"volumes:# 证书映射- /home/dockerdata/nginx/cert:/etc/nginx/cert# 配置文件…...

加速合并,音频与字幕的探讨

因上一节。合并时速度太慢了。显卡没用上。所以想快一点。1分钟的视频用了5分钟。 在合并视频时,进度条中的 now=None 通常表示当前处理的时间点没有被正确记录或显示。这可能是由于 moviepy 的内部实现细节或配置问题。为了加快视频合并速度并利用 GPU 加速,可以采取以下措…...

(3)spring security - 认识PasswordEncoder

目录 1.简介1.1.简单了解认证流程 2.密码验证3.PasswordEncoder的内置实现4.小结 目标&#xff1a; 简单了解认证的流程简单认识spring security中的Password Encoder 1.简介 还是以这幅图为基础&#xff0c;认识Password Encoder到底是什么&#xff1f; 1.1.简单了解认证流程…...