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

AI有关的学习和python

一、基本概念

AIGC(AI Generated content AI 生成内容)

AI生成的文本、代码、图片、音频、视频。都可以成为AIGC。

Generative AI(生成式AI)所生成的内容就是AIGC

  • AI指代计算机人工智能,模仿人类的智能从而解决问题和完成任务。
    • 机器学习是AI的子集,不需要做显示编程,而是通过算法让计算机自动学习和改进
      • 监督学习算法接受带有标签的训练数据,也就是期望的输出值(例如进行分类和回归)

      • 无监督学习自主发现数据里的模式或规律( 例如聚类)

      • 强化学习在环境里采取行动,根据反馈学习(下围棋)

      • 深度学习使用人工神经网络,模仿人脑处理信息的方式,通过层次化提取和表示数据的特征

知识库

想象一下你是一个机器人,你要去帮助人们回答问题。但是你自己并不知道所有的答案,所以你需要一个地方来存储这些信息,就像是一个巨大的书库一样,里面装满了各种各样的书。

这个“书库”就是知识库。里面可能有各种书籍,每本书都代表了一个特定的知识领域。比如,有一本书是关于天气预报的,里面包含了各种关于天气的知识,比如什么样的云会带来雨水,哪种气象条件会导致雷暴等等。

另一本书可能是关于烹饪的,里面包含了各种菜谱、食材和烹饪技巧。每本书都是一种知识表示方式,它们可能是规则、概念、图表或者其他形式的知识结构。

当有人向你提问时,你可以去搜索这些书籍,找到相关的信息,并根据它们给出答案。比如,如果有人问你明天的天气如何,你可以去查找天气预报这本书,然后告诉他们明天会是晴天还是多云。它提供了一个结构化的方式来存储和组织知识,使得智能系统能够理解和处理人类的信息需求。

微调

微调指在预训练的基础上,使用特定领域的少量数据进一步训练模型,以适应特定的任务需求。它能让模型更准确地处理特定类型的问题。微调就是在一个已经训练好的人工智能模型基础上,稍微修改一些参数,以便适应新的任务或数据。就像是在一个已经学会了一些知识的学生基础上,再加上一点新的知识,以适应新的考试题目一样。

AI Agent

AI代理(Agent)是一种在人工智能领域中常见的概念,它指的是能够感知环境、进行决策和执行动作的程序或系统。这些代理可以是物理实体,如机器人,也可以是虚拟实体,如在计算机程序中运行的智能系统。

大模型相当为大脑,agent为手脚。模型负责下达指令,agent负责收集执行等。

提示词工程

提示词直接决定了反馈结果的优劣,想让大模型回答我们想要的内容,就需要优化提示词,使得模型的回答更加符合我们的预期的要求。提示词就起到了数据清洗和筛选作用。

提示词的作用有三点

  • 更精确的答案:确保大模型能够准确理解并回答用户的问题。
  • 多样性:一个稍有不同的提示,会导致截然不同的答案。
  • 控制输出风格:提示词可以用来指导模型的输出风格或内容。

提示词的制定环节

  1. 明确目标:首先确定你希望大模型或者机器人为你做什么?
  2. 优化提示:可以给大模型更加具体的指示。
  3. 评估和迭代:通过不同的提示词,来问它同样的问题,查看模型反馈是否满意。

提示词的核心技术

N-gram :通过统计通过计算N个词出现的概率,来预测下一个词(N为不固定的数)

深度学习:由多层神经网络组成,可以自动从数据中心学习,让模型不断自我学习优化,直到反馈符合预期

如何使用提示词

  1. 语言清晰
  2. 尽量把任务要求和用户输入用分隔符来隔开,尽量使用英文的""
  3. 给模型足够的信息,充分引导模型沿着正确的道路得出正确的答案。

提示词结构

  1. Context上下文(可选)

    1. 角色
    2. 任务
    3. 知识
  2. instruction命令(必选)

    1. 步骤
    2. 思维链
    3. 示例
  3. input data输入数据(必选)

    1. 句子

    2. 文章

    3. 问题

  4. output indicator输出格式(可选)

机器学习和神经网络

【偏难,看不懂可跳过】机器学习和神经网络基础知识_哔哩哔哩_bilibili

神经网络的基础概念

  1. 神经元(Neuron): 神经网络的基本单元,也称为节点或者单元。它模拟了生物神经元的功能,接收输入信号、进行加权求和、经过激活函数处理后产生输出。
  2. 连接权重(Weights): 连接权重是神经元之间连接的强度,用来调节输入信号对神经元输出的影响程度。权重越大,表示该输入对神经元的影响越大。
  3. 激活函数(Activation Function): 激活函数决定了神经元是否被激活(输出非零值)。常用的激活函数包括sigmoid、ReLU、tanh等,它们用于引入非线性特性,使神经网络能够学习更复杂的模式。
  4. 输入层(Input Layer): 输入层接收来自外部的数据输入,并将数据传递给网络中的其他层。每个输入层节点对应输入数据的一个特征。
  5. 隐藏层(Hidden Layer): 隐藏层位于输入层和输出层之间,负责处理输入数据并提取特征。一个神经网络可以包含多个隐藏层。
  6. 输出层(Output Layer): 输出层负责将神经网络的计算结果输出,通常用于进行分类、回归等任务。
  7. 前向传播(Forward Propagation): 前向传播是指输入数据经过神经网络各层的计算和传递过程,最终产生输出结果的过程。
  8. 反向传播(Backpropagation): 反向传播是一种通过计算梯度来更新神经网络参数的方法,它是训练神经网络的核心算法之一。
卷积神经网络

卷积神经网络(Convolutional Neural Network,CNN)是一种专门用于处理具有网格状拓扑结构数据的人工神经网络。CNN 在图像识别、计算机视觉和自然语言处理等领域取得了巨大成功。

CNN 的核心特点包括:

  1. 卷积层(Convolutional Layer): CNN 使用卷积层来提取输入数据中的特征。卷积操作将一个滤波器(也称为卷积核)应用于输入数据的不同位置,从而生成特征图。
  2. 池化层(Pooling Layer): 池化层通常紧随在卷积层之后,用于减少特征图的维度并提取最显著的特征。最常见的池化操作是最大池化,即在特定区域内选择最大值作为输出。
  3. 激活函数(Activation Function): 在卷积层和池化层之间,通常会添加一个激活函数,如ReLU(Rectified Linear Unit),用于引入非线性特性。
  4. 全连接层(Fully Connected Layer): 在卷积和池化层之后,通常会有一到多个全连接层,用于将提取的特征映射到输出类别或者结果上。

CNN 的工作流程包括:

  1. 输入层: 将输入数据(如图像)送入网络。
  2. 卷积层: 在卷积层中,通过应用多个滤波器来提取输入数据中的不同特征。
  3. 池化层: 池化层用于减少特征图的尺寸,并提取最显著的特征。
  4. 全连接层: 最后的全连接层将提取的特征映射到输出类别。
  5. 输出层: 输出层产生最终的预测结果。
自然语言处理

自然语言处理(NLP)是人工智能领域的一个分支,旨在让计算机能够理解、处理和生成人类自然语言的文本和语音数据。它涉及文本分类、命名实体识别、机器翻译、问答系统等任务,广泛应用于搜索引擎、智能助手、智能客服等领域。

多模态

多模态模型是指能够同时处理多种不同类型数据(例如文本、图像、音频等)的机器学习模型。这些模型通常设计用于解决多模态任务,如图像描述生成、视觉问答、视频理解等。多模态模型通常结合了不同类型数据的处理能力,使其能够更全面地理解和处理复杂的输入信息。

Embedding(嵌入)

嵌入是一种技术,用于将高维、复杂的数据(如文本、图像)转换成计算机容易处理的低维向量表示。在自然语言处理(NLP)中,单词嵌入将单词表示为向量,使得机器学习模型能够更好地理解和处理文本数据。

RAG(检索增强生成)

是一种结合了信息检索和生成技术的AI模型框架。在这个框架中,模型首先通过检索找到相关的文档或信息,然后在生成答案时利用检索结果进行增强。这可以显著提高生成的准确性和相关性。

LangChain

LangChain 是一个用于构建基于语言模型应用的框架,特别适用于构建复杂的应用程序,如问答系统、对话机器人、智能助理等。它旨在帮助开发者更方便地整合和定制各种功能模块,以充分发挥大型语言模型的潜力。

数据输入(数据清洗)------>数据分析与处理------>数据输出

数据输入:手动、文件上传、数据库连接

数据分析与处理:

  1. 算法:文本分类模型、情感分析模型、主题建模
  2. 分析过程与步骤:准备阶段(对数据进行切割等)、烹饪(根据不同的要求选择算法)、调味(进行微调)

数据输出:图表类、文字报告、互动界面

主要特点和概念

  1. 链(Chains):LangChain 通过“链”的概念来将不同的语言模型或功能模块组合起来。每个链可以执行不同的任务,例如接收用户输入、与外部数据源交互、生成答案等。这些链可以独立使用,也可以串联起来创建复杂的应用逻辑。
  2. 代理(Agents):代理是一种高级功能,允许语言模型动态选择并调用不同的工具或功能模块,以执行复杂任务。比如,代理可以根据用户的问题选择调用特定的 API 或数据库,检索到相关信息后返回答案。
  3. 工具(Tools):这些是与外部数据源或 API 交互的组件,通常包括检索系统、数据库、搜索引擎等。它们为链或代理提供扩展能力,让模型能够回答更复杂的问题。
  4. 记忆(Memory):LangChain 支持在链或代理的对话过程中引入“记忆”,使其能够在多轮对话中保持上下文一致性。这种记忆可以让应用程序更加个性化和智能化。
  5. 文档加载(Document Loaders):该模块用于加载外部文档(如 PDF、网页内容、数据库记录等),然后供检索或生成模型使用。

应用场景

  • 对话系统:可以基于用户输入构建具有多轮对话能力的系统,并利用链和工具动态检索相关信息。
  • 问答系统:结合外部数据源的检索工具,可以回答开放性或特定领域的问题。
  • 文档生成:从现有文档中提取相关信息,然后利用生成模型编写新的文档或报告。

LangChain 框架为开发者提供了丰富的组件和接口,便于集成外部工具和服务,从而让语言模型的功能更加强大。

部署(Chatglm2+langchain)

在这里插入图片描述

https://www.codewithgpu.com/i/chatchat-space/Langchain-Chatchat/Langchain-Chatchat

cd /root/Langchain-Chatchat/
conda actibate /root/pyenv
python startup.py -a

连接: ssh -p 12910 root@connect.westb.seetacloud.com

映射到本地 :ssh -CNg -L 6006:127.0.0.1:6006 root@connect.westb.seetacloud.com -p 12910
密码:ATM8/b/qhG//

http://127.0.0.1:6006/

# 智谱AI API,具体注册及api key获取请前往 http://open.bigmodel.cn
"zhipu-api": {"api_key": "*************************","version": "glm-4","provider": "ChatGLMWorker",
},

微调模型

在阿里云打开
在这里插入图片描述

按顺序执行命令

在这里插入图片描述

demos/chatglm_6b/ChatGLM-6B-main/ptuning/AdvertiseGen_Simple/train.json

该json文数据集,按照格式修改,然后重新执行如下数据准备和微调模型,命令

在这里插入图片描述

私有化大模型

先到https://supabase.com获取项目API
在这里插入图片描述

__创建阿里云实例(新加坡)__普通2*4c7就可以

# 克隆仓库
git clone https://github.com/n4ze3m/dialoqbase.git# 进入目录
cd dialoqbase/docker# 编辑文件
nano .env#然后输入 API key 以及数据库密钥#安装docker
curl -fsSl https://get.docker.com | sh
#安装docker compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o/usr/local/bin/docker-compose#给二进制文件添加权限
sudo chmod +x /usr/local/bin/docker-compose#运行docker compose 
sudo systemctl start docker 
sudo systemctl status docker#新建终端
cd dialoqbase/docker
#执行程序
docker-compose up -d
#然后在浏览器打开公网ip+3000端口初始账户:admin
初始密码:admin

投喂的数据集格式:问题和答案要在同一行

#1. 更新软件包
sudo apt update
sudo apt upgrade#2.安装git
sudo apt install git #3.安装项目
git clone https://github.com/aiwaves-cn/agents.git#4.安装python虚拟环境包
apt install python3.10-venv#5.创建虚拟环境
python3 -m venv myenv#6.开启虚拟环境
source myenv/bin/activate#7.更新pip包
pip install --upgrade pip#8.安装项目依赖
pip install ai-agents

部署Bisheng

bisheng/docker at main · dataelement/bisheng (github.com)

推荐云配置:cpu:32*188 GPU:A10

  1. 安装docker

    sudo apt update
    sudo apt upgrade# 安装依赖工具
    sudo apt install apt-transport-https ca-certificates curl software-properties-common# 添加docker官方的GPG密钥
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# 将Docker官方存储库添加到APT源列表中
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"# 更新索引
    sudo apt update# 安装docker
    sudo apt install docker-ce# 验证安装	
    sudo systemctl start docker
  2. 安装docker -compose

# 下载compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose# 赋权
sudo chmod +x /usr/local/bin/docker-composedocker compose version
  1. 安装git并下载项目
sudo apt install gitgit clone https://github.com/dataelement/bisheng.gitcd bisheng/dockersudo docker-compose up -dgit --version验证项目,3001端口  用户admin 密码1234
  1. 安装向量数据库Milvus(前面似乎已经安装了)
cd ~
# 下载
wget https://github.com/milvus-io/milvus/releases/download/v2.2.10/milvus-standalone-docker-compose.yml -O docker-compose.yml# 启动
sudo docker-compose up -d
  1. 安装ElasticSearch(前面似乎已经安装了)
# 创建docker网络
docker network create elasticdocker pull docker.elastic.co/elasticsearch/elasticsearch:8.9.2docker run --name elasticsearch --net elastic -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -it -d docker.elastic.co/elasticsearch/elasticsearch:8.9.2
  1. 安装 BISHENG-RT 和下载大模型和检查N卡(新终端)
docker pull dataelement/bisheng-rt:0.0.1
# 创建目录
mkdir -p model_repository
# 进入到目录
cd model_repository
#更新索引
sudo apt update
#安装git-lfs
sudo apt install git-lfs
#初始化
git lfs install
#拉取模型
git clone https://huggingface.co/THUDM/chatglm3-6b#如果停止不动停止任务,进入目录执行如下
git lfs pull#检查LFS对象是否存在
ls-lh .git/lfs/objects
#检查文件的完整性
git lfs ls-files
#尝试重新下载
git lfs fetch --all#查看n卡驱动和GPTU状态
nvidia-smi#检查nvidia-container-toolkit是否已经安装(若没有输出就没有安装)
dpkg -l | grep nvidia-container-toolkit#添加NVIDIA的软件包仓库
distribution=$(./etc/os-release;echo SIDSVERSION ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add-
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list#更新索引
sudo apt-get update#安装nvidia-container-toolkit
sudo apt-get install -y nvidia-container-toolkitfunction run container({
LOCAL MODEL REPO="/root/model repository'”#改成你自己的repo地址
MOUNT="-v $LOCAL_MODEL_REPO:/opt/bisheng-rt/models/model_repository"
IMAGE="dataelement/bisheng-rt:0.0.1"
docker run --gpus=all -p 9000:9000 -p 9001:9001 -p 9002:9002 -itd --workdir /opt/bisheng-rt\--shm-size=10G --name bisheng_rt_v001 $(MOUNT) $IMAGE ./bin/rtserver f

web界面gradio学习

【Gradio系列教程】 https://www.bilibili.com/video/BV19m411U7K8/?p=3&share_source=copy_web&vd_source=d2d1bdec77776a27cbcb4517d05c2c52

常见的输入组件

import gradio as grinput_list = [gr.Audio(sources=["microphone","upload"], type="numpy", label="Audio file"),  # 音频gr.Checkbox(label="Checkbox"),  # 复选框gr.ColorPicker(label="Color Picker"),gr.Dataframe(headers=None, label="Dataframe"),  # 表格gr.Dropdown(choices=["Option 1", "Option 2", "Option 3"], label="Dropdown"),  # 下拉框gr.File(label="File Upload", type="binary"),  # 文件gr.Image(sources=["webcam","upload"], label="Image"),  # 图片gr.Radio(choices=["Option 1", "Option 2", "Option 3"], label="Radio"),  # 单选框gr.Slider(minimum=0, maximum=10, step=2, label="Slider"),  # 滑动条gr.Textbox(label="Textbox"),  # 文本框gr.TextArea(label="Textarea"),  # 多行文本框gr.Video(sources=["webcam","upload"], label="Video"),  # 视频gr.CheckboxGroup(choices=["Option 1", "Option 2", "Option 3"])
]output_list = [gr.Textbox(label="Audio output", lines=7),gr.Textbox(label="Checkbox output"),gr.Textbox(label="Color Picker output"),gr.Textbox(label="Dataframe output"),gr.Textbox(label="Dropdown output"),gr.Textbox(label="File Upload output"),gr.Textbox(label="Image output"),gr.Textbox(label="Radio output"),gr.Textbox(label="Slider output"),gr.Textbox(label="Textbox output"),gr.Textbox(label="Textarea output"),gr.Textbox(label="Video output"),gr.Textbox(label="Checkbox Group output")  # 复选框组,返回一个列表,包含所选的项
]def input_and_output(*input_data):return input_dataiface = gr.Interface(fn=input_and_output, inputs=input_list, outputs=output_list, description="This is a test interface.", live=True)
iface.launch()

常见输出组件

# 音频输出
def audio_fn(audio):hz=audio[0]data=audio[1]print(f"Audio data received with {hz} Hz")print(f"Data shape: {data}")return (hz, data)demo =gr.Interface(fn=audio_fn,inputs=gr.Audio(type="numpy"),outputs="audio")
demo.launch()# 柱状图
import pandas as pd
#创建数据框
simple = pd.DataFrame({"a": [1, 2, 3],"b": [4, 5, 6]
})
print(simple)
demo=gr.Interface( fn=None, inputs=None, outputs=gr.BarPlot(simple, x="a", y="b"))
demo.launch()# 给图片地址,输出图片,还能对图片进行排序
def process():cheetahs = ["https://upload.wikimedia.org/wikipedia/commons/0/09/TheCheethcat.jpg","https://nationalzoo.si.edu/sites/default/files/animals/cheetah-003.jpg","https://img.etimg.com/thumb/msid-50159822,width-650,imgsize-129520,,resizemode-4,quality-100/.jpg","https://nationalzoo.si.edu/sites/default/files/animals/cheetah-002.jpg",]cheetahs= [(cheetah, f"Cheetah {i + 1}") for i, cheetah in enumerate(cheetahs)]return cheetahs
demo=gr.Interface( fn=process, inputs=None, outputs=gr.Gallery())
demo.launch()#各种图
import numpy as np
import matplotlib.pyplot as pltdef fig_output():Fs = 8000f = 5sample = 10x = np.arange(sample)y = np.sin(2 * np.pi * f * x / Fs)plt.plot(x,y)return pltdemo =  gr.Interface(fn=fig_output, inputs=None, outputs=gr.Plot())
demo.launch()#展示json数据
json_sample ={"name":"John","age":30,"city":"New York"}demo =  gr.Interface(fn=None, inputs=None, outputs=gr.Json(json_sample) )

Blocks(更加灵活搭建页面)

gr.Blocks()
gr.Row()
gr.Column()
gr.Tab()
gr.Accordion()
gr.Group()

布局代码
在这里插入图片描述

效果
在这里插入图片描述

相关文章:

AI有关的学习和python

一、基本概念 AIGC(AI Generated content AI 生成内容) AI生成的文本、代码、图片、音频、视频。都可以成为AIGC。 Generative AI(生成式AI)所生成的内容就是AIGC AI指代计算机人工智能,模仿人类的智能从而解决问题…...

前端node.js入门

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 Node.js 入门概览 什么是Node.js? 为什么选择Node.js? 基础安装与环境配置 安装…...

无需标注的数据集

0:人 1:自行车 2:汽车 3:摩托车 4:飞机 5:公交车 6:火车 7:卡车 8:船 9:交通信号灯 10:消火栓 11:停车标志 12:停车计时器…...

C# 抽象工厂模式

栏目总目录 概念 抽象工厂模式是一种创建型设计模式,它提供了一种创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。在抽象工厂模式中,一个抽象的工厂类负责定义创建产品对象的接口,但是具体工厂类将负责创建具体的产…...

java中 两个不同类对象list,属性一样,如何copy

如果您有两个不同的类,但它们拥有相同的属性,并且您想要从一个类的列表复制到另一个类的列表,您可以使用以下方法: 使用循环: 您可以遍历原始列表,并为每个元素创建目标类的新实例。 使用 Stream API&…...

文件上传总结

一、原理 通过界面上的上传功能上传了一个可执行的脚本文件,而WEB端的系统并未对其进行检测或者检测的逻辑做的不够好,使得恶意用户可以通过文件中上传的一句话木马获得操控权 二、绕过方法 1>前端绕过 1.删除前端校验函数 checkFile() 2.禁用js…...

网页突然被恶意跳转或无法打开?DNS污染怎么解决?

前言 在网上冲浪时,我们时常会遭遇DNS污染这一区域性攻击,几乎无人能幸免。受影响时:尝试访问正规网站可能会被错误导向赌博、色情或其他恶意站点。 1.我们为什么需要DNS 当我们想要访问一个网站时,就像拨打朋友的电话号码一样…...

Matlab进阶绘图第65期—带分组折线段的柱状图

带分组折线段的柱状图是在原始柱状图的基础上,在每组柱状图位置处分别添加折线段,以进行对比或添加额外信息。 由于Matlab中未收录带分组折线段的柱状图的绘制函数,因此需要大家自行设法解决。 本文使用自制的BarwithGroupedLine小工具进行…...

EasyMedia转码rtsp视频流flv格式,hls格式,H5页面播放flv流视频

在本文中,我们将介绍如何使用 EasyMedia 将 RTSP 视频流转码为 FLV 和 HLS 格式,并在 H5 页面上播放 FLV 流视频。EasyMedia 是一个支持多种流媒体协议的开源项目,非常适合用于这种转码和流媒体传输的场景。 前提条件 已经安装并配置好 Eas…...

FPGA实验6: 有时钟使能两位十进制计数器的设计

一、实验目的与要求 1.. 熟练掌握使用原理图设计较复杂电路; 2. 学习原理图设计中总线的表示以及使用方法。 二、实验原理 运用Quartus II 集成环境下的图形设计方法设计有时钟使能的两位十进制计数器。进行波形仿真和分析、引脚分配并下载到实验设备上进行功能…...

C# 委托函数 delegate

在C#中,委托(Delegate)是一种特殊的类型,它可以持有对方法的引用。 委托是实现事件的基础。事件本质上是多播委托,允许多个方法被触发 委托允许你将方法作为参数传递给其他方法,或者将方法作为返回值从方法…...

Vue3响应式高阶用法之`shallowReadonly()`

Vue3响应式高阶用法之shallowReadonly() 在现代前端开发中,Vue3 提供了丰富的响应式 API 来帮助开发者更高效地管理状态和数据。其中,shallowReadonly() 是一个非常有用的工具,适用于需要部分只读状态的场景。本文将详细介绍 shallowReadonl…...

Windows系统安全加固方案:快速上手系统加固指南 (下)

这里写目录标题 一、概述二、IP协议安全配置启用SYN攻击保护 三、文件权限3.1 关闭默认共享3.2 查看共享文件夹权限3.3 删除默认共享 四、服务安全4.1禁用TCP/IP 上的NetBIOS4.2 ### 禁用不必要的服务 五、安全选项5.1启动安全选项5.2禁用未登录前关机 六、其他安全配置**6.1防…...

记一次因敏感信息泄露而导致的越权+存储型XSS

1、寻找测试目标 可能各位师傅会有苦于不知道如何寻找测试目标的烦恼,这里我惯用的就是寻找可进站的思路。这个思路分为两种,一是弱口令进站测试,二是可注册进站测试。依照这个思路,我依旧是用鹰图进行了一波资产的搜集&#xff…...

Java笔试面试题AI答之线程Thread(1)

答案来自 Kimi AI 目录 1. 进程和线程的区别?2. Java语言创建线程的方式有哪些?3. Java线程有哪几种可用状态?4. Java同步方法和同步代码块的区别?5. 在监视器(Monitor)内部,如何做线程同步的?6. 什么是死…...

2.5 C#视觉程序开发实例2----图片内存管理

2.5 C#视觉程序开发实例2----图片内存管理 1 目标效果视频 mat-buffer 2 Mat 数组的定义 3 图片内存使用场合说明 3.1 程序加载或者切换程序时 3.2 设定时,注册图片 例如注册一个线速的图片 注册流程说明 3.3 外部触发时采集最新图片或者按钮点击时触发拍照 …...

Java核心 - 深入理解 Java 枚举类

作者:逍遥Sean 简介:一个主修Java的Web网站\游戏服务器后端开发者 主页:https://blog.csdn.net/Ureliable 觉得博主文章不错的话,可以三连支持一下~ 如有疑问和建议,请私信或评论留言! 前言 在Java中&…...

HOW - CSS 定义颜色值

目录 1. 十六进制颜色 (Hexadecimal Color)2. RGB 颜色 (RGB Color)3. HSL 颜色 (HSL Color)HSL 颜色模式示例 4. 预定义颜色名 (Named Colors)5. LCH 颜色 (LCH Color)6. Lab 颜色 (Lab Color)7. HWB 颜色 (HWB Color)8. CSS 颜色函数 (Color Function)9. CSS4 颜色模块中的其…...

Vue3 reactive原理(一)-代理对象及数组

Proxy 只能拦截对一个对象的基本操作(例如读取、设置属性值),而无法拦截复合操作(例如,obj.fun(),由两个基本操作组成,1)get到fun这个属性,2)函数调用)。 1 …...

基于联咏 NT98692芯片赋能边缘计算IP摄像机与XVR监控系统解决方案

联咏 NT98692 是一款新世代整合度极高的 SoC,具有高影像品质、低位元率、低功耗,针对 8Kp30 边缘运算 IP 摄影机与后端监控系统 XVR 应用。此 SoC 整合了 ARM Quad Cortex A73 CPU 核心、新一代 ISP 和 AI ISP、H.265/H.264 视讯压缩编解码器、DSP、高效…...

Python设计模式 - 工厂方法模式

定义 工厂方法模式是一种创建型设计模式,它定义一个创建对象的接口,让其子类来处理对象的创建,而不是直接实例化对象。 结构 抽象工厂(Factory):声明工厂方法,返回一个产品对象。具体工厂类都…...

学习记录:ESP32控制舵机 FREERTOS BLE

控制舵机 PWM信号 PWM信号是一种周期性变化的方波信号,它有两个关键参数: 周期(Period):一个完整的PWM信号的时间长度,通常用秒(s)或毫秒(ms)表示。占空比…...

react中的useState和Hook、副作用

react的组件分为类组件和函数组件,Hook 是一种特殊的函数,可以让你在函数组件中使用类组件中才有的一些特性。useState、useEffect、useReducer都是Hook。其中useState用于在函数组件中添加状态,useEffect用于在函数组件中执行副作用&#xf…...

Linux嵌入式学习——数据结构——线性表的链式结构

线性表的链式存储 解决顺序存储的缺点,插入和删除,动态存储问题。 特点: 线性表链式存储结构的特点是一组任意的存储单位存储线性表的数据元素,存储单元可以是连续的,也可以不连续。可以被存储在任意内存未被占…...

文本编辑 文本中的各种空格

参考资料 欧文の半角スペースは2種類ある!?无中断空格常见空格一览浅析什么是零宽度字符以及零宽度字符在实际中的应用场景空格象形字间隔无中断空格零宽间隔 目录 零. 各种空格在Notepad中的效果一. 半角空格二. 全角空格三. TAB空格四. 无中断空格4.1 定义4.2 H…...

Vue插槽 (Slots)详解

目录 前言基础插槽具名插槽作用域插槽默认插槽动态插槽名总结相关阅读 前言 Vue的插槽(Slots)是一个非常强大的特性,它允许你在组件的模板中嵌入父组件的内容。插槽使得组件之间的内容分发变得灵活,尤其在构建可复用组件时非常…...

Unity中有关Animation的一点笔记

也许更好的阅读体验 Animation Unity中Animation类并不是直接记载了和播放动画有关的信息,可以简单理解Animation为一个动画播放器,播放的具体内容就像卡带一样,当我们有了卡带后我们可以播放动画。 对应的则是编辑器中的组件 所以Anima…...

module federation模块联邦与微前端

module federation是什么 webpack5新增了module federation,module federation的作用,将每个构建(build)作为容器(这是一个概念),构建后的资源可以正常部署,同时还具备在运行时对外暴露其中的模块,这就意味着多个构建…...

日常开发记录分享——C#控件ToolTip实现分栏显示内容

文章目录 需求来源实现思路实施请看VCR等等别走,有优化 需求来源 需要在鼠标浮动到指定位置后提示出详细的信息,一开始使用的tooltip实现,但是里面的内容效果并不理想,需要有条理性,于是就想到能不能将展示的东西分列…...

Kettle下载安装

环境说明 虚拟机:Win7;MySql8.0 主机:Win11;JDK1.8;Kettle 9.4(Pentaho Data Integration 9.4)(下载方式见文末) 安装说明 【1】解压后运行Spoon.bat 【2】将jar包 复…...

最新版Golang pprof使用(引入、抓取、分析,图文结合)

最新版Golang pprof使用 🔥具体实践: Go调试神器pprof使用教程Golang线上内存爆掉问题排查(pprof) Github地址:https://github.com/ziyifast/ziyifast-code_instruction/tree/main/go-demo/go-pprof 引入pprof:import _ “net/http/pprof” …...

vue3学习记录1:emit的写法

emit是用于child组件向parent组件通信的工具&#xff0c;因为vue3的script可以设置为setup&#xff0c;写法同vue2有较大区别。 一、script setup - 直接写 <script lang"ts" setup>const emit defineEmits([close]);function handleClose() {emit(close);}…...

Visual Studio Code + vue快速安装配置Node.js+Vue+webpack+vscode

第一部分&#xff1a;Node.js 第一步&#xff1a;下载Node.js 方法1&#xff1a;链接 下载 | Node.js 中文网 (nodejs.cn) 方法2&#xff1a;百度网盘 链接&#xff1a;https://pan.baidu.com/s/1zIqu8H9rb_I1i-1OWD7swQ?pwdaurk 提取码&#xff1a;aurk --来自百度网盘…...

【Dart 教程系列第 49 篇】什么是策略设计模式?如何在 Dart 中使用策略设计模式

这是【Dart 教程系列第 49 篇】&#xff0c;如果觉得有用的话&#xff0c;欢迎关注专栏。 博文当前所用 Flutter SDK&#xff1a;3.22.1、Dart SDK&#xff1a;3.4.1 文章目录 一&#xff1a;什么是策略设计模式&#xff1f;二&#xff1a;为什么要使用策略设计模式&#xff1…...

BGP路由反射器

原理概述 缺省情况下&#xff0c;路由器从它的一个 IBGP对等体那里接收到的路由条目不会被该路由器再传递给其他IBGP对等体&#xff0c;这个原则称为BGP水平分割原则&#xff0c;该原则的根本作用是防止 AS内部的BGP路由环路。因此&#xff0c;在AS内部&#xff0c;一般需要每台…...

DolphinDB Web 端权限管理:可视化操作指南

在现代数据库管理中&#xff0c;高效和直观的权限管理对于用户的数据安全是至关重要的。过去 DolphinDB 用户需要依赖系统脚本来管理用户和权限&#xff0c;这对于缺乏技术背景的管理员来说既复杂又容易出错。 为了提升用户体验和操作效率&#xff0c;DolphinDB 目前在 Web 上…...

学习Vue2收藏这一篇就够了(如何创建Vue实例)

什么是Vue&#xff1f; Vue是什么&#xff1a;是一个用于构建用户界面的渐进式框架 什么是构建用户界面&#xff1a;基于数据动态渲染页面 什么是渐进式&#xff1a;循序渐进的学习 什么是框架&#xff1a;一整套完整的项目解决方案 创建Vue实例 核心步骤&#xff08;4步…...

Mysql数据库第四次作业

mysql> create table student(sno int primary key auto_increment,sname varchar(30) not null unique,Ssex varchar(2) check (Ssex男 or Ssex女) not null,Sage int not null,Sdept varchar(10) default计算机 not null); mysql> create table Course(Con int primar…...

使用Docker搭建MySql的主从同步+ShardingSphere搭建Mysql的读写分离

参考课程 尚硅谷ShardingSphere5实战教程&#xff08;快速入门掌握核心&#xff09;_哔哩哔哩_bilibili 主服务器 创建容器 docker run -d \ -p 3306:3306 \ -v /kira/mysql/master/conf:/etc/mysql/conf.d \ -v /kira/mysql/master/data:/var/lib/mysql \ -e MYSQL_ROOT…...

数据结构:数据类型与抽象数据类型

数据类型与抽象数据类型 数据类型基本数据类型构造数据类型指针类型枚举类型 抽象数据类型&#xff08;ADT&#xff09;抽象数据类型的组成部分常见的抽象数据类型示例 数据类型与抽象数据类型的区别实现抽象数据类型的具体方式用数组实现栈用链表实现栈 总结 数据类型 数据类…...

西方逻辑史简介

西方逻辑史研究&#xff0c;对形式逻辑实现现代化&#xff0c;对加强西方哲学史研究&#xff0c;对开展科学方法论的研究都有重要意义。西方逻辑史一般被划分成古代、中世纪、现代三个历史时期。本文拟对这三个时期中的七个重要逻辑学家和逻辑学派&#xff1a;亚里士多德、斯多…...

【论文10】复现代码tips

一、准备工作 1.创建一个虚拟环境 conda create --name drgcnn38 python=3.8.18 2.激活虚拟环境 conda activate drgcnn38 注意事项 在Pycharm中终端(terminal)显示PS而不是虚拟环境base 问题如下所示 解决方法:shell路径改成cmd.exe 重启终端显示虚拟环境 3.安装torch …...

分布式缓存获取以及设置

1. 通用代码 public SysUser getCache(String sysUserId) {String cacheKey "litgery:warehouse:" sysUserId;// 尝试从缓存中获取数据CacheData cacheData redisUtils.get(cacheKey);if (null ! cacheData) {if (Boolean.TRUE.equals(cacheData.getExist())) {re…...

SMO算法,platt论文的原始算法及优化算法

platt论文&#xff1a;[PDF] Sequential Minimal Optimization : A Fast Algorithm for Training Support Vector Machines | Semantic Scholar 算法优化&#xff1a;[PDF] Improvements to Platts SMO Algorithm for SVM Classifier Design | Semantic Scholar 包含个人plat…...

2.3 openCv -- 对矩阵执行掩码操作

在矩阵上进行掩模操作相当简单。其基本思想是根据一个掩模矩阵(也称为核)来重新计算图像中每个像素的值。这个掩模矩阵包含的值决定了邻近像素(以及当前像素本身)对新的像素值产生多少影响。从数学角度来看,我们使用指定的值来做一个加权平均。 具体而言,掩模操作通常涉…...

【Django】 js实现动态赋值、显示show隐藏hide效果

文章目录 需要达到的前端效果预览&#xff1a;实现步骤复制bootstrp代码&#xff08;buttons&#xff09;复制bootstrp代码&#xff08;Alert警告框&#xff09;写js测试效果 需要达到的前端效果预览&#xff1a; {% load static %} <!DOCTYPE html> <html lang"…...

qt--做一个拷贝文件器

一、项目要求 使用线程完善文件拷贝器的操作 主窗口不能假死主窗口进度条必须能动改写文件大小的单位&#xff08;自适应&#xff09; 1TB1024GB 1GB1024MB 1MB1024KB 1KB1024字节 二、所需技术 1.QFileDialog 文件对话框 QFileDialog也继承了QDialog类&#xff0c;直接使用静态…...

Eclipse 搭建 C/C++ 开发环境以及eclipse的使用

一、下载、安装 MinGW 1、下载: 下载地址&#xff1a;MinGW - Minimalist GNU for Windows - Browse Files at SourceForge.net 点击“Download Latest Version”即可 下载完成后&#xff0c;得到一个名为 mingw-get-setup.exe 的安装文件。双击运行&#xff0c;安装即可。 …...

【初阶数据结构】复杂度算法题篇

旋转数组 力扣原题 方案一 循环K次将数组所有元素向后移动⼀位&#xff08;代码不通过) 时间复杂度O(n2) 空间复杂度O(1) void rotate(int* nums, int numsSize, int k) {while (k--) {int end nums[numsSize - 1];for (int i numsSize - 1; i > 0; i--) {nums[i] num…...

20240725项目的maven环境报红-重新配置maven

1.在编辑器里面打开项目&#xff0c;导入源码 &#xff08;1&#xff09;找到项目的地址C:\Users\zzz\IdeaProjects\datasys&#xff0c;然后右击用idea编辑器打开。 &#xff08;2&#xff09;idea中上菜单栏打开open&#xff0c;然后输入file&#xff0c;选择源代码文件 2.…...