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

深度学习Note.5(机器学习2)

多项式回归

1.与线性回归联系:

与线性回归大体相似,代码部分复用性高,不同点:公式中为x的次方,可能要规范化处理。

2.paddle的API

paddle.sin(x, name=None)
功能:计算输入的正弦值。
输入:输入Tensor
输出:Tensor,输入的sin值

paddle.ones(shape, dtype=None)
功能:创建建指定形状且值全为1的Tensor
输入:输出结果形状
输出:值全为1的Tensor

 paddle.multiply(x, y, name=None)
功能:逐元素相乘
输入:2个Tensor
输出:Tensor,相乘结果 

paddle.concat(x, axis=0, name=None)
功能:对输入沿axis轴进行联结
输入:待联结的Tensorlist域者Tensortuple和运算轴
输出:联结后的Tensor  

3.模型--sin(2*pi*x)

3. 1数据集构建

import math# sin函数: sin(2 * pi * x)
def sin(x):y = paddle.sin(2 * math.pi * x)return y

用前面定义的create_toy_data函数来构建训练和测试数据\

import math
import paddle
import numpy as np
from matplotlib import pyplot as pltdef sin(x):y = paddle.sin(2 * math.pi * x)return ydef create_toy_data(func, interval, sample_num, noise=0.0, add_outlier=False, outlier_ratio=0.01):X = paddle.rand(shape=[sample_num]) * (interval[1] - interval[0]) + interval[0]y = func(X)epsilon = paddle.normal(0, noise, shape=[y.shape[0]])y += epsilony_np = y.numpy()  # 转换为 NumPy 数组if add_outlier:outlier_num = max(1, int(len(y_np) * outlier_ratio))outlier_idx = paddle.randint(len(y_np), shape=[outlier_num]).numpy()y_np[outlier_idx] *= 5  # 直接操作 NumPy 数组return X.numpy(), y_np# 生成数据
func = sin
interval = (0, 1)
train_num = 15
test_num = 10
noise = 0.5X_train, y_train = create_toy_data(func=func, interval=interval, sample_num=train_num, noise=noise)
X_test, y_test = create_toy_data(func=func, interval=interval, sample_num=test_num, noise=noise)# 生成用于绘图的基准数据(转换为 NumPy)
X_underlying = paddle.linspace(interval[0], interval[1], num=100).numpy()
y_underlying = sin(paddle.to_tensor(X_underlying)).numpy()# 绘制图像
plt.rcParams['figure.figsize'] = (8.0, 6.0)
plt.scatter(X_train, y_train, facecolor="none", edgecolor='#e4007f', s=50, label="train data")
plt.plot(X_underlying, y_underlying, c='#000000', label=r"$\sin(2\pi x)$")
plt.legend(fontsize='x-large')
plt.savefig('ml-vis2.pdf')
plt.show()

结果:

3.2模型构建

def polynomial_basis_function(x, degree = 2):"""输入:- x: tensor, 输入的数据,shape=[N,1]- degree: int, 多项式的阶数example Input: [[2], [3], [4]], degree=2example Output: [[2^1, 2^2], [3^1, 3^2], [4^1, 4^2]]注意:本案例中,在degree>=1时不生成全为1的一列数据;degree为0时生成形状与输入相同,全1的Tensor输出:- x_result: tensor"""if degree==0:return paddle.ones(shape = x.shape,dtype='float32') x_tmp = xx_result = x_tmpfor i in range(2, degree+1):x_tmp = paddle.multiply(x_tmp,x) # 逐元素相乘x_result = paddle.concat((x_result,x_tmp),axis=-1)return x_result# 简单测试
data = [[2], [3], [4]]
X = paddle.to_tensor(data = data,dtype='float32')
degree = 3
transformed_X = polynomial_basis_function(X,degree=degree)
print("转换前:",X)
print("阶数为",degree,"转换后:",transformed_X)
转换前: Tensor(shape=[3, 1], dtype=float32, place=CPUPlace, stop_gradient=True,[[2.],[3.],[4.]])
阶数为 3 转换后: Tensor(shape=[3, 3], dtype=float32, place=CPUPlace, stop_gradient=True,[[2. , 4. , 8. ],[3. , 9. , 27.],[4. , 16., 64.]])

3.3模型训练

plt.rcParams['figure.figsize'] = (12.0, 8.0)for i, degree in enumerate([0, 1, 3, 8]): # []中为多项式的阶数model = Linear(degree)X_train_transformed = polynomial_basis_function(X_train.reshape([-1,1]), degree)X_underlying_transformed = polynomial_basis_function(X_underlying.reshape([-1,1]), degree)model = optimizer_lsm(model,X_train_transformed,y_train.reshape([-1,1])) #拟合得到参数y_underlying_pred = model(X_underlying_transformed).squeeze()print(model.params)# 绘制图像plt.subplot(2, 2, i + 1)plt.scatter(X_train, y_train, facecolor="none", edgecolor='#e4007f', s=50, label="train data")plt.plot(X_underlying, y_underlying, c='#000000', label=r"$\sin(2\pi x)$")plt.plot(X_underlying, y_underlying_pred, c='#f19ec2', label="predicted function")plt.ylim(-2, 1.5)plt.annotate("M={}".format(degree), xy=(0.95, -1.4))#plt.legend(bbox_to_anchor=(1.05, 0.64), loc=2, borderaxespad=0.)
plt.legend(loc='lower left', fontsize='x-large')
plt.savefig('ml-vis3.pdf')
plt.show()

分析:当阶数太小,拟合曲线简单,欠拟合。

           当阶数太大,拟合曲线复杂,过拟合。

3.4模型评估

# 训练误差和测试误差
training_errors = []
test_errors = []
distribution_errors = []# 遍历多项式阶数
for i in range(9):model = Linear(i)X_train_transformed = polynomial_basis_function(X_train.reshape([-1,1]), i) X_test_transformed = polynomial_basis_function(X_test.reshape([-1,1]), i) X_underlying_transformed = polynomial_basis_function(X_underlying.reshape([-1,1]), i)optimizer_lsm(model,X_train_transformed,y_train.reshape([-1,1]))y_train_pred = model(X_train_transformed).squeeze()y_test_pred = model(X_test_transformed).squeeze()y_underlying_pred = model(X_underlying_transformed).squeeze()train_mse = mean_squared_error(y_true=y_train, y_pred=y_train_pred).item()training_errors.append(train_mse)test_mse = mean_squared_error(y_true=y_test, y_pred=y_test_pred).item()test_errors.append(test_mse)#distribution_mse = mean_squared_error(y_true=y_underlying, y_pred=y_underlying_pred).item()#distribution_errors.append(distribution_mse)print ("train errors: \n",training_errors)
print ("test errors: \n",test_errors)
#print ("distribution errors: \n", distribution_errors)# 绘制图片
plt.rcParams['figure.figsize'] = (8.0, 6.0)
plt.plot(training_errors, '-.', mfc="none", mec='#e4007f', ms=10, c='#e4007f', label="Training")
plt.plot(test_errors, '--', mfc="none", mec='#f19ec2', ms=10, c='#f19ec2', label="Test")
#plt.plot(distribution_errors, '-', mfc="none", mec="#3D3D3F", ms=10, c="#3D3D3F", label="Distribution")
plt.legend(fontsize='x-large')
plt.xlabel("degree")
plt.ylabel("MSE")
plt.savefig('ml-mse-error.pdf')
plt.show()

当阶数较低的时候,模型的表示能力有限,训练误差和测试误差都很高,代表模型欠拟合;

当阶数较高的时候,模型表示能力强,但将训练数据中的噪声也作为特征进行学习,一般情况下训练误差继续降低而测试误差显著升高,代表模型过拟合。

如何解决?

引入正则化方法,通过向误差函数中添加一个惩罚项来避免系数倾向于较大的取值

degree = 8 # 多项式阶数
reg_lambda = 0.0001 # 正则化系数X_train_transformed = polynomial_basis_function(X_train.reshape([-1,1]), degree)
X_test_transformed = polynomial_basis_function(X_test.reshape([-1,1]), degree)
X_underlying_transformed = polynomial_basis_function(X_underlying.reshape([-1,1]), degree)model = Linear(degree) optimizer_lsm(model,X_train_transformed,y_train.reshape([-1,1]))y_test_pred=model(X_test_transformed).squeeze()
y_underlying_pred=model(X_underlying_transformed).squeeze()model_reg = Linear(degree) optimizer_lsm(model_reg,X_train_transformed,y_train.reshape([-1,1]),reg_lambda=reg_lambda)y_test_pred_reg=model_reg(X_test_transformed).squeeze()
y_underlying_pred_reg=model_reg(X_underlying_transformed).squeeze()mse = mean_squared_error(y_true = y_test, y_pred = y_test_pred).item()
print("mse:",mse)
mes_reg = mean_squared_error(y_true = y_test, y_pred = y_test_pred_reg).item()
print("mse_with_l2_reg:",mes_reg)# 绘制图像
plt.scatter(X_train, y_train, facecolor="none", edgecolor="#e4007f", s=50, label="train data")
plt.plot(X_underlying, y_underlying, c='#000000', label=r"$\sin(2\pi x)$")
plt.plot(X_underlying, y_underlying_pred, c='#e4007f', linestyle="--", label="$deg. = 8$")
plt.plot(X_underlying, y_underlying_pred_reg, c='#f19ec2', linestyle="-.", label="$deg. = 8, \ell_2 reg$")
plt.ylim(-1.5, 1.5)
plt.annotate("lambda={}".format(reg_lambda), xy=(0.82, -1.4))
plt.legend(fontsize='large')
plt.savefig('ml-vis4.pdf')
plt.show()

 

相关文章:

深度学习Note.5(机器学习2)

多项式回归 1.与线性回归联系: 与线性回归大体相似,代码部分复用性高,不同点:公式中为x的次方,可能要规范化处理。 2.paddle的API paddle.sin(x, nameNone) 功能:计算输入的正弦值。 输入:输入…...

三、分类模块,通用组件顶部导航栏Navbar

1.封装通用组件顶部导航栏Navbar 不同效果 Component export struct MkNavbar {Prop title: string Prop leftIcon: ResourceStr $r("app.media.ic_public_left")ProprightIcon: ResourceStr $r("app.media.ic_public_more")PropshowLeftIcon: boolean…...

PipeWire 音频设计与实现分析三——日志子系统

日志子系统 PipeWire 的日志子系统的设计分为多个层次。PipeWire 用 struct spa_log 对象描述日志组件,用 struct spa_log_methods 对象描述日志组件打印各层级日志的多个方法。PipeWire 为日志子系统添加了 topic 机制,不同文件中的日志按功能以不同的…...

playwright解决重复登录问题,通过pytest夹具自动读取storage_state用户状态信息

playwright解决重复登录问题,通过pytest夹具自动读取storage_state用户状态信息 conftest.py文件下封装两个夹具夹具一:将storage_state登录状态导出为json文件夹具二:重写夹具browser_context_args,添加storage_state登录状态登录…...

Codeforces Round 1014 (Div. 2)(A-D)

题目链接&#xff1a;Dashboard - Codeforces Round 1014 (Div. 2) - Codeforces A. Kamilka and the Sheep 思路 最大值-最小值 代码 void solve(){int n;cin>>n;vi a(n10);int mx0;int miinf;for(int i1;i<n;i){cin>>a[i];mimin(mi,a[i]);mxmax(mx,a[i])…...

vulhub靶场—— Tomcat8

目录 一、漏洞描述 二、靶场搭建 三、漏洞复现 1、弱密码 2、文件上传 一、漏洞描述 环境描述&#xff1a; Tomcat 支持后台部署 war 文件&#xff0c;可以直接将 webshell 部署到 web 目录下。tomcat 默认的管理页面 manager 使用 basic 认证用户名和密码登录&#xff0…...

c# ftp上传下载 帮助类

工作中FTP的上传和下载还是很常用的。如下载打标数据,上传打标结果等。 这个类常用方法都有了:上传,下载,判断文件夹是否存在,创建文件夹,获取当前目录下文件列表(不包括文件夹) ,获取当前目录下文件列表(不包括文件夹) ,获取FTP文件列表(包括文件夹), 获取当前目…...

Redis 哈希表结构详解

Redis 哈希表结构详解 相关链接 redis中 hashtable的 sizemask理解 一、核心结构体定义与作用 Redis 的哈希表实现基于 链表法解决冲突&#xff0c;并采用 渐进式 rehash 策略。其核心结构体包括 dictEntry、dictht 和 dict&#xff0c;三者协作实现高效的键值对存储。 二、结…...

接口等幂处理

介绍 ✅ 什么是等幂&#xff08;Idempotency&#xff09;&#xff1f; 等幂 无论这个操作被执行多少次&#xff0c;结果都是一样的&#xff0c;不会因为多次执行而产生副作用。 通俗一点说&#xff1a;“点一次和点一百次&#xff0c;效果是一样的。” ✅ 在接口中&#xff0…...

华为配置篇-BGP实验

BGP 一、简述二、常用命令总结三、实验 一、简述 二、常用命令总结 display bgp peer #查看 BGP 对等体 display bgp routing-table #查看 BGP 路由表#在R1上通过 network 命令发布路由 [R1]bgp 64513 [R1-bgp] network 10.1.1.1 24#在R2上将路由的下一跳地址修改为自身 [R2]…...

【Tauri2】008——简单说说配置文件

前言 配置文件&#xff0c;即tauri.conf.json Configuration Files | Taurihttps://tauri.app/zh-cn/develop/configuration-files/这个文件的作用 该文件由 Tauri 运行时和 Tauri CLI 使用。你可以定义构建设置&#xff08;例如在 tauri build 或 tauri dev 启动前运行的命令…...

Java学习笔记1——编程基础

一、整数类型变量 注意&#xff1a;每个字符型常量占两个字节 二、自动类型转换和强制类型转换 ​​​三、算术运算符 四、赋值运算符 五、比较运算符 六、逻辑运算符 七、运算符的优先级 运算符的优先级可以通过以下口诀来记忆&#xff1a; 括号优先&#xff0c;单目次之&am…...

CMD/DOS和批处理入门知识汇总

0、前言&#xff1a; 在工作中&#xff0c;有时候需要涉及到window系统更底层的一些东西&#xff0c;所以需要学习一些cmd指令和dos命令&#xff0c;来完成高效批处理任务&#xff0c;或者自动化办公。还有想要对系统中文件管理有更细致的认识&#xff0c;便于请理磁盘文件。后…...

Visual Studio 2019 Qt QML 项目环境搭建常见问题处理方法

在 Visual Studio 2019 运行 Qt/QML 项目比直接使用QtCreator环境麻烦&#xff0c;主要是有qmake 的一些配置项不能在 Visual Studio中设置。下面整理一些常见问题的处理方法&#xff0c;供参考&#xff1a; 搭建VS Qt 环境&#xff0c;在Visual Studios 2019下面安装 Qt Vis…...

Python-Django入手

18.1 建立项目 18.1.1 制定规范 - 定义项目目标&#xff1a;明确应用的核心功能 - 创建项目文档&#xff1a;用README.md记录技术栈和开发流程 - 规划目录结构&#xff1a;建议遵循Django官方推荐的项目布局 18.1.2 建立虚拟环境 在命令行执行&#xff1a; python -m ven…...

SakuraCat(2)Endpoint

Endpoint 功能概述 监听指定端口&#xff08;默认是 8080&#xff09;的客户端连接。接受客户端连接后&#xff0c;为每个连接创建一个新的线程进行处理。使用 Processor 类来处理客户端的请求和响应。 package com.SakuraCat.connector.protocolHandler;import com.SakuraC…...

19914 最小生成树2

19914 最小生成树2 ⭐️难度&#xff1a;中等 &#x1f31f;考点&#xff1a;最小生成树 &#x1f4d6; &#x1f4da; import java.util.*;public class Main {static class Edge{int u,v,w;Edge(int u,int v,int w){this.u u;this.v v;this.w w;}}static ArrayList<…...

SSE服务器主动推送至浏览器客户端,让你不再需要websocket

Server-Sent Events&#xff08;SSE&#xff09;是一种服务器向客户端推送实时更新的技术&#xff0c;基于HTTP协议。客户端通过EventSource API来接收事件流&#xff0c;而服务器则保持一个长连接&#xff0c;持续发送数据。这与传统的请求-响应模式不同&#xff0c;允许服务器…...

C++中的搜索算法实现

C中的搜索算法实现 在编程中&#xff0c;搜索算法是解决各种问题的基础工具之一。C作为一种功能强大的编程语言&#xff0c;提供了多种实现搜索算法的方式。本文将详细介绍两种常见的搜索算法&#xff1a;线性搜索和二分搜索&#xff0c;并通过代码示例展示它们的实现。 一、…...

OSI 七层模型和四层模型(TCP/IP 模型)

文章目录 前言一、OSI 七层模型二、TCP/IP 四层模型三、运行协议及设备1. OSI 七层模型2. TCP/IP 四层模型3. 运行协议4. 各类设备的作用 总结 前言 OSI 七层模型和四层模型&#xff08;TCP/IP 模型&#xff09;是两种常见的网络协议分层架构&#xff0c;它们的主要区别如下&a…...

将代理连接到 Elasticsearch 使用模型上下文协议

作者&#xff1a;来自 Elastic Jedr Blaszyk 及 Joe McElroy 让我们使用 Model Context Protocol 服务器 与 你的 数据 在 Elasticsearch 中聊天。 如果与你的数据交互像与同事聊天一样轻松&#xff0c;会怎样&#xff1f;想象一下&#xff0c;你只需简单地问&#xff1a;“显…...

前端调试实践与案例场景

前端调试实践与案例场景 前端开发中&#xff0c;调试是一项必不可少的技能。以下是一些常见的前端调试实践和相应的案例场景&#xff1a; 1. 浏览器开发者工具 案例场景&#xff1a;布局问题 用户报告在移动设备上页面布局错乱。使用 Chrome DevTools 的设备模拟功能和 Ele…...

安卓的布局方式

一、RelativeLayout 相对布局 特点&#xff1a;每个组件相对其他的某一个组件进行定位。 (一)主要属性 1、设置和父组件的对齐&#xff1a; alignParentTop &#xff1a; 设置为true&#xff0c;代表和父布局顶部对齐。 其他对齐只需要改变后面的Top为 Left、Right 或者Bottom&…...

计算机网络面经(一)

以下为个人总结&#xff0c;图源大部分会来自网络和JavaGuide 网络分层模型 OSI七层模型 各层的常见协议 应用层 用户接口 HTTP, FTP, SMTP, DNS表示层 数据格式转换 SSL/TLS, JSON, JPEG会话层 会话管理 NetBIOS, RPC, SSH传输层 端到端通信 TCP, UDP, QUIC网络层 路由寻址…...

k8s日志管理

k8s日志管理 k8s查看日志查看集群中不是完全运行状态的pod查看deployment日志查看service日志进入pod的容器内查看日志 管理k8s组件日志kubectl logs查看日志原理 管理k8s应用日志收集k8s日志思路收集标准输出收集容器中日志文件 k8s查看节点状态失败k8s部署prometheus监控 k8s…...

Netty源码—10.Netty工具之时间轮二

大纲 1.什么是时间轮 2.HashedWheelTimer是什么 3.HashedWheelTimer的使用 4.HashedWheelTimer的运行流程 5.HashedWheelTimer的核心字段 6.HashedWheelTimer的构造方法 7.HashedWheelTimer添加任务和执行任务 8.HashedWheelTimer的完整源码 9.HashedWheelTimer的总结…...

Baklib激活企业知识管理新动能

Baklib核心技术架构解析 Baklib的底层架构以模块化设计为核心&#xff0c;融合知识中台的核心理念&#xff0c;通过分布式存储引擎与智能语义分析系统构建三层技术体系。数据层采用多源异构数据接入协议&#xff0c;支持文档、音视频、代码片段等非结构化数据的实时解析与分类…...

CSP-J/S冲奖第21天:插入排序

一、插入排序概念 1.1 生活中的类比 • 扑克牌排序&#xff1a;就像整理手中的扑克牌&#xff0c;每次将一张牌插入到已排好序的牌中合适位置 • 动态演示&#xff1a; 初始序列&#xff1a;[5, 2, 4, 6, 1, 3] 排序过程&#xff1a; → [2, 5, 4, 6, 1, 3] → [2, 4, 5, 6, …...

Jest系列二之基础实践

Jest基础实践 官方文档地址&#xff1a;https://jest.nodejs.cn/docs 生命周期 在 Jest 中&#xff0c;生命周期方法大致分为两类&#xff1a;下面所罗列的生命周期方法&#xff0c;也是全局方法&#xff0c;不需要引入&#xff0c;直接就可以使用。 重复性的生命周期方法&…...

Scikit-learn全攻略:从入门到工业级应用

Scikit-learn全攻略:从入门到工业级应用 引言:Scikit-learn在机器学习生态系统中的核心地位 Scikit-learn作为Python最受欢迎的机器学习库,已成为数据科学家的标准工具集。根据2023年Kaggle调查报告,超过83%的数据专业人士在日常工作中使用Scikit-learn。本文将系统性地介…...

基于Python的图书馆信息管理系统研发

标题:基于Python的图书馆信息管理系统研发 内容:1.摘要 在数字化信息快速发展的背景下&#xff0c;传统图书馆管理方式效率低下&#xff0c;难以满足日益增长的信息管理需求。本研究旨在研发一款基于Python的图书馆信息管理系统&#xff0c;以提高图书馆信息管理的效率和准确性…...

Pytorch学习笔记(十七)Image and Video - Adversarial Example Generation

这篇博客瞄准的是 pytorch 官方教程中 Image and Video 章节的 Adversarial Example Generation 部分。 官网链接&#xff1a;https://pytorch.org/tutorials/beginner/fgsm_tutorial.html 完整网盘链接: https://pan.baidu.com/s/1L9PVZ-KRDGVER-AJnXOvlQ?pwdaa2m 提取码: …...

基于Arm GNU Toolchain编译生成的.elf转hex/bin文件格式方法

基于Arm GNU Toolchain编译生成的.elf转hex/bin文件格式方法 已经弃用的版本&#xff08;Version 10.3-2021.10&#xff09;&#xff1a;gcc-arm-none-eabi&#xff1a;https://developer.arm.com/downloads/-/gnu-rmArm GNU Toolchain当前版本&#xff1a;https://developer.a…...

Ubuntu系统Docker安装失败

问题&#xff1a; 1. 删除错误的 Docker 源 sudo rm -rf /etc/apt/sources.list.d/docker.list sudo rm -rf /etc/apt/keyrings/docker.gpg 2. 重新添加 Docker 官方 GPG 密钥 ​ sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | …...

鸿蒙学习手册(HarmonyOSNext_API16)_数据持久化②:键值型数据库

概述 键值型数据库就像一个大抽屉柜&#xff0c;每个抽屉都有一个唯一的标签&#xff08;键&#xff09;&#xff0c;里面可以放任何东西&#xff08;值&#xff09;。当你需要存或取东西时&#xff0c;直接看标签拿对应的抽屉就行&#xff0c;不用管其他抽屉里有什么。这种简…...

多线程 - 线程安全 2 -- > 死锁问题

目录 小结复习&#xff1a; 线程安全&#xff1a; 如何解决线程安全问题&#xff1f; synchronized “死锁” 死锁的三种经典场景&#xff1a; 1. 一个线程&#xff0c;一把锁。 2.两个线程&#xff0c;两把锁。 3. N 个线程 M 把锁 完&#xff01; 小结复习&#xff1a…...

JavaScript函数详解

目录 一、函数的基础概念 1. 函数的定义方式 2. 函数的参数处理 3.匿名函数与立即执行函数 4.同名函数与函数提升 二、函数的作用域与闭包 1. 作用域&#xff08;Scope&#xff09; 2. 闭包&#xff08;Closure&#xff09; 三、高阶函数与函数式编程 1. 高阶函数 2…...

Python-八股总结

目录 1 python 垃圾处理机制2 yield3 python 多继承&#xff0c;两个父类有同名方法怎么办&#xff1f;4 python 多线程/多进程/协程4.1 多线程与GIL全局解释器锁4.2 多进程4.3 协程 5 乐观锁/悲观锁6 基本数据结构**1. 列表&#xff08;List&#xff09;****2. 元组&#xff0…...

整合分块请求大模型返回的测试用例及小工具显示bug修复

在之前的分块发送需求数据给大模型进行测试用例生成时&#xff0c;由于数据结构的改变&#xff0c;需要对分块的回复进行整合&#xff0c;正确的整合是保障系统稳定性和功能正确性的核心。随着测试需求的复杂化&#xff0c;这对测试工程师提出了更高的整合和管理要求。本文将为…...

记一道CTF题—PHP双MD5加密+”SALT“弱碰撞绕过

通过分析源代码并找到绕过限制的方法&#xff0c;从而获取到flag&#xff01; 部分源码&#xff1a; <?php $name_POST[username]; $passencode(_POST[password]); $admin_user "admin"; $admin_pw get_hash("0e260265122865008095838959784793");…...

stm32F103RCT6 FLASH模拟EEPROM 读写32位数据

#include “stm32flash.h” #ifndef __STMFLASH_H__ #define __STMFLASH_H__ #include "main.h" #define</...

Spring Data审计利器:@LastModifiedDate详解!!!

&#x1f552; Spring Data审计利器&#xff1a;LastModifiedDate详解&#x1f525; &#x1f31f; 简介 在数据驱动的应用中&#xff0c;记录数据的最后修改时间是常见需求。Spring Data的LastModifiedDate注解让这一过程自动化成为可能&#xff01;本篇带你掌握它的核心用法…...

【SLURM】介绍

SLURM Slurm&#xff08;Simple Linux Utility for Resource Management&#xff09; 是一个用于管理和调度计算集群任务的开源作业调度系统。它主要用于高性能计算&#xff08;HPC&#xff09;环境&#xff0c;比如超算中心、大学的计算集群或企业的数据中心。 本文主要针对使…...

算法-贪心算法

圣诞老人的礼物-Santa Clau’s Gifts 现在有多箱不同的糖果&#xff0c;每箱糖果有自己的价值和重量&#xff0c;每箱糖果都可以拆分成任意散装组合带走。圣 诞老人的驯鹿雪橇最多只能装下重量W的糖果&#xff0c;请 问圣诞老人最多能带走多大价值的糖果。 输入 第一行由两个…...

Nginx — Nginx处理Web请求机制解析

一、Nginx请求默认页面资源 1、配置文件详解 修改端口号为8080并重启服务&#xff1a; 二、Nginx进程模型 1、nginx常用命令解析 master进程&#xff1a;主进程&#xff08;只有一个&#xff09; worker进程&#xff1a;工作进程&#xff08;可以有多个&#xff0c;默认只有一…...

GAN随手笔记

文章目录 1. description2. code 1. description 后续整理 GAN是生成对抗网络&#xff0c;主要由G生成器&#xff0c;D判别器组成&#xff0c;具体形式如下 D 判别器&#xff1a; G生成器&#xff1a; 2. code 部分源码&#xff0c;暂定&#xff0c;后续修改 import nump…...

Java 8 时区与历法处理指南:跨越全球的时间管理

Java 8 的 java.time API 不仅修复了旧版日期时间 API 的设计缺陷&#xff0c;还提供了对时区和多历法的全面支持。无论是处理全球化应用的时区转换&#xff0c;还是适配不同文化的日历系统&#xff0c;Java 8 都能轻松应对。本文将深入解析其核心功能&#xff0c;并提供实用代…...

【STM32】对stm32F103VET6指南者原理图详解(超详细)

目录 一、原理图基本概念二、STM32F103VET6 的主要特性二、MCU模块三、电源模块四、时钟模块五、复位模块NRST 六、GPIO模块LED 七、调试模块JTAG 八、外设模块UARTSPII2CADC 九、其它模块BOOT 一、原理图基本概念 原理图/电路图通常由硬件工程师使用Altium Designer/ KiCad / …...

瑞芯微RKRGA(librga)Buffer API 分析

一、Buffer API 简介 在瑞芯微官方的 librga 库的手册中&#xff0c;有两组配置 buffer 的API&#xff1a; importbuffer 方式&#xff1a; importbuffer_virtualaddr importbuffer_physicaladdr importbuffer_fd wrapbuffer 方式&#xff1a; wrapbuffer_virtualaddr wrapb…...

移动端六大语言速记:第1部分 - 基础语法与控制结构

移动端六大语言速记&#xff1a;第1部分 - 基础语法与控制结构 本文将对比Java、Kotlin、Flutter(Dart)、Python、ArkTS和Swift这六种移动端开发语言的基础语法与控制结构&#xff0c;帮助开发者快速理解各语言间的差异与共性。 1. 基础语法 1.1 数据类型 各语言的基本数据…...