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

【连续学习之ResCL算法】2020年AAAI会议论文:Residual continual learning

1 介绍

年份:2020

会议: AAAI

Lee J, Joo D, Hong H G, et al. Residual continual learning[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2020, 34(04): 4553-4560.

本文提出的算法是Residual Continual Learning (ResCL),其核心原理是通过在线性组合原始网络和微调网络的每层参数来重新参数化网络,以此在连续学习多个任务时防止灾难性遗忘现象,同时不需要任何源任务信息,保持网络大小不变。先第一次训练,采用LWF算法知识蒸馏到新模型,再合并LWF模型和旧模型后,然后采用的合并后的损失函数第二次训练合并后的模型。ResCL算法属于基于架构的算法,因为它通过调整网络架构来实现连续学习,同时它也利用了基于正则化的方法来优化组合网络的参数

2 创新点

  1. 残差学习重参数化:ResCL通过线性组合原始网络和微调网络的每层来重新参数化网络参数,这种残差学习的方法允许网络在连续学习多个任务时有效地控制源任务和目标任务之间的性能权衡。
  2. 无需源任务信息:ResCL不需要除了原始网络之外的任何源任务信息,这使得它在实际应用中更加实用,尤其是在源数据不可用或难以处理的情况下。
  3. 网络大小不变:与传统的网络扩展方法不同,ResCL在推理阶段不会增加网络的大小,这对于在资源受限的环境中部署深度学习模型尤为重要。
  4. 特殊权重衰减损失:ResCL引入了一种特殊的权重衰减损失,这种损失函数专门设计用于连续学习,能够有效地防止遗忘源任务知识。
  5. 适用于通用CNNs:该方法可以自然地应用于包括批量归一化(Batch Normalization)层在内的通用卷积神经网络。
  6. 公平比较的衡量标准:ResCL提出了两种衡量不同连续学习方法的公平标准,即最大可实现平均准确率和在所需目标准确率下的源准确率,这些标准不依赖于特定的超参数设置。
  7. 连续学习多个任务:ResCL不仅适用于两个任务的连续学习,还可以扩展到三个或更多任务的连续学习场景,展示了良好的扩展性和适应性。

3 算法

3.1 算法原理

  1. 重新参数化
    ResCL通过线性组合原始网络(源任务网络)和微调网络(目标任务网络)的每层参数来重新参数化网络。对于全连接层,如果 W s W_s Ws是源网络的权重矩阵, W t W_t Wt是微调网络的权重矩阵,那么组合层的输出可以表示为:

( 1 C o + α s ) ⊙ ( W s x ) + α t ⊙ ( W t x ) (1_{Co} + \alpha_s) \odot (W_s x) + \alpha_t \odot (W_t x) (1Co+αs)(Wsx)+αt(Wtx)

其中, 1 C o 1_{Co} 1Co是全1向量, ⊙ \odot 表示逐元素乘法, α s \alpha_s αs α t \alpha_t αt是组合参数向量。这些参数通过反向传播学习得到,允许网络在保留源任务知识的同时适应新任务。

  1. 特殊权重衰减损失
    为了防止遗忘源任务,ResCL引入了一种特殊的权重衰减损失。不同于常规的权重衰减损失,ResCL的权重衰减损失专门设计用于连续学习,其目的是保护原始网络权重不受目标任务影响。这种损失函数可以表示为:

λ ∣ ∣ ( α s , α t ) ∣ ∣ 1 \lambda ||(\alpha_s, \alpha_t)||_1 λ∣∣(αs,αt)1

其中, λ \lambda λ是权衡超参数,控制源任务和目标任务性能之间的平衡。

  1. 批量归一化层的处理
    考虑到现代卷积神经网络(CNN)中广泛使用的批量归一化(Batch Normalization, BN)层,ResCL也考虑了BN层的影响。每个子网络都有自己的BN层,以保持各自任务的分布信息。在推理阶段,BN层可以被视为确定性线性层,因此可以与卷积层合并。
  2. 训练过程
    ResCL的训练包括两个阶段:首先是微调阶段,微调网络 n e t t nett nett在目标任务上进行训练;其次是组合网络训练阶段,组合网络 n e t c netc netc在源任务和目标任务上进行训练,同时使用LwF损失和权重衰减损失来保持源任务性能。
  3. 性能权衡
    ResCL通过超参数 λ \lambda λ来控制源任务和目标任务之间的性能权衡。通过调整 λ \lambda λ,可以在保持源任务性能和提高目标任务性能之间找到平衡点。

3.2 算法步骤

  1. 初始训练(源任务训练)
    • 首先,有一个已经在源任务上训练好的网络,我们称之为源网络 n e t s ( ⋅ ; θ s ∗ ) nets(\cdot; \theta^*_s) nets(;θs)
  2. 微调(目标任务训练)
    • 接着,使用源网络的参数初始化一个新的网络 n e t t ( ⋅ ; θ t ) nett(\cdot; \theta_t) nett(;θt),并在目标任务数据上进行微调,得到微调后的网络参数 θ t ∗ \theta^*_t θt。这个过程类似于 LwF 中的第一步,即在目标任务上微调模型,但并不完全相同,因为 ResCL 的目标是重新参数化网络以保留源任务的知识。
  3. 合并网络
    • 然后,ResCL 将源网络和微调网络的每层参数线性组合,形成一个新的组合网络 n e t c netc netc。这个组合网络包含了可学习的组合参数 α s \alpha_s αs α t \alpha_t αt,它们决定了如何混合源网络和微调网络的特征。
  4. 第二次训练(组合网络训练)
    • 最后,对组合网络 n e t c netc netc进行训练。这个训练过程涉及到特殊的损失函数,包括:
      • LwF 损失:用于保持源任务的性能。
      • 知识蒸馏损失:用于使目标任务的输出接近微调网络的输出。
      • 权重衰减损失:用于防止遗忘,通过衰减组合参数 α s \alpha_s αs α t \alpha_t αt来保护源网络的特征。

4 实验结果

图1展示了ResCL方法的流程,其中包括原始网络的微调、组合层的引入以及使用LwF损失和衰减损失进行的持续学习,以保持源任务性能并适应目标任务。

图2展示了源网络和目标网络的预激活残差单元如何通过组合层在每个非线性激活之前合并,形成在推理阶段使用的等效组合网络,且该网络与原始网络具有相同的规模。

5 思考

(1)训练两次,第一次先蒸馏、第二次是将蒸馏后的模型与旧模型合并,合并后再重新训练一遍

(2)如何组合两个网络?

在Residual Continual Learning (ResCL)算法中,组合两个网络是通过线性组合每一层的输出来实现的。这个过程涉及到源网络(已经训练好的网络,记作 n e t s nets nets)和目标网络(在目标任务上微调后的网络,记作 n e t t nett nett)。

  1. 线性组合
    对于网络中的每个层(假设是全连接层或卷积层),ResCL算法将源网络和目标网络对应层的输出进行线性组合。对于全连接层,如果 W s W_s Ws是源网络层的权重矩阵, W t W_t Wt是目标网络层的权重矩阵,那么组合层的输出可以表示为:

( 1 C o + α s ) ⊙ ( W s x ) + α t ⊙ ( W t x ) (1_{Co} + \alpha_s) \odot (W_s x) + \alpha_t \odot (W_t x) (1Co+αs)(Wsx)+αt(Wtx)

其中, 1 C o 1_{Co} 1Co是一个全1向量,用于与 W s x W_s x Wsx相加, ⊙ \odot 表示逐元素乘法, α s \alpha_s αs α t \alpha_t αt是组合参数向量,它们是可学习的参数,用于控制源网络和目标网络输出的混合比例。

  1. 学习组合参数
    组合参数 α s \alpha_s αs α t \alpha_t αt通过反向传播和梯度下降进行学习和优化。这些参数允许网络在保留源任务知识的同时适应新任务。
  2. 保持网络大小不变
    由于这种线性组合是在特征层面进行的,最终的网络在推理阶段的规模不会增加。这是因为组合层可以被看作是重新参数化,而不是增加额外的层或参数。
  3. 处理非线性层
    对于非线性层(如ReLU激活层),这些层不能被包含在组合中,因为它们不是线性的。因此,组合层应该在非线性层之前应用,以确保网络的非线性特性得以保留。
  4. 批量归一化层的处理
    对于包含批量归一化(Batch Normalization, BN)层的网络,ResCL算法为每个任务保留了独立的BN层,并在组合网络中使用。这是因为BN层依赖于特定任务的统计信息,因此在连续学习中需要保持这些信息以避免遗忘。

(3)论文中的残差结构体现在哪?

残差结构主要体现在网络参数的重新参数化和权重衰减损失的设计上

  1. 线性组合的重新参数化
    ResCL算法通过线性组合原始网络(源网络)和微调网络(目标网络)的每层参数来实现残差学习。对于全连接层或卷积层,这种组合可以表示为:

( 1 C o + α s ) ⊙ ( W s x ) + α t ⊙ ( W t x ) (1_{Co} + \alpha_s) \odot (W_s x) + \alpha_t \odot (W_t x) (1Co+αs)(Wsx)+αt(Wtx)

其中, W s W_s Ws W t W_t Wt分别是源网络和目标网络的权重, α s \alpha_s αs α t \alpha_t αt是可学习的组合参数, 1 C o 1_{Co} 1Co是全1向量。这种结构允许网络学习源网络和目标网络之间的残差,即目标网络相对于源网络的变化。

  1. 残差学习的思想
    ResCL算法的设计理念与残差学习(Residual Learning)相似,残差学习通过将输入直接添加到网络的深层来促进深层网络的训练。在ResCL中,通过重新参数化,网络学习如何调整源网络的输出以适应目标任务,这可以看作是学习源网络输出到目标网络输出的“残差”。
  2. 权重衰减损失
    ResCL中的权重衰减损失( λ ∣ ∣ ( α s , α t ) ∣ ∣ 1 \lambda ||(\alpha_s, \alpha_t)||_1 λ∣∣(αs,αt)1)有助于控制组合参数,使得只有对目标任务必要的特征才会显著偏离源网络的特征。这种设计类似于在残差网络中通过权重衰减来促使残差部分的权重趋于零,从而保持网络的稀疏性和效率。

相关文章:

【连续学习之ResCL算法】2020年AAAI会议论文:Residual continual learning

1 介绍 年份:2020 会议: AAAI Lee J, Joo D, Hong H G, et al. Residual continual learning[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2020, 34(04): 4553-4560. 本文提出的算法是Residual Continual Learning (ResC…...

【网络协议】路由信息协议 (RIP)

未经许可,不得转载。 路由信息协议(Routing Information Protocol,简称 RIP)是一种使用跳数(hop count)作为路由度量标准的路由协议,用于确定源网络和目标网络之间的最佳路径。 文章目录 什么是…...

Linux 终端查看 nvidia 显卡型号

文章目录 写在前面1. 需求描述2. 实现方法方法一:方法二方法三: 参考链接 写在前面 自己的测试环境: Ubuntu20.04 1. 需求描述 Linux 终端查看 nvidia 显卡型号 2. 实现方法 方法一: 执行下列指令: sudo update…...

基于neurokit2的心电仿真数据生成实例解析

一 概念 NeuroKit2是一个开源的、社区驱动的、以用户为中心的Python库,可用于多种生理信号的分析处理(例如ECG、PPG、EDA、EMG、RSP),还包括用于特定处理步骤(如频率)的工具提取和过滤方法,并在…...

AMBA-APB

目录 1.APB 协议 2.APB信号列表 3.数据传输 3.1写传输(2种) 3.1.1 无等待状态的写传输 3.1.2有等待状态的写传输 3.2写选通信号 (PSTRB) 字节通道映射 3.3读传输(2种) 3.3.1 无等待状态的读传输 3.3.2有等待状态的读传…...

网安入门之PHP后端基础

PHP 基本概念详解 PHP是一种服务器端脚本语言,常用于动态网站开发和 web 应用程序。以下是 PHP 的基本概念与特点的详细说明: 1. PHP 文件的默认文件扩展名 PHP 文件的扩展名通常为 .php,例如 index.php。PHP 文件可以包含 PHP 代码、HTML…...

windows系统安装完Anaconda之后怎么激活自己的虚拟环境并打开jupyter

1.在win主菜单中找到Anaconda安装文件夹并打开终端 文件夹内有所有安装后的Anaconda的应用软件和终端窗口启动窗口 点击Anaconda Prompt(Anaconda)就会打开类似cmd的命令终端窗口,默认打开的路径是用户名下的路径 2.激活虚拟环境 使用命令…...

【C#特性整理】C#特性及语法基础

1. C#特性 1.1 统一的类型系统 C#中, 所有类型都共享一个公共的基类型. 例如,任何类型的实例都可以通过调用ToString方法将自身转换为一个字符串 1.2 类和接口 接口: 用于将标准与实现隔离, 仅仅定义行为,不做实现. 1.3 属性、方法、事件 属性: 封装了一部分对…...

龙蜥 配置本地yum源8.6----亲测

系统版本: 说明:丫丫的,内网服务安装了个龙蜥操作系统。内网不能访问互联网,所以就需要挂载yum源 用的以前的方法挂载,一直报错 [Couldnt open file /mnt/anolisos/repodata/repomd.xml] yum挂载的时候报错,奇葩!!!,龙蜥的挂载方法好像不一样。 解决: 一、上传并挂…...

Xshell日志录制

步骤 1:设置日志文件位置 打开 Xshell 软件,选择目标会话(或者创建一个新的会话)。右键点击会话名称,选择“属性”。在会话属性窗口中,找到“日志”选项卡。勾选“启用日志记录”。在“文件名”中设置日志…...

vue下载和上传的地址动态ip地址配置方法

vue3结合element-plus实现【下载文件】和【上传文件】的动态ip地址配置 效果图 一、修改【文件上传】静态地址 1、首先引入axios import axios from "/utils/request"; import { getToken } from "/utils/auth"; 定义 const importDialogVisible ref(…...

动手做计算机网络仿真实验入门学习

打开软件 work1 添加串行接口模块,先关电源,添加之后再开电源 自动选择连接 所有传输介质 自动连接 串行线 绿色是通的,红色是不通的。 显示接口。se是serial串行的简写。 Fa是fast ethernet的简写。 为计算机配置ip地址: 为服…...

LeetCode 面试题 17.10. 主要元素

LeetCode 面试题 17.10. 主要元素 数组中占比超过一半的元素称之为主要元素。给你一个 整数 数组,找出其中的主要元素。若没有,返回 -1 。请设计时间复杂度为 O(N) 、空间复杂度为 O(1) 的解决方案。 示例 1: 输入:[1,2,5,9,5,9,5…...

Hive之import和export使用详解

在hive-0.8.0后引入了import/export命令。 Export命令可以导出一张表或分区的数据和元数据信息到一个输出位置,并且导出数据可以被移动到另一个hadoop集群或hive实例,并且可以通过import命令导入数据。 当导出一个分区表,原始数据可能在hdf…...

SpringBoot数据字典字段自动生成对应code和desc

效果:接口会返回orderType,但是这个orderType是枚举的类型(1,2,3,4),我想多返回一个orderTypeDesc给前端展示,这样前端就可以直接拿orderTypeDesc使用了。 1. 定义注解 …...

HTML——16.相对路径

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title></head><body><a href"../../fj1/fj2/c.html" target"_blank">链接到c</a><!--相对路径&#xff1a;-->…...

字——位级运算与有无符号数之间的比较

前言 本文整理和归纳《深入理解计算机系统》这本书的内容&#xff0c;但本文不会继续长篇大论地去将所有内容都总结&#xff0c;而是总结笔者认为容易遗忘或混淆或表述不清的内容。 字 首先字这个概念对于学习过《计算机体系结构》或《操作系统》的同学都不陌生&#xff0c;…...

Python爬虫教程——7个爬虫小案例(附源码)_爬虫实例

本文介绍了7个Python爬虫小案例&#xff0c;包括爬取豆瓣电影Top250、猫眼电影Top100、全国高校名单、中国天气网、当当网图书、糗事百科段子和新浪微博信息&#xff0c;帮助读者理解并实践Python爬虫基础知识。 包含编程资料、学习路线图、源代码、软件安装包等&#xff01;【…...

‘Optional. get()‘ without ‘isPresent()‘ check

在Java中&#xff0c;Optional类被引入主要是为了解决NullPointerException的问题&#xff0c;它提供了一种更优雅的方式来处理可能为null的情况。Optional.get()方法用于获取Optional实例中包含的值&#xff0c;但如果Optional实例是空的&#xff08;即没有值&#xff09;&…...

015-spring-动态原理、AOP的xml和注解方式

强制使用cglib动态代理 spring-AOP的使用...

统计颜色Count Color(POJ2777)题解

有一个长度为L厘米板&#xff0c;L是一个正整数&#xff0c;所以我们可以把它均匀地划分成L个部分&#xff0c;分别从左到右编号为1&#xff0c;2……L&#xff0c;每一个部分长度都为1厘米。现在我们必须给每个部分涂色&#xff0c;一个部分一种颜色&#xff0c;要求完成以下两…...

Nginx 配置 SSL(HTTPS)详解

Nginx作为一款高性能的HTTP和反向代理服务器&#xff0c;自然支持SSL/TLS加密通信。本文将详细介绍如何在Nginx中配置SSL&#xff0c;实现HTTPS的访问。 随着互联网安全性的日益重要&#xff0c;HTTPS协议逐渐成为网站加密通信的标配。Nginx作为一款高性能的HTTP和反向代理服务…...

Day10补代码随想录 理论基础|232.用栈实现队列|225.用队列实现栈|20.有效的括号|1047.删除字符串中的所有相邻重复项

栈和队列理论基础 抽象认识 栈是先进后出(FIFO)&#xff0c;队列是先进先出(LIFO) 队首(先进))队尾(后进)栈顶(后进)栈底(先进) 栈(Stack) 只在一端进行进出操作(只在一端进一端出)像个篮球框&#xff0c;取用篮球从一端进出。 /进栈 int a[1000];//足够大的栈空间 int top-1…...

pytorch基础之注解的使用--003

Title 1.学习目标2.定义3.使用步骤4.结果 1.学习目标 针对源码中出现一些注解的问题&#xff0c;这里专门写一篇文章进行讲解。包括如何自定义注解&#xff0c;以及注意事项&#xff0c;相信JAVA中很多朋友业写过&#xff0c;但是今天写的是Python哦。。。 2.定义 在 Python…...

2024-12-30-g++

title: 探秘 g&#xff1a;C 编程的得力编译器 date: ‘2024-12-30’ category: blog tags: gC 编程编译器技术代码生成与优化 sig: compiler archives: ‘2024-12’ author:way_back summary: g 作为专门用于 C 语言的编译器&#xff0c;在 C 开发领域占据关键地位。它凭借对…...

互联网十万个为什么之什么是微服务

微服务&#xff08;Microservices&#xff09;是一种软件架构设计模式&#xff0c;它将应用程序分解为小型、自治的服务单元&#xff0c;这些服务单元可以独立部署、扩展和维护&#xff0c;其中每一个服务单元也都是一个微服务。 基于微服务形成的软件架构风格称为微服务架构&…...

mysql子查询

子查询是嵌套在另一个 SELECT, INSERT, UPDATE, 或 DELETE查询的 SQL 查询。子查询可以在 WHERE 子句中、FROM 子句或 SELECT 列表中出现。 以下是一些使用 MySQL 子查询的常见示例&#xff1a; 1.在 WHERE 子句中使用子查询&#xff1a; SELECT * FROM Employees WHERE s…...

智能故障诊断和寿命预测期刊推荐

往期精彩内容&#xff1a; Python-凯斯西储大学&#xff08;CWRU&#xff09;轴承数据解读与分类处理 基于FFT CNN - BiGRU-Attention 时域、频域特征注意力融合的轴承故障识别模型-CSDN博客 基于FFT CNN - Transformer 时域、频域特征融合的轴承故障识别模型-CSDN博客 P…...

根据语言变化动态更新图片资源方案

根据语言变化动态更新图片资源方案 一、需求描述二、关于 Locale三、实现方案3.1 方案一&#xff08;不可行&#xff09;3.2 方案二&#xff08;不可行&#xff09;3.3 方案三 一、需求描述 Android 项目中引导页图片包含文字信息&#xff0c;由于应用是适配了三种语言&#x…...

Python世界:数据结构易错点小结

Python世界&#xff1a;数据结构易错点小结 总体list列表tuple元组Stringdict字典mapset 部分笔记汇总&#xff0c;持续刷新中。区别于其他笔记之处在于&#xff0c;主要记录易错点坑点。 总体 数据结构声明辨析 list []tuple () const listditc {} hashset res set(list) 数…...

Linux | Ubuntu零基础安装 nvm 管理nodejs

目录 介绍 项目地址 前置工具 安装 查看环境配置 更新环境变量 查看版本 查看 nodejs包 列表 安装nodejs 查看 nvm 状态 测试 nodejs 介绍 nvm是什么&#xff1f;你可以把它理解成 nodejs的管理软件&#xff0c;方便快速切换nodejs的版本&#xff0c;达到兼容状态 …...

flask后端开发(3):html模板渲染

目录 渲染模板html模板获取路由参数 gitcode地址&#xff1a; https://gitcode.com/qq_43920838/flask_project.git 渲染模板 这样就能够通过html文件来渲染前端&#xff0c;而不是通过return了 html模板获取路由参数...

HAL 库句柄

一、命名方式&#xff1a;句柄是h为首字母&#xff0c;后面接协议名称 比如&#xff1a;huart、hadc、hi2c等 二、句柄类型&#xff1a; 这里拿huart举例&#xff0c;它的类型是UART_HandleTypeDef 进去stm32f1xx_hal_uart.h之后发现句柄的结构定义有部分是灰色的 灰色的当U…...

53.最大子数组和

53.最大子数组和 思路&#xff1a;动态规划 dp[i]表示截止到i的最大连续子数组的和 dp[0]nums[0] dp[i]max(dp[i-1]nums[i],nums[i]) 代码&#xff1a; class Solution { public:int maxSubArray(vector<int>& nums) {vector<int> dp(nums.size());dp[0]…...

计算机网络 (16)数字链路层的几个共同问题

一、封装成帧 封装成帧是数据链路层的一个基本问题。数据链路层把网络层交下来的数据构成帧发送到链路上&#xff0c;以及把接收到的帧中的数据取出并上交给网络层。封装成帧就是在一段数据的前后分别添加首部和尾部&#xff0c;构成了一个帧。接收端在收到物理层上交的比特流后…...

[OpenGL]使用glsl实现smallpt

一、简介 本文介绍了如何使用 OpenGL&#xff0c;使用 glsl 语言在 Fragment shader 中实现 smallpt。程序完成后可以得到以下渲染结果&#xff08;samples per pixel, spp 16&#xff09;。在程序中按下A,W可以左右平移&#xff0c;按下W,S可以前后平移&#xff1a; 二、s…...

数据结构与算法Python版 骑士周游问题与深度优先搜索

文章目录 一、图的应用-骑士周游问题二、图的深度优先搜索 一、图的应用-骑士周游问题 骑士周游问题 在一个88的国际象棋棋盘上&#xff0c;一个棋子“马”&#xff08;骑士&#xff09;&#xff0c;按照“马走日”的规则&#xff0c;从一个格子出发&#xff0c;要走遍所有棋…...

HIVE数据仓库分层

1&#xff1a;为什么要分层 大多数情况下&#xff0c;我们完成的数据体系却是依赖复杂、层级混乱的。在不知不觉的情况下&#xff0c;我们可能会做出一套表依赖结构混乱&#xff0c;甚至出现循环依赖的数据体系。 我们需要一套行之有效的数据组织和管理方法来让我们的数据体系…...

WOFOST作物模型(3):敏感性分析

目录 一、定义参数范围二、采样生成参数样本三、运行不同参数组下的WOFOST四、计算敏感度与可视化1.敏感度2.二阶交互敏感度五、敏感变量对产量的影响结果可视化一、定义参数范围 使用TAGP(Total Above Ground Production),地上总产量 TSUM1,temperature sum from emergence…...

【2024年-6月-14日-开源社区openEuler实践记录】探索 test - tools:高效测试的开源宝库

开篇引言 大家好&#xff0c;我是 fzr123&#xff0c;在软件开发领域深耕多年&#xff0c;一直致力于探索各种提升效率的工具与技术。今天&#xff0c;我将为大家深入介绍一款在测试领域极具价值的开源项目——test - tools&#xff0c;它为开发者们提供了一系列强大的测试功能…...

go-xorm连接

package mainimport ("fmt"_ "github.com/go-sql-driver/mysql""time""xorm.io/xorm" )func MysqlDbContent() {//数据库基本信息var (userName string "root"password string "12345678"ipAddress string &…...

Java字节分割文件流

使用 Java 通过字节分割大文件并将其以文件流的方式读写的示例代码。这个代码展示了如何将一个大文件分割成多个小文件&#xff0c;并以字节流的方式操作文件。 完整代码示例 import java.io.*;public class FileSplitter {public static void main(String[] args) {// 原始文…...

【潜意识Java】深入详细理解分析Java中的toString()方法重写完整笔记总结,超级详细。

目录 一、toString() 方法是啥&#xff1f; &#xff08;一&#xff09;默认的 toString() 方法 &#xff08;二&#xff09;toString() 方法的作用 二、为啥要重写 toString() 方法&#xff1f; &#xff08;一&#xff09;提高代码的可读性 &#xff08;二&#xff09;…...

仙盟系统开发——启动app失败

var 返回 仙盟使者.Cyber_CallApp(VOAPP, 命令, 携带);...

使用ArcGIS Pro自带的Notebook计算多个遥感指数

在之前的分享中&#xff0c;我们介绍了如何使用ArcPy将GEE下载的遥感影像转为单波段文件。基于前面创建的单波段文件&#xff0c;我们可以一次性计算多种遥感指数&#xff0c;例如NDVI、EVI、NDSI等。我这里直接在ArcGIS Pro中自带的Notebook进行的运行。如下图所示&#xff0c…...

深入Android架构(从线程到AIDL)_认识进程(Process)与IPC架构02

3、 设定IPC通信 -- 使用AndroidManifest.xml文件 在Android框架里&#xff0c;一个应用(程序)套件(Application Package)通常含有多个Java类(Class)&#xff0c;这些类可以在同一个进程(Process)里执行&#xff1b;也可以在不同的进程里执行 。通常&#xff0c;一个进程…...

在K8S中,节点状态哪个组件负责上报?

在Kubernetes中&#xff0c;节点状态是kubelet组件负责定期上报的。Kubelet是运行在每个节点上的代理程序&#xff0c;它与Kubernetes Master节点上的控制面板组件紧密协作&#xff0c;以确保节点上的Pod能够正确运行。 kubelet的主要职责之一就是&#xff1a;与Kubernetes API…...

AI 神经网络在智能家居场景中的应用

在科技持续进步的当下&#xff0c;智能家居领域正经历着深刻变革&#xff0c;AI 神经网络技术的融入成为推动这一变革的关键力量&#xff0c;为家居生活带来了诸多显著变化与提升&#xff0c;本文将几种常见的AI算法应用做了一下总结&#xff0c;希望对物联网从业者有所帮助。 …...

C++基础:SGI STL二级空间配置器内存池

2024/12/14-2024/12/ &#xff1a; 这篇稍微写一下阅读SGI STL内存池的收获。 reference: [1] 深度剖析SGI STL二级空间配置器内存池源码 [2] C内存管理&#xff1a;new / delete 和 cookie [3] 侯捷 内存管理 文章目录 一、写在前面二、二级空间配置器解读2.1 从 malloc 和 fr…...

Python简介

Python 是一种高级编程语言&#xff0c;以其简洁易读的语法和强大的功能而广受欢迎。以下是对 Python 的详细简介&#xff1a; python官网&#xff1a;https://www.python.org/ python中文官网&#xff1a;Python中文网 官网 历史与起源‌&#xff1a; Python 由荷兰人 Guido…...