【机器学习】机器学习与大模型在人工智能领域的融合应用与性能优化新探索
文章目录
- 引言
- 机器学习与大模型的基本概念
- 机器学习概述
- 监督学习
- 无监督学习
- 强化学习
- 大模型概述
- GPT-3
- BERT
- ResNet
- Transformer
- 机器学习与大模型的融合应用
- 自然语言处理
- 文本生成
- 文本分类
- 机器翻译
- 图像识别
- 自动驾驶
- 医学影像分析
- 语音识别
- 智能助手
- 语音转文字
- 大模型性能优化的新探索
- 模型压缩
- 权重剪枝
- 量化
- 知识蒸馏
- 分布式训练
- 数据并行
- 模型并行
- 异步训练
- 高效推理
- 模型裁剪
- 缓存机制
- 专用硬件
- 未来展望
- 跨领域应用
- 智能化系统
- 人工智能伦理
- 技术创新
- 结论
引言
随着计算能力的不断提升和数据规模的爆炸性增长,机器学习和大模型在人工智能(AI)领域的应用变得越来越广泛和深入。尤其是大规模机器学习模型,如深度神经网络(如GPT-3、BERT等),在自然语言处理、图像识别、语音识别等方面展现了卓越的性能。然而,如何有效地融合机器学习与大模型,提升其应用性能,仍然是当前研究和应用中的重要课题。本文将探讨机器学习与大模型在人工智能领域的融合应用,并重点讨论性能优化的新方法和新探索。
机器学习与大模型的基本概念
机器学习概述
机器学习是一种通过数据训练模型,并利用模型对新数据进行预测和决策的技术。其基本思想是让计算机通过样本数据学习规律,而不是通过明确的编程指令。根据学习的类型,机器学习可以分为监督学习、无监督学习和强化学习。
监督学习
监督学习是通过带标签的数据集训练模型,使其能够对新数据进行分类或回归预测。常见的算法包括线性回归、逻辑回归、支持向量机、决策树和神经网络等。
无监督学习
无监督学习是在没有标签的数据集上进行训练,主要用于数据聚类和降维。常见的算法包括K-means聚类、层次聚类和主成分分析(PCA)等。
强化学习
强化学习是一种通过与环境交互学习最优行为策略的技术。智能体通过试错法在环境中学习,以最大化累积奖励。常见的算法包括Q-learning、深度Q网络(DQN)和策略梯度方法等。
大模型概述
大模型是指具有大量参数和层数的深度学习模型,通常通过大规模数据集进行训练。大模型在自然语言处理、图像识别和语音识别等任务中表现出色。其代表性模型包括GPT-3、BERT、ResNet和Transformer等。
GPT-3
GPT-3(Generative Pre-trained Transformer 3)是OpenAI开发的一种语言模型,具有1750亿个参数。它通过大量的文本数据进行预训练,能够生成高质量的自然语言文本,广泛应用于文本生成、翻译和对话系统等领域。
BERT
BERT(Bidirectional Encoder Representations from Transformers)是Google开发的一种语言模型,通过双向Transformer架构进行预训练。BERT在各种自然语言理解任务中表现优异,如问答系统和情感分析等。
ResNet
ResNet(Residual Network)是Microsoft提出的一种深度卷积神经网络,通过残差连接解决了深层神经网络训练中的梯度消失问题。ResNet在图像识别任务中取得了显著成果。
Transformer
Transformer是Google提出的一种基于注意力机制的神经网络架构,广泛应用于自然语言处理任务。与传统的卷积神经网络和循环神经网络不同,Transformer能够更高效地处理长距离依赖关系。
机器学习与大模型的融合应用
自然语言处理
自然语言处理(NLP)是机器学习与大模型应用最广泛的领域之一。大模型在文本生成、文本分类、情感分析、机器翻译等任务中表现出色。
文本生成
GPT-3等大模型在文本生成任务中展现了强大的能力。通过预训练,大模型能够理解上下文,生成连贯且有意义的文本,广泛应用于对话系统、内容创作和自动摘要等场景。
import openaiopenai.api_key = 'YOUR_API_KEY'def generate_text(prompt):response = openai.Completion.create(engine="davinci-codex",prompt=prompt,max_tokens=100)return response.choices[0].text.strip()prompt = "Explain the significance of machine learning in modern technology."
generated_text = generate_text(prompt)
print(generated_text)
文本分类
BERT等大模型通过预训练和微调,在文本分类任务中取得了显著成果。通过对文本进行语义理解,大模型能够准确地对文本进行分类,广泛应用于垃圾邮件检测、情感分析和主题识别等领域。
from transformers import BertTokenizer, BertForSequenceClassification
from transformers import TextClassificationPipelinetokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertForSequenceClassification.from_pretrained('bert-base-uncased')pipeline = TextClassificationPipeline(model=model, tokenizer=tokenizer)
result = pipeline("I love this product, it's amazing!")print(result)
机器翻译
Transformer架构在机器翻译任务中表现出色。通过大规模双语数据集的训练,Transformer能够实现高质量的文本翻译,广泛应用于跨语言信息交流和全球化业务拓展。
from transformers import MarianMTModel, MarianTokenizermodel_name = 'Helsinki-NLP/opus-mt-en-de'
tokenizer = MarianTokenizer.from_pretrained(model_name)
model = MarianMTModel.from_pretrained(model_name)def translate(text):inputs = tokenizer(text, return_tensors="pt", padding=True)translated = model.generate(**inputs)translated_text = tokenizer.batch_decode(translated, skip_special_tokens=True)return translated_text[0]text = "Machine learning is transforming the way we approach problems in various fields."
translated_text = translate(text)
print(translated_text)
图像识别
大模型在图像识别领域同样取得了显著成果。通过深度卷积神经网络(如ResNet),大模型能够准确地识别图像中的物体,广泛应用于自动驾驶、安防监控和医学影像分析等领域。
自动驾驶
在自动驾驶领域,图像识别技术用于检测道路上的行人、车辆和交通标志等。大模型通过大量的图像数据进行训练,能够实现高精度的目标检测和分类,提高自动驾驶系统的安全性和可靠性。
import torch
import torchvision.models as models
import torchvision.transforms as transforms
from PIL import Imagemodel = models.resnet50(pretrained=True)
model.eval()def predict_image(image_path):img = Image.open(image_path)preprocess = transforms.Compose([transforms.Resize(256),transforms.CenterCrop(224),transforms.ToTensor(),transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),])img_tensor = preprocess(img)img_tensor = img_tensor.unsqueeze(0)with torch.no_grad():output = model(img_tensor)_, predicted = torch.max(output, 1)return predicted.item()image_path = 'path/to/your/image.jpg'
predicted_class = predict_image(image_path)
print(predicted_class)
医学影像分析
在医学影像分析领域,图像识别技术用于检测和诊断疾病。大模型通过大量的医学影像数据进行训练,能够准确地识别病变区域,辅助医生进行诊断和治疗,提高医疗服务的质量和效率。
from fastai.vision.all import *def load_learner():learner = load_learner('path/to/your/exported/learner.pkl')return learnerdef predict_image(image_path):learner = load_learner()img = PILImage.create(image_path)pred, pred_idx, probs = learner.predict(img)return pred, probs[pred_idx]image_path = 'path/to/your/image.jpg'
predicted_class, probability = predict_image(image_path)
print(f'Predicted class: {predicted_class}, Probability: {probability}')
语音识别
语音识别是大模型在人工智能领域的重要应用之一。通过深度神经网络和大规模语音数据集的训练,大模型能够实现高精度的语音识别,广泛应用于智能助手、语音控制和语音转文字等场景。
智能助手
智能助手如Siri、Alexa和Google Assistant等,广泛应用于家庭和办公场景。大模型通过语音识别技术,实现语音指令的理解和响应,提高用户的交互体验和工作效率。
import speech_recognition as srdef recognize_speech():recognizer = sr.Recognizer()with sr.Microphone() as source:print("Say something:")audio = recognizer.listen(source)try:text = recognizer.recognize_google(audio)print("You said: " + text)except sr.UnknownValueError:print("Google Speech Recognition could not understand audio")except sr.RequestError as e:print("Could not request results from Google Speech Recognition service; {0}".format(e))recognize_speech()
语音转文字
语音转文字技术用于将语音信息转换为文本信息,广泛应用于会议记录、客户服务和语音搜索
等场景。大模型通过语音识别技术,实现高精度的语音转文字,提高信息处理的效率和准确性。
from transformers import Wav2Vec2ForCTC, Wav2Vec2Tokenizer
import torch
import librosatokenizer = Wav2Vec2Tokenizer.from_pretrained("facebook/wav2vec2-base-960h")
model = Wav2Vec2ForCTC.from_pretrained("facebook/wav2vec2-base-960h")def speech_to_text(audio_path):speech, _ = librosa.load(audio_path, sr=16000)input_values = tokenizer(speech, return_tensors="pt").input_valueslogits = model(input_values).logitspredicted_ids = torch.argmax(logits, dim=-1)transcription = tokenizer.batch_decode(predicted_ids)[0]return transcriptionaudio_path = 'path/to/your/audio.wav'
transcription = speech_to_text(audio_path)
print(transcription)
大模型性能优化的新探索
模型压缩
大模型虽然在性能上表现出色,但其巨大的参数量和计算复杂度带来了显著的存储和计算成本。为了在实际应用中更高效地部署大模型,模型压缩技术成为了重要的研究方向。
权重剪枝
权重剪枝是一种通过删除网络中不重要的权重,减少模型参数量和计算量的技术。通过剪枝后的模型在推理阶段能够大幅度提高计算效率,同时保持较高的准确度。
import torch
import torch.nn.utils.prune as prunemodel = models.resnet50(pretrained=True)
parameters_to_prune = [(module, 'weight') for module in model.modules() if isinstance(module, torch.nn.Conv2d)]for module, param in parameters_to_prune:prune.l1_unstructured(module, name=param, amount=0.2)# Remove pruning reparameterization to enable inference
for module, param in parameters_to_prune:prune.remove(module, param)
量化
量化是将模型参数从高精度(如32位浮点数)转换为低精度(如8位整数)的技术。量化后的模型能够大幅度减少存储空间和计算复杂度,同时保持较高的性能。
model = models.resnet50(pretrained=True)
model.eval()quantized_model = torch.quantization.quantize_dynamic(model, {torch.nn.Linear}, dtype=torch.qint8
)# Test the quantized model
input_tensor = torch.randn(1, 3, 224, 224)
output = quantized_model(input_tensor)
print(output)
知识蒸馏
知识蒸馏是一种通过训练一个较小的学生模型来模仿大模型的行为,从而达到模型压缩的技术。学生模型在推理阶段能够更高效地运行,同时保持接近大模型的性能。
import torch.nn.functional as F# Define teacher and student models
teacher_model = models.resnet50(pretrained=True)
student_model = models.resnet18()# Define a knowledge distillation loss function
def distillation_loss(student_outputs, teacher_outputs, labels, alpha=0.5, temperature=2.0):loss_ce = F.cross_entropy(student_outputs, labels)loss_kd = F.kl_div(F.log_softmax(student_outputs / temperature, dim=1),F.softmax(teacher_outputs / temperature, dim=1),reduction='batchmean') * (temperature ** 2)return alpha * loss_ce + (1 - alpha) * loss_kd# Example training loop
optimizer = torch.optim.SGD(student_model.parameters(), lr=0.01, momentum=0.9)for epoch in range(10):for inputs, labels in dataloader:optimizer.zero_grad()student_outputs = student_model(inputs)with torch.no_grad():teacher_outputs = teacher_model(inputs)loss = distillation_loss(student_outputs, teacher_outputs, labels)loss.backward()optimizer.step()
分布式训练
大模型的训练通常需要大量的计算资源和时间。为了加速训练过程,分布式训练技术成为了重要的研究方向。
数据并行
数据并行是一种将大规模数据集分割成多个小批次,并在多个计算节点上并行训练模型的技术。数据并行能够显著加速大模型的训练过程,同时提高计算资源的利用率。
import torch
import torch.distributed as dist
import torch.nn as nn
import torch.optim as optim
from torch.nn.parallel import DistributedDataParallel as DDPdist.init_process_group(backend='nccl')
model = models.resnet50().cuda()
ddp_model = DDP(model)
optimizer = optim.SGD(ddp_model.parameters(), lr=0.01)for epoch in range(10):for inputs, labels in dataloader:inputs, labels = inputs.cuda(), labels.cuda()optimizer.zero_grad()outputs = ddp_model(inputs)loss = F.cross_entropy(outputs, labels)loss.backward()optimizer.step()
模型并行
模型并行是一种将大模型分割成多个子模型,并在多个计算节点上并行训练的技术。模型并行能够解决单个计算节点内存不足的问题,提高大模型的训练效率。
import torch
import torch.nn as nn
import torch.optim as optim
from torch.nn.parallel import DistributedDataParallel as DDPclass ModelParallelResNet50(nn.Module):def __init__(self):super(ModelParallelResNet50, self).__init__()self.model = nn.Sequential(models.resnet50().layer1.to('cuda:0'),models.resnet50().layer2.to('cuda:1'),models.resnet50().layer3.to('cuda:2'),models.resnet50().layer4.to('cuda:3'))def forward(self, x):for layer in self.model:x = layer(x)return xmodel = ModelParallelResNet50()
optimizer = optim.SGD(model.parameters(), lr=0.01)for epoch in range(10):for inputs, labels in dataloader:inputs, labels = inputs.to('cuda:0'), labels.to('cuda:3')optimizer.zero_grad()outputs = model(inputs)loss = F.cross_entropy(outputs, labels)loss.backward()optimizer.step()
异步训练
异步训练是一种允许不同计算节点在不同步的情况下进行模型更新的技术。异步训练能够提高计算资源的利用效率,加速大模型的训练过程。
import torch
import torch.distributed as dist
import torch.nn as nn
import torch.optim as optim
from torch.multiprocessing import Processdef train(rank, world_size):dist.init_process_group(backend='gloo', rank=rank, world_size=world_size)model = models.resnet50().to(rank)ddp_model = nn.parallel.DistributedDataParallel(model, device_ids=[rank])optimizer = optim.SGD(ddp_model.parameters(), lr=0.01)for epoch in range(10):for inputs, labels in dataloader:inputs, labels = inputs.to(rank), labels.to(rank)optimizer.zero_grad()outputs = ddp_model(inputs)loss = F.cross_entropy(outputs, labels)loss.backward()optimizer.step()def main():world_size = 4processes = []for rank in range(world_size):p = Process(target=train, args=(rank, world_size))p.start()processes.append(p)for p in processes:p.join()if __name__ == "__main__":main()
高效推理
大模型在推理阶段同样面临计算复杂度高的问题。为了在实际应用中更高效地进行推理,高效推理技术成为了重要的研究方向。
模型裁剪
模型裁剪是一种在推理阶段,根据输入数据的特性动态裁剪模型结构的技术。模型裁剪能够减少计算量,提高推理速度,同时保持较高的性能。
import torchclass DynamicPruningModel(nn.Module):def __init__(self, model):super(DynamicPruningModel, self).__init__()self.model = modeldef forward(self, x):# Example of dynamic pruning logicif x.size(0) > 1:self.model.layer4[0].conv1 = nn.Identity()return self.model(x)model = models.resnet50(pretrained=True)
pruned_model = DynamicPruningModel(model)input_tensor = torch.randn(1, 3, 224, 224)
output = pruned_model(input_tensor)
print(output)
缓存机制
缓存机制是一种通过缓存推理过程中的中间结果,减少重复计算的技术。缓存机制能够显著提高大模型的推理效率,特别是在实时应用场景中。
import torch
import torch.nn as nnclass CachedModel(nn.Module):def __init__(self, model):super(CachedModel, self).__init__()self.model = modelself.cache = {}def forward(self, x):if x in self.cache:return self.cache[x]output = self.model(x)self.cache[x] = outputreturn outputmodel = models.resnet50(pretrained=True)
cached_model = CachedModel(model)input_tensor = torch.randn(1, 3, 224, 224)
output = cached_model(input_tensor)
print(output)
专用硬件
专用硬件如GPU、TPU和FPGA等,能够为大模型的推理提供高效的计算支持。通过利用专用硬件的并行计算能力,大模型能够在推理阶段显著提高性能。
import torch
import torch.nn as nn# Check if a GPU is available
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model = models.resnet50(pretrained=True).to(device)input_tensor = torch.randn(1, 3, 224, 224).to(device)
output = model(input_tensor)
print(output)
未来展望
跨领域应用
随着大模型的不断发展和优化,机器学习和大模型的融合应用将在更多领域得到拓展。未来,大模型将在医疗、金融、教育、能源等领域发挥更大的作用,为各行各业带来深远的影响和变革。
智能化系统
未来的智能化系统将更加依赖于大模型的支持。通过将大模型应用于智能制造、智能交通和智慧城市等领域,可以实现更加高效、智能和自动化的系统,提高生产效率和生活质量。
人工智能伦理
随着大模型的广泛应用,人工智能伦理问题将变得更加重要。如何确保大模型的公平性、透明性和可解释性,如何保护用户隐私,如何防止大模型被滥用,将是未来需要重点关注的问题。
技术创新
未来,机器学习和大模型领域将继续涌现出新的技术创新。新型神经网络架构、更加高效的训练算法、更智能的优化技术等,将推动大模型的性能进一步提升,开创更多的应用场景和可能性。
结论
机器学习与大模型的融合应用在人工智能领域展现了巨大的潜力和前景。通过对机器学习和大模型的深入理解和研究,结合实际应用中的需求,开发者可以构建出高性能、智能化的系统,实现智能预测和数据分析。在实际应用中,通过模型压缩、分布式训练和高效推理等性能优化技术,可以进一步提升大模型的应用效率和性能。未来,随着技术的不断创新和发展,机器学习与大模型的融合应用将为各行各业带来更多的机遇和挑战。希望本文能够为开发者提供有价值的参考和指导,推动机器学习与大模型在人工智能领域的持续发展和应用。
相关文章:

【机器学习】机器学习与大模型在人工智能领域的融合应用与性能优化新探索
文章目录 引言机器学习与大模型的基本概念机器学习概述监督学习无监督学习强化学习 大模型概述GPT-3BERTResNetTransformer 机器学习与大模型的融合应用自然语言处理文本生成文本分类机器翻译 图像识别自动驾驶医学影像分析 语音识别智能助手语音转文字 大模型性能优化的新探索…...

上传图片并显示#Vue3#后端接口数据
上传图片并显示#Vue3#后端接口数据 效果: 上传并显示图片 代码: <!-- 上传图片并显示 --> <template><!-- 上传图片start --><div><el-form><el-form-item><el-uploadmultipleclass"avatar-uploader&quo…...

音视频开发14 FFmpeg 视频 相关格式分析 -- H264 NALU格式分析
H264简介-也叫做 AVC H.264,在MPEG的标准⾥是MPEG-4的⼀个组成部分–MPEG-4 Part 10,⼜叫Advanced Video Codec,因此常常称为MPEG-4 AVC或直接叫AVC。 原始数据YUV,RGB为什么要压缩-知道就行 在⾳视频传输过程中,视频⽂件的传输…...

Qt学习记录(15)数据库
目录 前言: 数据库连接 项目文件加上sql 打印查看Qt支持哪些数据库驱动 QMYSQL [static] QSqlDatabase QSqlDatabase::addDatabase(const QString &type, const QString &connectionName QLatin1String(defaultConnection)) 数据库插入 头文件.h 源…...
c++常用设计模式
1、单例模式(Singleton):保证一个类只有一个实例,提供一个全局访问点; class Singleton { private:static Singleton* instance;Singleton() {}public:static Singleton* getInstance() {if (instance nullptr) {instance new Singleton()…...

【动手学深度学习】softmax回归从零开始实现的研究详情
目录 🌊1. 研究目的 🌊2. 研究准备 🌊3. 研究内容 🌍3.1 softmax回归的从零开始实现 🌍3.2 基础练习 🌊4. 研究体会 🌊1. 研究目的 理解softmax回归的原理和基本实现方式;学习…...

MySQL:MySQL执行一条SQL查询语句的执行过程
当多个客户端同时连接到MySQL,用SQL语句去增删改查数据,针对查询场景,MySQL要保证尽可能快地返回客户端结果。 了解了这些需求场景,我们可能会对MySQL进行如下设计: 其中,连接器管理客户端的连接,负责管理连接、认证鉴权等;查询缓存则是为了加速查询,命中则直接返回结…...
解决Python导入第三方模块报错“TypeError: the first argument must be callable”
注意以下内容只对导包时遇到同样的报错会有参考价值。 问题描述 当你尝试导入第三方模块时,可能会遇到如下报错信息: TypeError: the first argument must be callable 猜测原因 经过仔细检查代码,我猜测这个错误的原因是由于变量名冲突所…...
在python中连接了数据库后想要在python中通过图形化界面显示数据库的查询结果,请问怎么实现比较好? /ttk库的treeview的使用
在Python中,你可以使用图形用户界面(GUI)库来显示数据库的查询结果。常见的GUI库包括Tkinter(Python自带)、PyQt、wxPython等。以下是一个使用Tkinter库来显示数据库查询结果的简单示例。 首先,你需要确保…...

OZON的选品工具,OZON选品工具推荐
在电商领域,选品一直是决定卖家成功与否的关键因素之一。随着OZON平台的崛起,越来越多的卖家开始关注并寻求有效的选品工具,以帮助他们在这个竞争激烈的市场中脱颖而出。本文将详细介绍OZON的选品工具,并推荐几款实用的辅助工具&a…...

营销方案撰写秘籍:包含内容全解析,让你的方案脱颖而出
做了十几年品牌,策划出身,混迹过几个知名广告公司,个人经验供楼主参考。 只要掌握以下这些营销策划案的要点,你就能制作出既全面又专业的策划案,让你的工作成果不仅得到同事的认可,更能赢得老板的赏识&…...

如何制作一本温馨的电子相册呢?
随着科技的不断发展,电子相册已经成为了一种流行的方式来记录和分享我们的生活。一张张照片,一段段视频,都能让我们回忆起那些温馨的时光。那么,如何制作一本温馨的电子相册呢? 首先,选择一款合适的电子相册…...

485通讯网关
在工业自动化与智能化的浪潮中,数据的传输与交互显得尤为重要。作为这一领域的核心设备,485通讯网关凭借其卓越的性能和广泛的应用场景,成为了连接不同设备、不同协议之间数据转换和传输的桥梁。在众多485通讯网关中,HiWoo Box以其…...
Anaconda中的常用科学计算工具
Anaconda中的常用科学计算工具 Anaconda是一个流行的Python科学计算环境,它提供了大量的科学计算工具,这些工具可以帮助用户进行数据分析、机器学习、深度学习等任务。以下是一些常见的Anaconda中的科学计算工具: NumPy:一个用于…...

Java 中BigDecimal传到前端后精度丢失问题
1.用postman访问接口,返回的小数点精度正常 2.返回到页面里的,小数点丢失 3.解决办法,在字段上加注解 JsonFormat(shape JsonFormat.Shape.STRING) 或者 JsonSerialize(using ToStringSerializer.class) import com.fasterxml.jackson.a…...
在Linux/Ubuntu/Debian上安装TensorFlow 2.14.0
在Ubuntu上安装TensorFlow 2.14.0,可以遵循以下步骤。请注意,由于TensorFlow的版本更新可能很快,这里提供的具体步骤可能需要根据你的系统环境和实际情况进行微调。 准备工作 检查系统要求:确保你的Ubuntu系统满足TensorFlow的运…...
多语言for循环遍历总结
多语言for循环遍历总结 工作中经常需要遍历对象,但不同编程语言之间存在一些细微差别。为了便于比较和参考,这里对一些常用的遍历方法进行了总结。 JAVA 数组遍历 Test void ArrayForTest() {String[] array {"刘备","关羽", &…...

python API自动化(Jsonpath断言、接口关联及加密处理)
JsonPath应用及断言 重要 自动化要解决的核心问题 :进行自动测试-自动校验(进行结果的校验 主要能够通过这个方式提取数据业务场景:断言 、接口关联 {key:value}网址:附:在线解析 JSONPath解析器 - 一个工具箱 - 好用…...

C++入门5——C/C++动态内存管理(new与delete)
目录 1. 一图搞懂C/C的内存分布 2. 存在动态内存分配的原因 3. C语言中的动态内存管理方式 4. C内存管理方式 4.1 new/delete操作内置类型 4.2 new/delete操作自定义类型 1. 一图搞懂C/C的内存分布 说明: 1. 栈区(stack):在…...
leetcode 743.网络延时时间
思路:迪杰斯特拉最短路径 总结起来其实就两件事: 1.从所给起点开始能不能到达所有点; 2.如果能够到达所有点,那么这个时候需要判断每一个点到源点的最短距离,然后从这些点中求出最大值。 所以用最小路径求解是最划…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...

七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解
一、前言 在HarmonyOS 5的应用开发模型中,featureAbility是旧版FA模型(Feature Ability)的用法,Stage模型已采用全新的应用架构,推荐使用组件化的上下文获取方式,而非依赖featureAbility。 FA大概是API7之…...
鸿蒙HarmonyOS 5军旗小游戏实现指南
1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发,采用DevEco Studio实现,包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...

Java中HashMap底层原理深度解析:从数据结构到红黑树优化
一、HashMap概述与核心特性 HashMap作为Java集合框架中最常用的数据结构之一,是基于哈希表的Map接口非同步实现。它允许使用null键和null值(但只能有一个null键),并且不保证映射顺序的恒久不变。与Hashtable相比,Hash…...