建设直销网站/关键词歌词任然
个人主页:欢迎来到 Papicatch的博客
课设专栏 :学生成绩管理系统
专业知识专栏: 专业知识
文章目录
🍉引言
🍉迁移学习
🍈基本概念
🍍定义
🍌归纳迁移学习(Inductive Transfer Learning):
🍌直推式迁移学习(Transductive Transfer Learning):
🍌跨领域迁移学习(Cross-Domain Transfer Learning):
🍌实例迁移学习(Instance Transfer Learning):
🍌特征迁移学习(Feature Transfer Learning):
🍌参数迁移学习(Parameter Transfer Learning):
🍍优势
🍌数据高效性
🍌节省时间和计算资源
🍌提高模型性能
🍌跨领域应用:
🍌加速创新和研究
🍍缺点
🍌负迁移问题
🍌领域适配难度
🍌模型复杂度增加
🍌隐私和法律问题
🍌依赖已有模型
🍈核心方法
🍍基于实例的迁移学习
🍍基于特征的迁移学习
🍍基于模型的迁移学习
🍍基于关系的迁移学习
🍈应用领域
🍍计算机视觉
🍍自然语言处理
🍍医疗领域
🍍金融领域
🍍工业领域
🍍教育领域
🍉VGG16实现图像风格转移
🍈步骤
🍍环境及数据集准备
🍍原理理解
🍈代码实现
🍉总结
🍉引言
在当今数字化和智能化的时代,数据的价值日益凸显,而如何高效地利用数据成为了摆在研究者和从业者面前的重要课题。迁移学习作为一种创新的机器学习方法,应运而生,为解决数据利用和知识迁移的难题提供了全新的思路和有力的工具。
迁移学习旨在将从一个或多个相关领域中学习到的知识和模式,应用到新的、但具有一定相似性的领域或任务中。它打破了传统机器学习中每个任务都需要大量特定标注数据的限制,使得我们能够在数据稀缺的情况下,借助已有的知识和经验,快速有效地开展新的学习和分析。
例如,在图像识别领域,我们可以利用在大规模自然图像数据集上训练好的模型,将其迁移到医学图像诊断任务中,从而节省大量的训练时间和数据标注成本。同样,在语言处理中,从大规模通用文本数据中学习到的语言模型,可以被迁移到特定领域的文本分类或情感分析任务中。
🍉迁移学习
迁移学习(Transfer Learning) 是一种机器学习方法,其核心在于将从一个或多个源领域(Source Domain)和源任务(Source Task)中学习到的知识、模式或模型参数,有效地应用到目标领域(Target Domain)和目标任务(Target Task)中。
具体来说,迁移学习旨在利用已有的相关数据和模型的学习成果,来改善在新的、但具有一定相关性的任务中的学习效果。这种方法突破了传统机器学习中每个任务都需要独立收集大量特定标注数据并从头开始训练模型的限制。
例如,假如在一个大规模的图像数据集(如 ImageNet)上训练了一个深度卷积神经网络来识别各种常见物体,这就是源任务。当我们想要构建一个模型来识别特定类型的医学图像中的病变时,就可以将在 ImageNet 上学到的关于图像特征提取和分类的知识,迁移到这个新的医学图像识别任务中,这就是目标任务。
迁移学习的关键在于发现源领域和目标领域之间的相似性和相关性,并利用这些共性来加速和优化目标任务的学习过程。这可能涉及到对源模型的参数调整、特征选择和转换,或者采用特定的适应策略来弥合源领域和目标领域的数据分布差异。
在实际应用中,迁移学习具有诸多优势,如减少目标任务所需的数据标注量、降低训练成本、提高模型的收敛速度和泛化能力等。它使得在数据稀缺或新领域探索等场景下,能够更高效地构建有效的机器学习模型。
🍈基本概念
🍍定义
通过在源领域(source domain)或任务(source task)中学得的知识来帮助目标领域(target domain)或任务(target task)的学习。其利用已有的模型或知识,减少在目标任务中对大规模标注数据的依赖。
🍍类型
🍌归纳迁移学习(Inductive Transfer Learning):
- 特点:源任务和目标任务不同,但源领域和目标领域可以相同或不同。
- 示例:在图像分类任务中,先在大规模的自然图像数据集上训练一个模型(源任务),然后将学习到的特征提取和分类能力应用于医学图像的分类任务(目标任务)。源领域是自然图像,目标领域是医学图像,领域可以不同。
- 优势:能够将从一个一般性任务中获得的知识应用到特定的、不同的任务中,拓展了模型的应用范围。
🍌直推式迁移学习(Transductive Transfer Learning):
- 特点:源领域和目标领域不同,但任务相同。
- 举例:假设源领域是已标注的网页文本数据,目标领域是未标注的社交媒体文本数据,任务都是文本分类。通过利用源领域已有的标注信息和模型,对目标领域的未标注数据进行分类。
- 优点:适用于任务相同但数据分布不同的情况,有助于利用已有数据和模型解决新领域中的相同任务。
🍌跨领域迁移学习(Cross-Domain Transfer Learning):
- 特点:源领域和目标领域不同,且任务也不同。
- 比如:源任务是在电商网站上预测用户的购买行为,目标任务是在社交媒体平台上预测用户的兴趣偏好。领域和任务均存在差异,但可以尝试寻找两者之间的潜在关联和共性进行知识迁移。
- 价值:这种类型具有更大的挑战性和创新性,能够充分挖掘不同领域和任务之间的潜在联系,实现更广泛的知识迁移和应用。
🍌实例迁移学习(Instance Transfer Learning):
- 特性:直接从源领域中选择一部分有代表性的实例数据,并将其应用于目标领域的学习。
- 例如:从大量的已标注图像数据中挑选出与目标任务相关的图像实例,用于辅助目标任务的模型训练。
- 好处:可以快速地为目标任务提供有价值的参考数据,特别是在目标数据量有限的情况下。
🍌特征迁移学习(Feature Transfer Learning):
- 重点:将在源领域中学习到的有用特征表示,应用于目标领域的模型训练。
- 比方说:在语音识别中,将从一种语言的语音数据中提取的特征,应用于另一种语言的语音识别任务。
- 优点:能够有效地利用已有的特征提取方法和知识,提高目标任务的特征表示能力。
🍌参数迁移学习(Parameter Transfer Learning):
- 关键:将源模型的参数直接或经过适当调整后应用于目标模型。
- 举个例子:在深度神经网络中,将在大规模数据集上训练好的模型的部分参数,初始化目标模型的相应参数。
- 优势:能够加快目标模型的收敛速度,提高训练效率和性能。
🍍优势
🍌数据高效性
- 减少了对大量标注数据的需求。在目标任务数据稀缺的情况下,借助源任务中的丰富数据,可以构建有效的模型。
- 例如,在医学图像分析中,某些罕见疾病的图像数据有限,但可以利用在常见疾病或通用图像上训练的模型进行迁移。
🍌节省时间和计算资源
- 避免了从头开始训练模型的漫长过程。使用预训练模型并进行微调,可以大大缩短训练时间。
- 比如在自然语言处理中,使用预训练的语言模型如 GPT 系列,然后在特定任务上进行微调,能快速得到较好的结果。
🍌提高模型性能
- 利用在大规模数据上学习到的通用知识和特征,能够提升目标任务模型的泛化能力和准确性。
- 以图像识别为例,使用在 ImageNet 上训练的模型来初始化新的模型,通常能比随机初始化获得更高的准确率。
🍌跨领域应用:
- 可以将在一个领域中学习到的模式和知识应用到其他相关领域。
- 比如将在电商领域的用户行为分析模型迁移到金融领域的客户分析中。
🍌加速创新和研究
- 使得研究人员能够更快地尝试新的想法和应用,专注于解决特定领域的关键问题。
🍍缺点
🍌负迁移问题
- 如果源任务和目标任务差异过大,可能会导致负迁移,即从源任务中学习到的知识对目标任务产生负面影响。
- 例如,将在色彩丰富的自然图像上训练的模型直接应用于灰度医学图像分类,可能会引入不相关的特征。
🍌领域适配难度
- 源领域和目标领域的数据分布差异可能较大,需要进行复杂的领域适配工作。
- 像将在城市交通数据上训练的模型应用于乡村交通场景,可能会因为环境差异导致模型不适用。
🍌模型复杂度增加
- 为了实现迁移学习,可能需要引入额外的机制和参数来处理领域差异,增加了模型的复杂度。
🍌隐私和法律问题
- 当使用外部数据或预训练模型时,可能会涉及到数据隐私和法律合规性的问题。
🍌依赖已有模型
- 可能会限制创新和对全新模型架构的探索,过度依赖现有的预训练模型。
🍈核心方法
🍍基于实例的迁移学习
这种方法的核心思想是从源域中选择对目标域学习有帮助的实例数据,并将其与目标域数据一起用于模型训练。
- 权重分配:根据一定的准则为源域中的实例分配权重,例如相似度、重要性等。权重高的实例在训练中对模型的影响更大。
- 例如,可以通过计算源域实例与目标域实例的特征距离来确定权重。
- 实例筛选:直接筛选出一部分具有代表性或与目标域相似性较高的源域实例。
- 比如,使用聚类算法对源域和目标域数据进行聚类,然后选择与目标域聚类中心较近的源域实例。
🍍基于特征的迁移学习
重点在于将源域和目标域的数据映射到一个共同的特征空间,使得在这个空间中,源域和目标域的数据分布尽可能相似,从而便于模型学习。
- 特征变换:通过线性或非线性变换,将源域和目标域的特征映射到一个新的空间,以减小领域间的差异。
- 主成分分析(PCA)和核主成分分析(KPCA)是常见的特征变换方法。
- 特征选择:从原始特征中挑选出对迁移学习有益的特征子集。
- 可以基于统计指标、相关性分析等方法进行特征选择。
🍍基于模型的迁移学习
利用源域训练好的模型,并将其应用于目标域的学习任务。
- 微调(Fine-tuning):在目标域数据上继续训练源域模型的部分或全部参数。通常会先冻结模型的某些层,然后对其余层进行训练,或者使用较小的学习率对整个模型进行微调。
- 例如,在图像分类任务中,使用在大规模图像数据集上训练好的卷积神经网络,然后在目标数据集上微调最后的全连接层。
- 模型适配:对源域模型的结构或参数进行调整,以适应目标域的任务。
- 可能会增加或删除一些层,或者修改层的连接方式。
🍍基于关系的迁移学习
关注源域和目标域数据之间的关系,利用这些关系进行知识迁移。
- 关系映射:建立源域和目标域数据之间的关系映射,将源域中的关系知识应用到目标域。
- 比如,在社交网络分析中,将一个社交网络中的用户关系知识迁移到另一个相似的社交网络。
🍈应用领域
🍍计算机视觉
- 图像分类:利用在大规模通用图像数据集(如 ImageNet)上训练的模型,如 VGG、ResNet 等,对特定领域的图像进行分类,例如医疗图像中的疾病诊断、工业产品的质量检测等。
- 例如,将在自然图像中训练好的模型迁移到卫星图像的地物分类任务中。
- 目标检测:预训练的目标检测模型可以在新的场景中进行微调,以检测特定的目标。比如从常见物体检测迁移到交通标志检测。
- 像将在 COCO 数据集上训练的模型用于自动驾驶场景中的行人与车辆检测。
- 图像生成:将在大量真实图像上学习到的特征和模式应用于生成新的图像,如风格迁移、图像超分辨率等。
- 例如,将艺术作品的风格迁移到普通照片上,使其具有艺术效果。
🍍自然语言处理
- 文本分类:使用在大规模文本数据集上训练的语言模型,如 BERT、GPT 等,对特定领域的文本进行分类,如新闻分类、情感分析等。
- 比如将通用的语言模型迁移到金融领域的新闻分类任务中。
- 机器翻译:预训练的语言模型可以为新的语言对的翻译提供初始化参数和语言理解能力。
- 例如,从常见语言对的翻译模型迁移到稀有语言对的翻译。
- 问答系统:利用已有的语言知识和模式来回答特定领域的问题。
- 像将通用的问答模型迁移到法律领域的咨询系统中。
🍍医疗领域
- 疾病诊断:基于在大量医疗影像数据上训练的模型,对新患者的影像进行诊断,如 X 光、CT、MRI 等图像的分析。
- 比如,将在常见疾病影像上训练的模型迁移到罕见疾病的诊断中。
- 基因分析:将从其他基因数据中学习到的特征和模式应用于新的基因序列分析,以预测疾病风险或药物反应。
- 例如,利用在大规模基因数据集上训练的模型来分析特定患者的基因变异。
🍍金融领域
- 风险评估:使用在历史金融数据上训练的模型来评估新客户的信用风险或投资风险。
- 比如,将以往市场数据训练的模型迁移到对新的金融产品的风险评估中。
- 股票预测:基于已有的市场数据和交易模式,对未来的股票走势进行预测。
- 像将在成熟市场的股票数据上训练的模型应用于新兴市场的股票预测。
🍍工业领域
- 故障诊断:通过在大量设备运行数据上训练的模型,对新设备或不同工况下的设备进行故障诊断和预测性维护。
- 例如,将在相似类型设备上训练的模型迁移到新生产线的设备故障检测中。
- 质量控制:利用在以往产品质量数据上学习到的知识,对新生产批次的产品质量进行评估和控制。
- 比如,将在标准产品质量检测中训练的模型用于定制化产品的质量判断。
🍍教育领域
- 个性化学习:根据学生在某些学科或知识点上的学习表现,迁移到其他相关学科或知识点的学习推荐和评估。
- 例如,基于学生在数学学习中的表现数据,为其在物理学习中提供个性化的学习路径。
- 智能辅导系统:将从大量学生学习行为数据中获取的模式应用于为特定学生提供个性化的辅导和反馈。
- 像将通用的学习行为分析模型迁移到特定学科的辅导系统中。
🍉VGG16实现图像风格转移
🍈步骤
🍍环境及数据集准备
- 安装所需的库,如 PyTorch、torchvision 等。
- 准备在 ImageNet 上预训练好的 VGG16 模型文件(如 vgg16-397923af.pth)。
- 选择合适的数据集,例如 COCO2014 的 train2014 训练集或其他类似的数据集。
🍍原理理解
- 深度学习中的 VGG16 网络具有多层结构,不同层学习到的是图像不同层面的特征信息。较低层关注线条、颜色等基础信息,较高层关注更抽象的特征。
- 风格迁移追求生成图片和输入图片具有相似的特征。使用中间某些层的特征作为目标,使输入图片和生成图片在这些层的特征尽可能相似。
- 一般用 Gram 矩阵来表示图像的风格特征。对于卷积层输出的形状为 c×h×w 的 feature maps f,Gram matrix 的第 i、j 个元素
的计算方式为
,其中
代表第 i 个 feature map 的第 k 个像素点。Gram matrix 抛弃了元素之间的空间信息,只与通道数有关,注重风格纹理等特征。
- 定义损失函数来衡量生成图片与内容图片的内容相似程度(content loss)和与风格图片的风格相似程度(style loss)。
🍈代码实现
构建预训练的 VGG16 模型:可以参考如下示例代码创建一个简化的 VGG16 模型,以便提取中间层的输出。
import torch
import torch.nn as nn
from torchvision.models import vgg16class VGG16(nn.Module):def __init__(self):super(VGG16, self).__init__()features = list(vgg16(pretrained=True).features)[:] # 加载预训练的 VGG16 特征提取部分self.features = nn.Sequential(*features) # 使用 Sequential 容器组合各层def forward(self, x):outputs = []for layer in self.features:x = layer(x)if isinstance(layer, nn.ReLU): # 如果是 ReLU 激活层outputs.append(x) # 保存该层的输出return outputs
加载内容图片和风格图片,并进行预处理,例如调整大小、转换为张量等。
定义内容损失(Content_loss)和风格损失(Style_loss)类,用于计算相应的损失。示例代码如下:
class Content_loss(torch.nn.Module):def __init__(self, weight, target):super(Content_loss, self).__init__()self.weight = weightself.target = target.detach() * weight # 将目标内容从计算图中分离self.loss_fn = torch.nn.MSELoss() # 使用均方误差作为损失函数def forward(self, input):self.loss = self.loss_fn(input * self.weight, self.target)return inputclass Style_loss(torch.nn.Module):def __init__(self, weight, target):super(Style_loss, self).__init__()self.weight = weightself.target = target.detach() * weightself.loss_fn = torch.nn.MSELoss()self.gram = Gram_matrix() # 用于计算 Gram 矩阵def forward(self, input):self.Gram = self.gram(input.clone()) # 计算输入的 Gram 矩阵并乘以权重self.Gram.mul_(self.weight)return inputclass Gram_matrix(torch.nn.Module):def forward(self, input):a, b, c, d = input.size() feature = input.view(a * b, c * d) # 调整形状gram = torch.mm(feature, feature.t()) # 计算 Gram 内积return gram.div(a * b * c * d) # 归一化
进行风格迁移的训练过程,将生成图片输入到风格迁移网络中,计算内容损失和风格损失,并反向传播更新生成图片的参数。训练步骤大致如下:
- 将一张图片输入到风格迁移网络中得到生成的图片。
- 将生成的图片和内容图片输入到 VGG16 模型中,计算在指定层(如 relu3_3)的输出,并计算它们之间的均方误差作为 content loss。
- 将生成的图片和风格图片输入到 VGG16 模型中,计算在多个层(如 relu1_2、relu2_2、relu3_3 和 relu4_4)的输出,计算它们的 Gram 矩阵的均方误差作为 style loss。
- 将 content loss 和 style loss 相加,进行反向传播,更新风格迁移网络的参数,但固定 VGG16 模型的参数不动。
- 重复上述步骤,直到达到满意的效果或训练轮数。
通过不断迭代训练,生成的图片会逐渐在内容上与内容图片相似,在风格上与风格图片相似,从而实现图像风格的转移。
请注意,实际实现中可能需要根据具体情况进行一些调整和优化,例如调整损失函数的权重、选择不同的 VGG16 层、使用不同的优化算法等,以获得更好的风格迁移效果。此外,还可以参考相关的开源项目和代码示例,以便更深入地理解和实现图像风格转移任务。上述代码只是一个简单的示例,实际应用中可能需要更复杂的架构和处理逻辑。
🍉总结
迁移学习是机器学习领域中一项极具创新性和实用价值的技术。它打破了传统机器学习中每个任务都需从零开始训练模型的局限性,通过巧妙地利用已在相关领域或任务中积累的知识和经验,极大地提高了学习效率和模型性能。
在迁移学习中,我们可以从大规模的、通用的数据源中获取有价值的信息,并将其应用到特定的、数据稀缺的目标任务中。这种跨领域和任务的知识迁移不仅节省了大量的数据标注时间和计算资源,还能够在目标任务数据有限的情况下,使模型快速达到较好的效果。
迁移学习的方法多种多样,包括基于实例、特征、模型和关系的迁移等。每种方法都有其独特的优势和适用场景,能够根据具体问题灵活选择和组合使用。
在实际应用中,迁移学习已经在计算机视觉、自然语言处理、医疗、金融、工业等众多领域取得了显著的成果。例如在图像分类、文本情感分析、疾病诊断、风险评估等任务中,迁移学习都发挥了重要作用,为解决实际问题提供了高效且准确的解决方案。
然而,迁移学习也并非完美无缺,可能存在负迁移、领域适配困难、模型复杂度增加等问题。但随着技术的不断发展和研究的深入,相信这些问题将逐步得到解决,迁移学习也将在未来的人工智能发展中发挥更加重要的作用,为推动各领域的智能化进程做出更大的贡献。
总的来说,迁移学习为我们提供了一种更智能、高效的数据利用方式,是机器学习领域的一个重要发展方向。
相关文章:

【人工智能】-- 迁移学习
个人主页:欢迎来到 Papicatch的博客 课设专栏 :学生成绩管理系统 专业知识专栏: 专业知识 文章目录 🍉引言 🍉迁移学习 🍈基本概念 🍍定义 🍌归纳迁移学习(Induct…...

Flink源码学习资料
Flink系列文档脑图 由于源码分析系列文档较多,本人绘制了Flink文档脑图。和下面的文档目录对应。各位读者可以选择自己感兴趣的模块阅读并参与讨论。 此脑图不定期更新中…… 文章目录 以下是本人Flink 源码分析系列文档目录,欢迎大家查阅和参与讨论。…...

HarmonyOS4.0开发-环境配置
鸿蒙应⽤开发快速体验 1.1. 准备开发环境 1.1.1 安装IDE 鸿蒙应⽤开发需要使⽤配套的IDE——HUAWEI DevEco Studio。 DevEco Studio基于IntelliJIDEA Community(IDEA社区版)构建,为鸿蒙应⽤提供了⼀站式开发环境,集成了开发、运⾏…...

GESP CCF C++ 三级认证真题 2024年6月
第 1 题 小杨父母带他到某培训机构给他报名参加CCF组织的GESP认证考试的第1级,那他可以选择的认证语言有()种。 A. 1 B. 2 C. 3 D. 4 第 2 题 下面流程图在yr输入2024时,可以判定yr代表闰年,并输出 2月是29天 &#x…...

华为的热机备份和流量限制
要求: 12,对现有网络进行改造升级,将当个防火墙组网改成双机热备的组网形式,做负载分担模式,游客区和DMZ区走FW4,生产区和办公区的流量走FW5 13,办公区上网用户限制流量不超过100M,…...

Vite的WebSocket
Vite的webSocket SocketJava Socket概述工作原理优势劣势 Java WebSocket概述工作原理代码示例nodeJS WebSocket优势劣势 vite中的WebSocket💫代码示例使用vite进行创建服务器并对Vue实行HMR 总结 Socket Java 中的 Socket 与 WebSocket 都用于网络通信,…...

Vue3项目基于Axios封装request请求
在 Vue 3 的项目开发中,使用 Axios 进行 HTTP 请求是非常常见的作法,为了更方便开发者更高效的进行代码编写和项目的维护,可以通过再次封装 Axios 来实现。 在本文中,博主将详细指导你如何在自己的 Vue 3 项目中使用 Axios 二次封…...

html(抽奖设计)
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>抽奖</title><style type"text/css">* {margin: 0;padding: 0;}.container {width: 800px;height: 800px;border: 1px dashed red;position: absolut…...

Linux·权限与工具(上)
1. shell命令以及运行原理 Linux严格意义上来说是一个操作系统,我们称之为 "核心(kernel)" ,但我们一般的用户不呢个直接使用到核心,因为不会用。所以开发者在核心外面封装了一层 "外壳(shell)" 程序,来与核心…...

成为CMake砖家(2): macOS创建CMake本地文档的app
大家好,我是白鱼。 使用 CMake 的小伙伴, 有的是在 Windows 上, 还有的是在 macOS 上。之前咱们讲了 windows 上查看 cmake 本地 html 文档的方式, 这篇讲讲 macOS 上查看 cmake 本地 html 文档的方法。 1. 问题描述 当使用 CMa…...

基于opencv的图片加水印实现方案
加水印应该是个很常见的需求,但是网上找的代码,都感觉不太完善。记录下自己搞出来的一个方案 水印有几个需求: 中文文字水印文字倾斜满图都是,而不是只有一个地方水印文字所在之处完全展示水印 实现思路 准备水印图 我是这么…...

STM32 IAP 需要关注的一些事
1、首先要知道STM32的程序是如何分布在FLASH中的。 2、升级的时候涉及到两个程序,一个是bootloader,一个是user程序,这两个程序的功能分别的什么作用的? 3、编译的固件是怎么分布的?通过那个配置文件去指导编译器去排布…...

高并发服务器-使用多进程(Multi-Process)实现【C语言】
在上期的socket套接字的使用详解中(socket套接字的使用详解)最后实现的TCP服务器只能处理一个客户端的请求发送,当有其他客户端请求连接时会被阻塞。为了能同时处理多个客户端的连接请求,本期使用多进程的方式来解决。 解决方案步…...

线程控制
对线程的控制思路和进程相似,创建、等待、终止,只需要调用接口就行。但是在Linux下没有线程的概念,因为Linux的设计者认为,线程是一种轻量级的进程,毕竟创建线程只需要创建PCB。因此Linux中使用多线程必须使用第三方pt…...

Spring Data Jpa 原生SQL联表查询返回自定义DTO
Spring Data Jpa 原生SQL联表查询返回自定义DTO 方案一:返回Map 这个就不说了 方案二:实体定义成接口的形式 该方式最直观!!推荐!!! 注意:XxxDto是interface接口,而…...

Hadoop3:HDFS存储优化之小文件归档
一、情景说明 我们知道,NameNode存储一个文件元数据,默认是150byte大小的内存空间。 那么,如果出现很多的小文件,就会导致NameNode的内存占用。 但注意,存储小文件所需要的磁盘容量和数据块的大小无关。 例如&#x…...

Golang | Leetcode Golang题解之第234题回文链表
题目: 题解: func reverseList(head *ListNode) *ListNode {var prev, cur *ListNode nil, headfor cur ! nil {nextTmp : cur.Nextcur.Next prevprev curcur nextTmp}return prev }func endOfFirstHalf(head *ListNode) *ListNode {fast : headslo…...

Unity Apple Vision Pro 开发(四):体积相机 Volume Camera
文章目录 📕教程说明📕教程内容概括📕体积相机作用📕创建体积相机📕添加体积相机配置文件📕体积相机配置文件参数📕体积相机的边界盒大小📕体积相机边界盒大小和应用边界盒大小的区别…...

C语言 | Leetcode C语言题解之第231题2的幂
题目: 题解: const int BIG 1 << 30;bool isPowerOfTwo(int n) {return n > 0 && BIG % n 0; }...

GitHub备份代码的学习笔记
1. 备份工具:GitHub CLI 2. 认证方式 2.1 公用云服务器:SSH 可以通过使用GitHub CLI(命令行界面)在本地创建一个新的GitHub仓库,并直接使用本地项目代码文件夹的名称作为仓库名称,无需手动输入相同的名称。这可以通过以下步骤实现: 首先,确保您已安装…...

微信小程序与本地MySQL数据库通信
微信小程序与本地MySQL数据库通信 因为本地MySQL服务器没有域名,也没有进行相应的请求操作封装,因此微信小程序没办法和数据库通信。 但是对于开发人员来说,没有数据库,那还能干撒?虽然我尝试过用json-server&#x…...

Flutter热更新技术探索
一,需求背景: APP 发布到市场后,难免会遇到严重的 BUG 阻碍用户使用,因此有在不发布新版本 APP 的情况下使用热更新技术立即修复 BUG 需求。原生 APP(例如:Android & IOS)的热更新需求已经…...

【机器学习-00】机器学习是什么?
在科技飞速发展的今天,机器学习已成为一个热门话题,广泛应用于各个行业和领域。那么,机器学习到底是什么?它又是如何工作的?本文将深入探讨机器学习的定义、原理及其在各领域的应用,带领读者走进这个神秘而…...

【BUG】已解决:WslRegisterDistribution failed with error: 0x800701bc
已解决:WslRegisterDistribution failed with error: 0x800701bc 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身,就职于医疗科技公司,热衷分享知识,武…...

无人机监测的必要性及方法
为什么需要无人机探测? 无人机的快速发展和广泛使用为各个行业带来了巨大好处,包括送货服务、农业和监控。然而,这种扩散也导致滥用现象增多,造成非法入侵空域、侵犯隐私和安全威胁。监控和探测在特定空域盘旋的无人机的能力变得…...

PHP框架详解:Symfony框架
Symfony是一个功能强大且高度灵活的PHP框架,广泛应用于企业级项目和复杂的Web应用开发。本文将详细介绍Symfony框架的主要特性,并通过实例展示其强大功能。 1. 什么是Symfony? Symfony是一个基于MVC(模型-视图-控制器࿰…...

在 Navicat BI 创建自定义字段:类型更改字段
早在 Navicat 17 的预览版中,我们就已经介绍了一些新的商业智能(BI)功能,即图表互动和计算字段。需要说明的是,计算字段不是 Navicat BI 中唯一可用的自定义字段类型。事实上,有五种:类型改变、…...

llama-index,uncharted and llama2:7b run locally to generate Index
题意:本地运行 llama-index、uncharted 以及 llama2:7b 来生成索引 问题背景: I wanted to use llama-index locally with ollama and llama3:8b to index utf-8 json file. I dont have a gpu. I use uncharted to convert docs into json. Now If it …...

vue、js截取视频任意一帧图片
html有本地上传替换部分,可以不看 原理:通过video标签对视频进行加载,随后使用canvas对截取的视频帧生成需要的图片 <template> <el-row :gutter"18" class"preview-video"><h4>视频预览<span&…...

STM32智能家居系统教程
目录 引言环境准备智能家居系统基础代码实现:实现智能家居系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:家居智能化管理问题解决方案与优化收尾与总结 1. 引言 智能家居系统通过STM32嵌入…...