机器学习中的泛化与适应:深入理解域泛化、域适应、少样本学习、零样本学习、开放世界识别与开放词汇识别

机器学习中的泛化与适应:深入理解域泛化、域适应、少样本学习、零样本学习、开放世界识别与开放词汇识别

😎 作者介绍:我是程序员行者孙,一个热爱分享技术的制能工人。计算机本硕,人工制能研究生。公众号:AI Sun,视频号:AI-行者Sun
🎈
本文专栏:本文收录于《深度学习》系列专栏,相信一份耕耘一份收获,我会详细的分享深度学习各种知识细节,图文并茂,不说废话,祝大家早日中稿cvpr
🤓 欢迎大家关注其他专栏,我将分享Web前后端开发、人工智能、机器学习、深度学习从0到1系列文章。 🖥
随时欢迎您跟我沟通,一起交流,一起成长、进步!

在机器学习的世界中,我们经常面临如何让模型在新环境中表现出色的挑战。这些新环境可能包括不同的数据分布、少量的样本、未知的类别,甚至是全新的词汇。这里我将用生动的例子来解释,看完绝对不迷糊,深入探讨域泛化、域适应、少样本学习、零样本学习、开放世界识别和开放词汇识别这六种不同的学习任务,并尝试通过具体例子和代码解释来阐明它们之间的区别。

在这里插入图片描述

域泛化(Domain Generalization)

域泛化是机器学习中的一个挑战性任务,它旨在训练一个模型,使其能够在多个不同的数据分布上表现良好,而不仅仅是在训练时使用的数据分布上。域泛化的目标是创建一个泛化能力强的模型,能够适应新的、未知的环境。
在这里插入图片描述

域泛化的重要性

在现实世界的应用中,我们经常遇到数据分布的变化。例如,一个在某个特定地区训练的图像识别模型可能在另一个地区表现不佳,因为光照、背景、物体的呈现方式等可能有所不同。域泛化可以帮助模型克服这种分布差异,提高其在新环境中的鲁棒性。

举几个域泛化的应用例子

图像识别
假设我们有一个图像识别模型,它在白天拍摄的图片上训练得很好,能够准确识别不同的物体。然而,当这个模型被部署在夜间环境时,由于光照条件的变化,它的性能可能会下降。域泛化可以帮助这个模型学习到在不同光照条件下也能准确识别物体的特征。

医疗诊断
在医疗领域,不同医院收集的病人数据可能存在显著差异,这可能是由于设备的不同、病人群体的差异或数据收集方法的不同。域泛化可以帮助训练一个模型,使其能够适应这些不同的数据源,并在新的医院环境中提供准确的诊断。
在这里插入图片描述

代码示例

简化的域泛化问题的代码示例,使用Python和scikit-learn库。我们将模拟两个不同的数据源(源域和目标域),并尝试训练一个模型来泛化到目标域。

import numpy as np
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score# 生成模拟数据(源域和目标域)
X_source, y_source = make_classification(n_samples=1000, n_features=20, random_state=42)
X_target, y_target = make_classification(n_samples=1000, n_features=20, random_state=43)  # 目标域略有不同# 划分源域数据为训练集和验证集
X_source_train, X_source_val, y_source_train, y_source_val = train_test_split(X_source, y_source, test_size=0.3, random_state=42
)# 训练模型
model = SVC(kernel='linear')
model.fit(X_source_train, y_source_train)# 在源域验证集上评估模型
source_val_accuracy = accuracy_score(y_source_val, model.predict(X_source_val))
print(f"Source domain validation accuracy: {source_val_accuracy}")# 在目标域测试集上评估模型
target_accuracy = accuracy_score(y_target, model.predict(X_target))
print(f"Target domain test accuracy: {target_accuracy}")

在这个例子中,我们首先生成了两个不同的数据集来模拟源域和目标域。然后,我们在源域上训练了一个支持向量机(SVM)分类器,并在源域的验证集和目标域的测试集上评估了模型的性能。

域适应(Domain Adaptation)

域适应是机器学习中的一个关键领域,它涉及将一个在特定领域(源域)上训练好的模型调整或迁移到另一个不同的领域(目标域),以提高其在新领域中的表现。源域和目标域的数据分布可能存在显著差异,域适应的目标是减少这些差异,使模型能够适应新环境。
在这里插入图片描述

域适应的重要性

域适应在许多现实世界的应用中至关重要,尤其是在数据标注成本高昂或难以获取的情况下。例如,在医疗诊断、自然语言处理和计算机视觉等领域,获取大量标注数据可能非常困难,而域适应可以帮助我们利用已有的、在不同分布上收集的数据来训练模型。

域适应的例子

风格迁移
在艺术领域,我们可能希望将一种艺术风格迁移到另一幅画作上。源域可以是梵高的画作,而目标域可以是另一幅不同风格的画作。通过域适应,我们可以训练一个模型来捕捉源域的艺术风格,并将其应用到目标域上。
在这里插入图片描述

医疗影像分析
在医疗影像分析中,一个在特定医院的数据集上训练的模型可能无法很好地泛化到其他医院的数据,因为不同的医院可能使用不同的设备和成像协议。域适应可以帮助调整模型,使其能够适应不同医院的数据分布。

代码示例

使用Python和scikit-learn库,我们将模拟两个不同的数据源(源域和目标域),并尝试通过迁移学习来适应目标域。

import numpy as np
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score# 生成模拟数据(源域和目标域)
X_source, y_source = make_classification(n_samples=1000, n_features=20, random_state=42)
X_target, y_target = make_classification(n_samples=1000, n_features=20, random_state=43, weights=[0.1, 0.9])  # 目标域的分布略有不同# 划分源域数据为训练集和测试集
X_source_train, X_source_test, y_source_train, y_source_test = train_test_split(X_source, y_source, test_size=0.3, random_state=42
)# 训练模型
model = SVC(kernel='linear')
model.fit(X_source_train, y_source_train)# 在源域测试集上评估模型
source_test_accuracy = accuracy_score(y_source_test, model.predict(X_source_test))
print(f"Source domain test accuracy: {source_test_accuracy}")# 微调模型以适应目标域
model.fit(X_target, y_target, sample_weight=np.where(y_target == 1, 1, 10))  # 假设类别1更重要# 在目标域测试集上评估模型
target_accuracy = accuracy_score(y_target, model.predict(X_target))
print(f"Target domain test accuracy after adaptation: {target_accuracy}")

在这个例子中,我们首先生成了两个不同的数据集来模拟源域和目标域。然后,我们在源域上训练了一个支持向量机(SVM)分类器,并在源域的测试集上评估了模型的性能。接着,我们对模型进行了微调,以适应目标域的数据分布。

Few-shot Learning(少样本学习)

少样本学习是机器学习中的一个挑战性任务,它涉及到在只有少量样本的情况下训练模型,并期望模型能够对新样本进行有效的泛化。这与传统的监督学习不同,后者通常需要大量的标注数据来训练模型。少样本学习的目标是提高模型在面对数据稀缺时的学习效率和泛化能力。
在这里插入图片描述

少样本学习的重要性

少样本学习在许多实际应用中非常重要,尤其是在那些获取大量标注数据成本高昂或不切实际的场景中。例如,在某些医学图像分析任务中,某些罕见疾病的图像可能非常有限。在这种情况下,少样本学习可以帮助我们训练出能够识别这些罕见疾病的模型。

少样本学习的例子

新物种识别
在生物学研究中,新发现的物种可能只有少量的样本可供研究。少样本学习可以帮助研究人员快速训练一个模型来识别这些新物种。

罕见疾病诊断
在医学领域,罕见疾病的病例通常很少,获取大量标注图像非常困难。少样本学习可以帮助医生和研究人员训练出能够诊断这些罕见疾病的模型。
在这里插入图片描述

代码示例

模拟一个少样本学习的场景,其中我们只有少量的样本来训练模型。

import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers# 假设我们有一个小的数据集,每个类别只有少量样本
num_classes = 5
num_samples_per_class = 5  # 每个类别的样本数# 生成模拟数据
inputs = np.random.rand(num_classes * num_samples_per_class, 20)  # 假设输入特征维度为20
targets = np.repeat(np.arange(num_classes), num_samples_per_class)  # 标签# 划分训练集和验证集
train_inputs, val_inputs, train_targets, val_targets = keras.array_split([inputs, targets], 2
)# 定义一个小的神经网络模型
model = keras.Sequential([layers.Dense(64, activation='relu', input_shape=(20,)),layers.Dense(64, activation='relu'),layers.Dense(num_classes, activation='softmax')
])# 编译模型
model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])# 训练模型
model.fit(train_inputs, train_targets, epochs=10, validation_data=(val_inputs, val_targets))# 评估模型
_, accuracy = model.evaluate(val_inputs, val_targets)
print(f"Validation accuracy: {accuracy}")

首先生成了一个模拟的小数据集,其中每个类别只有少量样本。然后,我们定义了一个简单的神经网络模型,并使用这个小数据集来训练模型。最后,我们在验证集上评估了模型的性能。

少样本学习可能涉及更复杂的技术,如元学习(meta-learning)、迁移学习、数据增强或生成模型,以提高模型在少量样本上的性能和泛化能力。

Zero-shot Learning(零样本学习)

零样本学习(Zero-shot Learning, ZSL)是机器学习中的一个有趣领域,它旨在让模型能够识别在训练阶段从未见过的类别。这通常是通过将类别的语义信息(如类别描述或属性)与模型训练相结合来实现的。零样本学习对于处理那些获取大量标注数据成本高昂或不可行的任务特别有用。
在这里插入图片描述

零样本学习的重要性

零样本学习的重要性在于它允许模型扩展其知识范围,以识别新的和未知的类别,而无需对每个新类别进行昂贵的重新训练。这在实际应用中非常有价值,例如在生物多样性研究、内容过滤和推荐系统等领域。

零样本学习的例子

动物识别
假设我们有一个动物图像数据集,其中包含了猫、狗和马的图像。在零样本学习的设置中,我们可能希望模型能够识别出“斑马”这一新的类别,即使在训练阶段没有看到过斑马的图像,但模型已经获得了关于斑马的语义信息。

艺术作品分类
在艺术领域,我们可能有一个包含多种艺术风格(如印象派、立体主义)的数据集。零样本学习可以帮助模型识别出新的或未知的艺术风格,即使这些风格在训练阶段并未出现。

代码示例

模拟一个零样本学习的场景,其中模型通过类别属性来识别未知类别。

import numpy as np
import tensorflow as tf
from tensorflow.keras import layers, models# 假设我们有一个已知类别的数据集和对应的属性
known_classes = ['cat', 'dog', 'horse']
known_attributes = {'cat': [0, 1, 0],'dog': [1, 0, 0],'horse': [0, 0, 1]
}
known_attributes_matrix = np.array([known_attributes[cls] for cls in known_classes])# 假设我们有未知类别的属性信息
unknown_class = 'zebra'
unknown_attributes = [1, 1, 1]  # 假设斑马具有猫、狗和马的属性# 构建一个简单的神经网络模型来学习属性
attribute_model = models.Sequential([layers.Dense(64, activation='relu', input_shape=(len(known_attributes['cat']),)),layers.Dense(64, activation='relu'),layers.Dense(len(known_attributes['cat']), activation='softmax')
])# 编译模型
attribute_model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy'])# 训练模型来学习属性
# 将属性转换为one-hot编码
known_attributes_one_hot = np.eye(len(known_attributes['cat']))[known_attributes_matrix]
attribute_model.fit(np.array(known_attributes_matrix), known_attributes_one_hot, epochs=10)# 使用模型预测未知类别的属性
unknown_attributes_prediction = attribute_model.predict(np.array([unknown_attributes]))# 根据预测的属性确定未知类别
predicted_class_index = np.argmax(unknown_attributes_prediction)
predicted_class = known_classes[predicted_class_index]print(f"Predicted class for {unknown_class}: {predicted_class}")

首先定义了已知类别和它们的属性,然后,我们构建了一个简单的神经网络模型来学习这些属性。接着,我们训练模型来识别已知类别的属性,并使用这个模型来预测未知类别(斑马)的属性。最后,我们根据模型的预测确定未知类别。

Open-world Recognition(开放世界识别)

开放世界识别是机器学习中的一个前沿领域,它涉及到构建能够识别和处理未知类别或新概念的模型。与封闭世界识别不同,后者假设所有可能的类别在训练阶段都已知,开放世界识别承认存在未知类别,并试图使模型能够适应这些未知情况。
在这里插入图片描述

开放世界识别的重要性

开放世界识别对于构建能够适应不断变化环境的智能系统至关重要。在现实世界中,新的对象、事件和概念不断出现,而开放世界识别可以使机器学习模型更加灵活和鲁棒,能够处理这些新情况。

开放世界学习的例子

自然语言处理
在自然语言处理中,新词汇、俚语或网络流行语可能迅速出现并流行。开放世界识别可以帮助语言模型理解和适应这些新词汇,即使它们在训练阶段并未出现。
在这里插入图片描述

生物多样性监测
在生态学和生物多样性监测中,新物种的发现是不断发生的。开放世界识别可以帮助构建模型,以识别和分类这些新物种,即使它们在模型训练时尚未被发现。

代码示例

开放世界识别通常需要使用更高级的技术,如神经网络和无监督学习。

import numpy as np
import tensorflow as tf
from tensorflow.keras import layers, models# 假设我们有一些已知类别的训练数据
known_classes_x = np.random.rand(100, 20)  # 100个样本,每个样本20维特征
known_classes_y = np.repeat([0, 1], 50)  # 两个已知类别# 模拟一些未知类别的数据
unknown_classes_x = np.random.rand(10, 20)  # 10个未知类别的样本# 构建一个简单的神经网络模型
model = models.Sequential([layers.Dense(64, activation='relu', input_shape=(20,)),layers.Dense(64, activation='relu'),layers.Dense(2, activation='softmax')  # 两个已知类别
])# 编译模型
model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])# 训练模型
model.fit(known_classes_x, known_classes_y, epochs=10)# 在已知类别上评估模型
known_classes_accuracy = model.evaluate(known_classes_x, known_classes_y)# 尝试在未知类别上进行预测
predictions = model.predict(unknown_classes_x)# 可以设计一个策略来识别未知类别,例如通过置信度阈值
confidences = np.max(predictions, axis=1)
unknown_class_predictions = np.where(confidences < 0.5, -1, known_classes_y[np.argmax(predictions, axis=1)])  # -1 表示未知类别print(f"Known classes accuracy: {known_classes_accuracy}")
print(f"Unknown class predictions: {unknown_class_predictions}")

首先创建了一个简单的神经网络模型,并用已知类别的数据训练它。然后,我们尝试用这个模型来预测未知类别的样本。这里,我们使用了简单的置信度阈值来尝试识别未知类别。

Open-vocabulary Recognition(开放词汇识别)概述

开放词汇识别(Open-vocabulary Recognition)是自然语言处理(NLP)中的一个概念,它指的是系统识别和理解其训练数据中未出现过的新词汇或术语的能力。这与封闭词汇识别相反,后者假设所有可能的词汇在训练阶段都已知。开放词汇识别对于构建能够理解和处理不断变化语言使用的智能系统至关重要。

开放词汇识别的重要性

开放词汇识别的重要性在于它允许系统适应新词汇、新概念和语言的演变,这对于保持系统的实用性和相关性至关重要。随着社交媒体、新闻和日常对话中新词汇的不断涌现,开放词汇识别可以帮助系统更好地理解和处理这些新词汇。

开放词汇识别的例子

社交媒体监测
在社交媒体监测中,新词汇和俚语经常出现。开放词汇识别可以帮助系统识别和理解这些新词汇,从而更准确地分析公众情绪和趋势。
在这里插入图片描述

医疗记录分析
在医疗记录分析中,医生可能会使用专业术语或缩写,这些可能不在标准词汇表中。开放词汇识别可以帮助系统识别和理解这些术语,从而提高分析的准确性。

代码示例

开放词汇识别通常涉及到使用先进的NLP技术和模型,如Word Embeddings(词嵌入)和Transformer模型。使用Python和spaCy库,展示如何使用词向量来处理未知词汇。

import spacy
from spacy.lang.en.stop_words import STOP_WORDS
from spacy import displacy# 加载英文模型
nlp = spacy.load("en_core_web_sm")# 定义文本,其中包含已知和未知词汇
text = "The quick brown fox jumped over the lazy dog. #NewHashtag2024"# 处理文本
doc = nlp(text)# 可视化文本
displacy.render(doc, style="ent")# 检查未知词汇
for token in doc:if token.is_oov:  # is_oov属性检查词汇是否在词汇表之外print(f"未知词汇: {token.text}")# 可选:使用词向量处理未知词汇
# 假设我们有一个词向量模型
word_vectors = nlc.word2vec.load("en_core_web_md.word2vec.bin")
for token in doc:if token.text in word_vectors:print(f"已知词汇及其向量: {token.text} -> {word_vectors[token.text]}")else:# 处理未知词汇,例如通过上下文推断其含义print(f"未知词汇: {token.text}")

在这个例子中,我们首先加载了一个英文模型,并处理了包含已知和未知词汇的文本。然后,我们检查了文本中的每个词汇,以确定它是否在词汇表之外。对于未知词汇,我们可以使用词向量模型来尝试理解其含义或通过上下文进行推断。

但是,spaCy库本身并不提供is_oov属性或开放词汇识别功能。这里只是为了示例目的而假设。一般来说哈,开放词汇识别可能涉及更复杂的技术,如使用预训练的词向量模型(如Word2Vec或GloVe)来表示未知词汇,或者使用上下文信息来推断未知词汇的含义。

祝大家实验顺利,有效涨点~

以上是机器学习中的泛化与适应(深入理解域泛化、域适应、少样本学习、零样本学习、开放世界识别与开放词汇识别)的简单介绍,欢迎评论区留言讨论,如果有用欢迎点赞收藏文章,博主才有动力持续记录分享!!!

免费资料获取

关注博主公众号,获取更多粉丝福利。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/22656.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java Web学习笔记8——表单

表单标签&#xff1a; 场景&#xff1a;在网页中主要负责数据采集功能&#xff0c;如注册、登录等数据采集。 标签&#xff1a;<form> 表单项、表单元素&#xff1a; 不同类型的input元素、下拉列表、文本域等。 <input>: 定义表单项、通过type形式控制输入形…

深入解读Prometheus Adapter:云原生监控的核心组件

一、引言 Prometheus Adapter的背景与重要性 在现代的云原生架构中&#xff0c;微服务和容器化技术得到了广泛的应用。这些技术带来了系统灵活性和扩展性的提升&#xff0c;但同时也增加了系统监控和管理的复杂度。Prometheus作为一款开源的监控系统&#xff0c;因其强大的指标…

有关Qt的调用其他cpp文件出现的小问题

一开始出现了运行mainwindow文件过程调用其他cpp文件&#xff0c;而导致运行的ui界面卡住&#xff0c;后来发现在两个cpp文件中都进行了界面的初始化而导致界面的某些控件二次使用&#xff0c;所以会卡住。 ui->setupUi(this); 在Qt框架中&#xff0c;ui->setupUi(this)…

PPP-B2b精密产品使用注意事项及分析

1、因为在使用PPP-B2b进行定轨的时候&#xff0c;发的精密轨道产品是B3频点的&#xff0c;需要改正的卫星质心&#xff08;Com&#xff09;与SP3精密星历对比。 2、PPP-B2b产品吸收了电离层误差&#xff0c;因此电离层提取方面与IGS电离层完全无法对其。 3、由于PPP-B2b产品精…

元宇宙3D品牌营销虚拟场景提升客户对企业的黏性

在这个充满创意与想象的3D元宇宙时代&#xff0c;我们为您推出了全新的3D元宇宙场景在线制作编辑平台&#xff0c;让您轻松构建专属的虚拟展厅&#xff0c;展现无限可能。 3D元宇宙场景在线制作编辑平台允许您快速完成空间设计&#xff0c;根据您的个性化需求&#xff0c;自由设…

适合初学者人手一本的LLM大语言模型综述,爆火全网

今天给大家推荐一本大模型&#xff08;LLM&#xff09;这块的一本外文书&#xff0c;经过整理已经出中文版了&#xff0c;就是这本《大型语言模型综述》&#xff01;本书在git上有9.2k star&#xff0c;还是很不错的一本大模型方面的书。 本教程内容主要内容&#xff1a;中文版…

牛客热题:矩阵最长递增路径

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;力扣刷题日记 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 文章目录 牛客热题&#xff1a;矩阵最长递增路径题目链接方法一…

leetcode155 最小栈

题目 设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。i…

关于LPC1768在线升级的实现的注意事项

开发环境&#xff1a;Keil 5 uVision V5.38.0.0 1、使用IAP的方式&#xff08;应用程序在线编程&#xff09; 2、在Flash中构建用于升级的不同区域 &#xff08;1&#xff09;引导区 &#xff08;2&#xff09;APP区 &#xff08;3&#xff09;升级代码存放区域 注意&…

阿里影业业绩大涨,除了沸腾的文娱市场还有什么原因?

影视文娱市场的火热仍在延续&#xff0c;新定档的电影和演出&#xff0c;不断引人关注这个行业的生机。而这个行业的支持者、受益者&#xff0c;就站在一线。 5月29日晚&#xff0c;阿里影业发布截至2024年3月31日的2024财年业绩公告。社会文娱消费的热情&#xff0c;对优质项…

深度学习笔记:2.Jupyter Notebook

Jupyter Notebook 常用操作快捷键魔法指令_jupyter notebook快捷键调用函数-CSDN博客https://blog.csdn.net/qq_26917905/article/details/137211336?ops_request_misc%257B%2522request%255Fid%2522%253A%2522171748112816800182160793%2522%252C%2522scm%2522%253A%25222014…

视频生成框架EasyAnimate正式开源!

近期&#xff0c;Sora模型的热度持续上涨&#xff0c;社区中涌现了一些类Sora的开源项目&#xff0c;这些项目均基于Diffusion Transformer结构&#xff0c;使用Transformer结构取代了UNet作为扩散模型的基线&#xff0c;旨在生成更长、更高分辨率、且效果更好的视频。EasyAnim…

罗德与施瓦茨RS SMA100A 9KHZ-3GHZ或6GHZ信号发生器

R&S SMA100A 提供信号质量、速度和灵活性。R&S SMA100A 是一款高级模拟发生器&#xff0c;因其出色的特性而树立了标准。 它结合了卓越的信号质量和极高的设置速度。无论是在开发、生产、服务还是维护方面&#xff0c;R&SSMA100A 都能出色地完成任务。 罗德与施瓦茨…

空调外机清洁机器人设计

现在的空调&#xff0c;有很多安装在高层&#xff0c;一旦安装使用后&#xff0c;外机几乎不可能再清洗。因为费用高&#xff0c;清洁工人的钱应该是好几百还不止&#xff1b;清洁风险高&#xff0c;空调师傅需要高空作业&#xff0c;如果发生意外业主难以承担。但空调运行几年…

Web IDE 在线编辑器综合实践(Web IDE 技术探索 三)

前言 前面两篇文章&#xff0c;我们简单讲述了 WebContainer/api 、Terminal 的基本使用&#xff0c;离完备的在线代码编辑器就差一个代码编辑了。今天通过 monaco editor &#xff0c;来实现初级代码编辑功能&#xff0c;讲述的是整个应用的搭建&#xff0c;并不单独针对monac…

LeetCode-43. 字符串相乘【数学 字符串 模拟】

LeetCode-43. 字符串相乘【数学 字符串 模拟】 题目描述&#xff1a;解题思路一&#xff1a;模拟乘法&#xff0c;两个数中每一位数相乘的时候乘上他们各自的进制数&#xff0c;之后求和。循环时&#xff0c;分别记录各自的进制数背诵版&#xff1a;解题思路三&#xff1a;0 题…

项目-双人五子棋对战:匹配模块的实现(3)

完整代码见: 邹锦辉个人所有代码: 测试仓库 - Gitee.com 模块详细讲解 功能需求 匹配就类似于大家平常玩的王者荣耀这样的匹配功能, 当玩家点击匹配之后, 就会进入到一个匹配队列, 当匹配到足够数量的玩家后, 就会进入确认页. 在这里, 我们主要实现的是1 - 1匹配功能, 首先先…

pycharm链接auto al服务器

研0提前进组&#xff0c;最近阻力需求是把一个大模型复现&#xff0c;笔者电脑18年老机子&#xff0c;无法满足相应的需求。因此租用auto dl服务器。本文记录自己使用pycharm&#xff08;专业版&#xff09;链接auto dl期间踩过的坑。 1.下载pycharm专业版 这一步不解释了&am…

逐步掌握最佳Ai Agents框架-AutoGen 九 RAG应用

在最近的几篇文章里&#xff0c;我们使用AutoGen实现了一些Demo。这篇文章&#xff0c;我们将使用AutoGen来完成RAG应用开发。 RAG应用 RAG全称"Retrieval-Augmented Generation",即检索增强生成&#xff0c;它是自然语言处理中的一项技术。这种模型结合了检索式&a…

Latex之图片排列的简单使用(以MiKTeX工具为例)

一、参考资料 Latex如何插入图片 Latex 学术撰写工具推荐&#xff08;在线、Windows、Mac、Linux&#xff09; 关于Latex并排多张图片及加入图片说明的方法 二、准备工作 1. 在线LaTex工具 Overleaf 2. 本地LaTex工具 MiKTeX 3. 测试用例 \documentclass{article} \ti…