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

ML.NET库学习004:ML.NET基础知识复盘

文章目录

  • ML.NET库学习004:ML.NET基础知识复盘
    • 背景
    • 简单的 ML.NET 应用程序
    • 代码工作流
    • 机器学习模型
      • 基础
      • 进阶
    • ML.NET 架构
      • 构建管道
      • 训练模型
      • 使用模型
    • 数据模型和架构
      • 模型部署

ML.NET库学习004:ML.NET基础知识复盘

学了几个小项目,发现好多方法莫名其妙。仔细思索,觉得是没有ML.NET的知识基础,直接上手看代码,先应该整体了解一下概念,再去看代码。

背景

ML.NET 使您能够在联机或脱机方案中将机器学习添加到 .NET 应用程序。借助此功能,您可以使用应用程序可用的数据进行自动预测。机器学习应用程序利用数据中的模式进行预测,而不需要显式编程。ML.NET 的核心是机器学习模型。
在这里插入图片描述

该模型指定了将输入数据转换为预测所需的步骤。借助 ML.NET,您可以通过指定算法来训练自定义模型,也可以导入预先训练的 TensorFlow 和 Open Neural Network Exchange (ONNX) 模型。拥有模型后,您可以将其添加到应用程序中以进行预测。

ML.NET 使用 .NET 在 Windows、Linux 和 macOS 上运行,或使用 .NET Framework 在 Windows 上运行。所有平台都支持 64 位。Windows 支持 32 位,但 TensorFlow、LightGBM 和 ONNX 相关功能除外。下表显示了您可以使用 ML.NET 进行的预测类型的示例。
在这里插入图片描述

简单的 ML.NET 应用程序

以下代码段中的代码演示了最简单的 ML.NET 应用程序。此示例构造一个线性回归模型,以使用房屋大小和价格数据预测房价。

using Microsoft.ML;
using Microsoft.ML.Data;class Program
{public record HouseData{public float Size { get; set; }public float Price { get; set; }}public record Prediction{[ColumnName("Score")]public float Price { get; set; }}static void Main(string[] args){MLContext mlContext = new();// 1. Import or create training data.HouseData[] houseData = [new() { Size = 1.1F, Price = 1.2F },new() { Size = 1.9F, Price = 2.3F },new() { Size = 2.8F, Price = 3.0F },new() { Size = 3.4F, Price = 3.7F }];IDataView trainingData = mlContext.Data.LoadFromEnumerable(houseData);// 2. Specify data preparation and model training pipeline.EstimatorChain<RegressionPredictionTransformer<Microsoft.ML.Trainers.LinearRegressionModelParameters>> pipeline = mlContext.Transforms.Concatenate("Features", ["Size"]).Append(mlContext.Regression.Trainers.Sdca(labelColumnName: "Price", maximumNumberOfIterations: 100));// 3. Train model.TransformerChain<RegressionPredictionTransformer<Microsoft.ML.Trainers.LinearRegressionModelParameters>> model = pipeline.Fit(trainingData);// 4. Make a prediction.HouseData size = new() { Size = 2.5F };Prediction price = mlContext.Model.CreatePredictionEngine<HouseData, Prediction>(model).Predict(size);Console.WriteLine($"Predicted price for size: {size.Size * 1000} sq ft = {price.Price * 100:C}k");// Predicted price for size: 2500 sq ft = $261.98k}
}

代码工作流

下图展示了应用程序代码结构和模型开发的迭代过程:
收集训练数据并将其加载到 IDataView 对象中
指定作管道以提取特征并应用机器学习算法
通过在管道上调用 Fit(IDataView) 来训练模型
评估模型并迭代以改进
将模型保存为二进制格式,以便在应用程序中使用
将模型加载回 ITransformer 对象
通过调用 PredictionEngineBase<TSrc,TDst> 进行预测。
在这里插入图片描述

机器学习模型

ML.NET 模型是一个对象,其中包含要对输入数据执行的转换,以得出预测的输出。

基础

最基本的模型是二维线性回归,其中一个连续量与另一个连续量成正比,如前面所示的房价示例所示。
在这里插入图片描述

模型很简单:Price=b+Size∗w.参数b和w通过在一组 (size, price) 对上拟合一条线来估计。用于查找模型参数的数据称为训练数据。机器学习模型的输入称为特征。在此示例中,Size是唯一的功能。用于训练机器学习模型的 ground-truth 值称为标签。在这里,Pr我ce训练数据集中的值是标签。

进阶

更复杂的模型使用交易文本描述将金融交易分类为多个类别。通过删除冗余的单词和字符,并计算单词和字符的组合,每个交易描述都分解为一组特征。该特征集用于根据训练数据中的类别集训练线性模型。
新描述与训练集中的描述越相似,就越有可能将其分配到同一类别。

在这里插入图片描述在这里插入图片描述

房屋价格模型和文本分类模型都是线性模型。根据数据的性质和要解决的问题,您还可以使用决策树模型、广义加法模型等。您可以在 Tasks 中找到有关模型的更多信息。

ML.NET 架构

本节介绍 ML.NET 的架构模式。如果您是一位经验丰富的 .NET 开发人员,则其中一些模式对您来说可能很熟悉,而另一些则不太熟悉。
ML.NET 应用程序以 MLContext 对象开头。此 singleton 对象包含 catalogs。目录是用于数据加载和保存、转换、训练器和模型作组件的工厂。每个目录对象都有用于创建不同类型元件的方法。

在这里插入图片描述

您可以导航到列出的每个类别中的创建方法。如果使用 Visual Studio,则目录也会通过 IntelliSense 显示。
在这里插入图片描述

构建管道

每个目录中都有一组可用于创建训练管道的扩展方法。

var pipeline = mlContext.Transforms.Concatenate("Features", new[] { "Size" }).Append(mlContext.Regression.Trainers.Sdca(labelColumnName: "Price", maximumNumberOfIterations: 100));

在代码段中,和 都是目录中的方法。它们各自创建一个附加到管道的 IEstimator 对象。ConcatenateSdca此时,对象已创建,但尚未执行。

训练模型

创建管道中的对象后,可以使用数据来训练模型。

var model = pipeline.Fit(trainingData);

Calling 使用输入的训练数据来估计模型的参数。这称为训练模型。请记住,前面显示的线性回归模型有两个模型参数:bias 和 weight。调用后,参数的值是已知的。(大多数模型的参数比这多得多。Fit()Fit()
您可以在如何训练模型中了解有关模型训练的更多信息。
生成的模型对象实现 ITransformer 接口。也就是说,该模型将输入数据转换为预测。

IDataView predictions = model.Transform(inputData);

使用模型

您可以将输入数据批量转换为预测,也可以一次转换一个输入。房价示例同时执行了两项作:批量评估模型,一次一个进行新的预测。让我们看看如何进行单个预测。

var size = new HouseData() { Size = 2.5F };
var predEngine = mlContext.CreatePredictionEngine<HouseData, Prediction>(model);
var price = predEngine.Predict(size);

该方法采用一个 input 类和一个 output 类。字段名称或代码属性确定模型训练和预测期间使用的数据列的名称。有关更多信息,请参阅使用经过训练的模型进行预测。CreatePredictionEngine()

数据模型和架构

ML.NET机器学习管道的核心是 DataView 对象。
管道中的每个转换都有一个输入架构(转换希望在其输入上看到的数据名称、类型和大小);和输出架构(转换后生成的数据名称、类型和大小)。如果管道中一个转换的输出架构与下一个转换的输入架构不匹配,ML.NET 将引发异常。数据视图对象包含列和行。
每列都有一个名称、一个类型和一个长度。例如,房价示例中的输入列是 Size 和 Price。
它们都是 Single 类型,并且它们是标量而不是向量。
在这里插入图片描述

所有 ML.NET 算法都查找作为向量的输入列。默认情况下,此向量列称为 Features。这就是房价示例将 Size 列连接到名为 Features 的新列的原因。

var pipeline = mlContext.Transforms.Concatenate("Features", new[] { "Size" })

所有算法在执行预测后还会创建新列。这些新列的固定名称取决于机器学习算法的类型。对于回归任务,其中一个新列称为 Score,如 price data 属性中所示。

public class Prediction
{[ColumnName("Score")]public float Price { get; set; }
}

您可以在 Machine Learning Tasks 指南中找到有关不同机器学习任务的输出列的更多信息。DataView 对象的一个重要属性是它们被延迟计算。数据视图仅在模型训练和评估以及数据预测期间加载和作。在编写和测试 ML.NET 应用程序时,可以使用 Visual Studio 调试器通过调用 Preview 方法查看任何数据视图对象。

var debug = testPriceDataView.Preview();

模型部署

在实际应用程序中,您的模型训练和评估代码将与预测分开。事实上,这两项活动通常由不同的团队执行。您的模型开发团队可以保存模型以在预测应用程序中使用。

mlContext.Model.Save(model, trainingData.Schema, "model.zip");

相关文章:

ML.NET库学习004:ML.NET基础知识复盘

文章目录 ML.NET库学习004&#xff1a;ML.NET基础知识复盘背景简单的 ML.NET 应用程序代码工作流机器学习模型基础进阶 ML.NET 架构构建管道训练模型使用模型 数据模型和架构模型部署 ML.NET库学习004&#xff1a;ML.NET基础知识复盘 学了几个小项目&#xff0c;发现好多方法莫…...

2. UVM的基本概念和架构

文章目录 前言1. UVM的基本概念1.1 UVM的核心组件1.2 UVM的基本架构1.3 UVM的工作流程 2. UVM的架构2.1 UVM的层次结构2.2 UVM的组件交互 3. 总结 前言 首先&#xff0c;得确定UVM的基本概念和架构包含哪些关键部分。我回忆起UVM的核心组件&#xff0c;比如uvm_component、uvm…...

算法10--哈希

哈希 原理经典例题[1. 两数之和](https://leetcode.cn/problems/two-sum/description/)[面试题 01.02. 判定是否互为字符重排](https://leetcode.cn/problems/check-permutation-lcci/description/)[217. 存在重复元素](https://editor.csdn.net/md?not_checkout1&spm1015…...

磁盘文件删除后恢复

磁盘文件删除后&#xff0c;文件数据并未立即消失&#xff0c;只是文件系统的指针被移除&#xff0c;标记该空间为可覆盖。要恢复文件&#xff0c;可以尝试以下方法&#xff1a; 1. 使用数据恢复软件 Recuva&#xff1a;适合Windows&#xff0c;能恢复多种文件类型。PhotoRec…...

STM32 CUBE Can调试

STM32 CUBE Can调试 1、CAN配置2、时钟配置3、手动添加4、回调函数5、启动函数和发送函数6、使用方法(采用消息队列来做缓存)7、数据不多在发送函数中获取空邮箱发送&#xff0c;否则循环等待空邮箱 1、CAN配置 2、时钟配置 3、手动添加 需要注意的是STM32CUBE配置的代码需要再…...

【大模型】Ubuntu下安装ollama,DeepSseek-R1:32b的本地部署和运行

1 ollama 的安装与设置 ollama官网链接&#xff1a;https://ollama.com/ 在左上角的【Models】中展示了ollama支持的模型在正中间的【Download】中课可以下载支持平台中的安装包。   其安装和模型路径配置操作流程如下&#xff1a; ollama的安装 这里选择命令安装curl -fsSL …...

Goland 内存逃逸问题

内存逃逸是什么&#xff1f; 在go语言中&#xff0c;内存分配存在两个方式&#xff1a;堆分配&#xff1b;栈分配。 栈分配&#xff1a;是在函数调用时为局部变量分配内存&#xff0c;当函数返回时&#xff0c;这些内存会自动释放。 堆分配&#xff1a;通过 new 或者 make 函…...

我们来学人工智能 -- 本地部署DeepSeek

本地部署DeepSeek 题记思考正题结语 题记 时不待我AI会淘汰各领域一些岗位AI可以精简部门&#xff0c;DP白菜价的落地&#xff0c;2025年会更加明显会AI的淘汰不会AI的第四次工业革命将在中国爆发 全产业链多年数字化建设以DP为代表的全球领先白菜价人工智能在各行各业的普及 …...

【GitHub】GitHub 2FA 双因素认证 ( 使用 Microsoft Authenticator 应用进行二次验证 )

文章目录 一、GitHub 的 2FA 双因素认证二、使用 Microsoft Authenticator 应用进行二次验证1、TOTP 应用2、下载 Microsoft Authenticator 应用3、安装使用 Authenticator 应用 三、恢复码重要性 一、GitHub 的 2FA 双因素认证 现在登录 GitHub 需要进行二次身份验证 ; 先登录…...

通过脚本实现自动将标签内容复制到下一个标签文件中

只需要将下面内容运行前 修改文件夹路径(控制修改范围的文件名 不需要的话 就随便写一个不相同的文件名 就行 需要的话就是在这个文件名字之前的会被修改) import os import time # 文件夹路径 image_directory r"C:\Users\Lenovo\Desktop\新建文件夹\images" # 替…...

Elasticsearch+Kibana安装启动与操作教程

在大数据时代&#xff0c;Elasticsearch&#xff08;简称 ES&#xff09;和 Kibana 作为强大的数据搜索与可视化工具&#xff0c;受到了众多开发者的青睐。本文将为您详细介绍在 Windows 和 Mac 系统上安装、启动 Elasticsearch 和 Kibana 的步骤&#xff0c;以及常用命令和 Ki…...

CSS Overflow 属性详解:控制内容溢出的利器

在前端开发中&#xff0c;处理内容溢出是一个常见的需求。CSS 提供了 overflow 属性&#xff0c;帮助我们控制当内容超出元素框时的显示方式。本文将详细介绍 overflow 属性的各种取值及其应用场景。 1. 什么是 overflow 属性&#xff1f; overflow 属性用于控制当元素的内容…...

什么是XMLHttpRequest?及其详细使用说明

XMLHttpRequest&#xff08;通常缩写为XHR&#xff09;是一个JavaScript对象&#xff0c;用于在浏览器和服务器之间进行异步通信。它允许网页在不重新加载整个页面的情况下&#xff0c;向服务器发送请求并接收响应。XHR是Ajax&#xff08;Asynchronous JavaScript and XML&…...

Chrome浏览器原理及优化

1. 相关面试题 1.1. 请说说从输入 URL 到页面渲染完成的全过程 1. 输入URL,用户在浏览器的地址栏输入一个URL,并按下回车键; 2. DNS解析; 浏览器需要将域名转换为服务器的IP地址,以建立连接。 (1). 如果浏览器缓存、操作系统缓存或路由器缓存中已有该域名的IP地址,…...

Vue 3 + Vite + JS 项目中实现组件全局自动化注册的魔法,极致组件自动化注册方案,开发效率飙升300%。

在Vue项目开发中&#xff0c;你是否还在为重复的组件注册代码而烦恼&#xff1f;是否经历过在大型项目中手动维护数百个组件注册的痛苦&#xff1f;本文将揭秘一种革命性的组件自动化注册方案&#xff0c;结合Vite的黑魔法和Vue3的最新特性&#xff0c;让你的开发效率实现质的飞…...

寒假2.8

题解 web&#xff1a;[RoarCTF 2019]Easy Calc 打开&#xff0c;是一个计算界面 看一下源代码&#xff0c;提示设置了WAF&#xff0c;并且有一个calc.php文件 访问一下calc.php文件&#xff0c;得到源码&#xff0c;使用get方式传参赋值给num&#xff0c;设置了黑名单&#x…...

企业如何利用DeepSeek提升网络安全管理水平

企业可以通过深度整合DeepSeek的AI能力&#xff0c;构建智能化、动态化的网络安全防御体系&#xff0c;以应对APT&#xff08;高级持续性威胁&#xff09;等复杂攻击。以下是具体策略与实践路径&#xff1a; 1. AI驱动的威胁检测与分析 多模态威胁狩猎 DeepSeek的深度学习技术能…...

C++ libfmt 实战: 高效便捷的格式化库

libfmt 是一个现代化的 C格式化库{fmt}, 具有以下关键特性: 安全性: 受 Python 格式化功能启发, {fmt}为printf系列函数提供安全替代方案. 格式字符串错误在编译时就能被检测出来, 并且通过自动内存管理避免缓冲区溢出错误.可扩展性: 默认支持格式化大多数标准类型, 包括容器,…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_max_sockets

在 Nginx 的源代码中&#xff0c; ngx_max_sockets 全局变量的声明位于 os/unix/ngx_os.h extern ngx_int_t ngx_max_sockets; 定义在 os/unix/ngx_posix_init.c ngx_int_t ngx_max_sockets; ngx_max_sockets 定义了 Nginx 能够同时使用的最大 Socket 文件描述符数量。它…...

Spring Boot接入Deep Seek的API

1&#xff0c;首先进入deepseek的官网&#xff1a;DeepSeek | 深度求索&#xff0c;单击右上角的API开放平台。 2&#xff0c;单击API keys&#xff0c;创建一个API&#xff0c;创建完成务必复制&#xff01;&#xff01;不然关掉之后会看不看api key&#xff01;&#xff01;&…...

大语言模型实践——基于现有API的二次开发

基于现有的API平台做一些实用的AI小应用。 API服务商&#xff1a;阿里云百炼 云服务器&#xff1a;阿里云&#xff08;2核2GB&#xff09; 部署框架&#xff1a;gradio 调用框架&#xff1a;openai 语言&#xff1a;Python &#xff08;注&#xff1a;若搭建网站或API接口…...

ChunkKV:优化 KV 缓存压缩,让 LLM 长文本推理更高效

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

深入探究 Go 语言中的 Fx 框架:依赖注入的强大工具

在软件开发中&#xff0c;依赖注入&#xff08;Dependency Injection&#xff0c;简称 DI&#xff09;是一种重要的设计模式&#xff0c;它可以帮助我们降低代码的耦合度&#xff0c;提高代码的可测试性和可维护性。Go 语言作为一门高效、简洁的编程语言&#xff0c;拥有许多优…...

用 DeepSeek + Kimi 自动做 PPT,效率起飞

以下是使用 DeepSeek Kimi 自动做 PPT 的详细操作步骤&#xff1a; 利用 DeepSeek 生成 PPT 内容&#xff1a; 访问 DeepSeek 官网&#xff0c;完成注册/登录后进入对话界面。输入指令&#xff0c;例如“请用 Markdown 格式生成一份关于[具体主题]的 PPT 大纲&#xff0c;需包…...

【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战

【04】Java若依vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战 项目背景 本项目经费43000元&#xff0c;需求文档如下&#xff0c;工期25天&#xff0c;目前已经过了8天&#xff0c;时间不多了&#x…...

【C++】异常

前言 本篇博客我们来看下C有关异常的处理&#xff0c;了解下异常有关的知识 &#x1f493; 个人主页&#xff1a;小张同学zkf ⏩ 文章专栏&#xff1a;C 若有问题 评论区见&#x1f4dd; &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐文章 ​ 目录 1.异常的概念及使用 1.1异…...

Meta AI 最近推出了一款全新的机器学习框架ParetoQ,专门用于大型语言模型的4-bit 以下量化

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

金融资产配置

不要放在一个篮子里也不要放在太多篮子里&#xff1a; 尽量放在不相关的行业实现风险对冲 金融资产从风险类别上主要可以分为三类&#xff1a; 进攻型资产、稳定型资产和防守型资产 进攻型资产包括原油、股票、一级市场股权投资等 稳定型资产包括信托、理财、国债等 防守…...

(done) openMP学习 (Day14: 总结)

url: https://dazuozcy.github.io/posts/introdution-to-openmp-intel/#23-%E5%8F%AF%E6%80%95%E7%9A%84%E4%B8%9C%E8%A5%BF%E5%86%85%E5%AD%98%E6%A8%A1%E5%9E%8Batomicsflushpairwise%E5%90%8C%E6%AD%A5%20 新手并行程序员与专家并行程序员之间的区别是专家have a collection…...

音频进阶学习十一——离散傅里叶级数DFS

文章目录 前言一、傅里叶级数1.定义2.周期信号序列3.表达式DFSIDFS参数含义 4.DFS公式解析1&#xff09;右边解析 T T T、 f f f、 ω \omega ω的关系求和公式N的释义求和公式K的释义 e j ( − 2 π k n N ) e^{j(\frac{-2\pi kn}{N})} ej(N−2πkn​)的释义 ∑ n 0 N − 1 e…...

ssm的心得

spring是一个轻量级的ioc&#xff08;控制反转&#xff09;和aop&#xff08;面向切面编程&#xff09;容器框架&#xff0c;它可以管理和配置应用中的各种bean&#xff08;对象&#xff09;&#xff0c;实现bean之间的依赖注入&#xff0c;以及提供事务管理、缓存、测试等功能…...

14vue3实战-----获取用户信息和用户的菜单树信息

14vue3实战-----获取用户信息和用户的菜单树信息 1.获取用户信息1.1封装接口1.2优化 2.获取用户的菜单树信息 1.获取用户信息 1.1封装接口 后端有根据id获取用户信息的接口&#xff0c;前端需要把该接口封装一下: service/login/login.ts&#xff1a; import hyRequest from…...

shell脚本学习笔记

Shell脚本学习笔记 参考资料&#xff1a;https://www.runoob.com/linux/linux-shell-passing-arguments.html 文章目录 Shell脚本学习笔记一、什么是Shell1.1、定义1.2、注释 二、Shell变量2.1、规则2.2、变量类型2.2.1、字符串2.2.2、整数2.2.3、数组2.2.4、环境变量2.2.5、特…...

Java中的线程池及其应用场景有哪些?

Java中的线程池是一种高效的并发编程机制&#xff0c;通过复用线程来管理任务的执行&#xff0c;从而提高资源利用率和系统性能。 本文将详细探讨Java线程池的概念、类型、应用场景以及实际代码示例&#xff0c;帮助读者全面理解线程池的使用方法及其在实际开发中的重要性。 …...

13.6 基于 LangChain架构优化实战:OpenAI-Translator翻译系统重构与10倍效率提升秘籍

LangChain架构优化实战:OpenAI-Translator翻译系统重构与10倍效率提升秘籍 关键词:LangChain 架构优化, 模块解耦, 翻译系统设计模式, 可扩展翻译框架, 多模型管理 1. 原架构痛点分析 问题维度原实现缺陷LangChain 优化方案大模型耦合直接调用 OpenAI API,切换模型需改代码…...

构建基于 SSE 协议通信的 MCP Server 和 Client

在之前的系列教程中&#xff0c;我们编写的 MCP 服务器与 MCP 客户端是通过 **stdio&#xff08;Standard Input/Output&#xff0c;标准输入输出&#xff09;**来进行交互的。客户端通过启动服务器子进程&#xff0c;并利用标准输入&#xff08;stdin&#xff09;和标准输出&a…...

Docker、Ollama、Dify 及 DeepSeek 安装配置与搭建企业级本地私有化知识库实践

在现代企业中&#xff0c;管理和快速访问知识库是提升工作效率、促进创新的关键。为了满足这些需求&#xff0c;企业越来越倾向于构建本地私有化的知识库系统&#xff0c;这样可以更好地保护企业数据的安全性和隐私性。本文将介绍如何利用 **Docker**、**Ollama**、**Dify** 和…...

第3章 使用 Vue 脚手架

第3章 使用 Vue 脚手架 3.1 初始化脚手架3.1.1 说明3.1.2. 具体步骤3.1.3 分析脚手架结构1 总结2 细节分析1 配置文件2 src文件1 文件结构分析2 例子 3 public文件4 最终效果 3.2 ref属性3.3 props配置项3.4 mixin混入3.5 插件3.6 scoped样式3.7 Todo-list 案例3.7.1 组件化编码…...

MySQL第五次作业

根据图片内容完成作业 1.建表 &#xff08;1&#xff09;建立两个表:goods(商品表)、orders(订单表) mysql> create table goods( -> gid char(8) primary key, -> name varchar(10), -> price decimal(8,2), -> num int); mysql> create t…...

pikachu[皮卡丘] 靶场全级别通关教程答案 以及 学习方法 如何通过渗透测试靶场挑战「pikachu」来精通Web渗透技巧? 一篇文章搞完这些问题

目录 Pikachu靶场 部署 暴力破解漏洞 学习地址: 靶场练习: 基于表单的暴力破解 验证码绕过(on server) 验证码绕过(on Client) token防爆破? XSS跨站脚本攻击 学习地址: 靶场练习&#xff1a; 反射型xss(get) 反射性xss(post) 存储型xss DOM型xss xss盲打 x…...

ai智能DeepSeek 在 Cursor 中的配置与应用实践

DeepSeek 是一款高效的深度搜索引擎&#xff0c;能够为开发者提供更智能、更精准的搜索体验。在数据量大、查询复杂的场景中&#xff0c;DeepSeek 能够帮助提升查询的响应速度和精确度。本文将介绍 DeepSeek 在 Cursor 中的配置与应用&#xff0c;帮助开发者理解如何在实际开发…...

登录到docker里

在Docker中登录到容器通常有两种情况&#xff1a; 登录到正在运行的容器内部&#xff1a;如果你想要进入到正在运行的容器内部&#xff0c;可以使用docker exec命令。 登录到容器中并启动一个shell&#xff1a;如果你想要启动一个容器&#xff0c;并在其中启动一个shell&…...

【大数据技术】搭建完全分布式高可用大数据集群(Kafka)

搭建完全分布式高可用大数据集群(Kafka) kafka_2.13-3.9.0.tgz注:请在阅读本篇文章前,将以上资源下载下来。 写在前面 本文主要介绍搭建完全分布式高可用集群 Kafka 的详细步骤。 注意: 统一约定将软件安装包存放于虚拟机的/software目录下,软件安装至/opt目录下。 安…...

Java 大视界 -- Java 大数据在智能供应链中的应用与优化(76)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

10.单例模式 (Singleton Pattern)

单例模式的定义 单例模式&#xff08;Singleton Pattern&#xff09; 是一种创建型设计模式&#xff0c;确保一个类在整个程序生命周期中只能有一个实例&#xff0c;并提供一个全局访问点。 特点&#xff1a; 唯一性&#xff1a;保证系统中某个类只能有一个实例。全局访问点…...

Docker 常见问题解决方法

云原生学习路线导航页&#xff08;持续更新中&#xff09; kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计&#xff08;一&#xff09;Kubernetes架构原则和对象设计&#xff08;二&#xff09;Kubernetes架构原则和对象设计&#xff08;三&#xff09;Kubernetes常…...

QT-面试

1. C&#xff08;特别是 Qt&#xff09;开发中&#xff0c;内存优化的方法 1. 合理管理对象生命周期&#xff0c;使用智能指针 Qt 提供了 QScopedPointer 和 QSharedPointer 来管理对象生命周期&#xff0c;避免手动 delete 导致的内存泄漏。 2. 减少内存占用 QString、QBy…...

使用java代码操作rabbitMQ收发消息

SpringAMQP 将来我们开发业务功能的时候&#xff0c;肯定不会在控制台收发消息&#xff0c;而是应该基于编程的方式。由于RabbitMQ采用了AMQP协议&#xff0c;因此它具备跨语言的特性。任何语言只要遵循AMQP协议收发消息&#xff0c;都可以与RabbitMQ交互。并且RabbitMQ官方也…...

LeetCode 128: 最长连续序列

LeetCode 128: 最长连续序列 题目: 给定一个未排序的整数数组 nums &#xff0c;找出数字连续的最长序列&#xff08;不要求序列元素在原数组中连续&#xff09;的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1&#xff1a; 输入&#xff1a;nums […...

Shapefile格式文件解析和显示

Java实现GIS SHP文件格式的解析和显示&#xff0c;JDK19下编译&#xff0c;awt图形系统显示。 SHP文件对应的属性存储在DBF格式数据库中&#xff0c;解析见&#xff1a;DBASE DBF数据库文件解析_数据库文件在线解析-CSDN博客 解析SHP文件代码&#xff1a; public static Shap…...