京东供应链创新与实践:应用数据驱动的库存选品和调拨算法提升履约效率

京东供应链创新与实践:应用数据驱动的库存选品和调拨算法提升履约效率

2024 年度总结系列

2024 年 10 月,京东零售供应链技术团队凭借其在库存选品与调拨技术上的创新与实践,荣获运筹与管理学领域的国际顶级奖项 Daniel H. Wagner Prize。本文为您介绍获奖背后的供应链技术创新和落地应用。

00 摘要 

在电商行业中,供应链管理和履约效率对于确保客户满意度至关重要。京东在这一领域一贯表现出色,得益于完善的物流基础设施,超过 90%的自营订单可在 24 小时内完成履约,这一快速交付承诺显著提升了客户满意度,并使京东在竞争中脱颖而出。

今年 10 月的 INFORMS 年会上,京东零售供应链技术团队凭借其在库存选品与调拨技术上的卓越创新与实践,荣获备受瞩目的 Daniel H. Wagner Prize。这是继今年 4 月荣获 2024 INFORMS Prize 之后,时隔半年京东再次获得运筹与管理学领域的国际顶级奖项。美国运筹与管理科学学会(INFORMS, Institute for Operations Research and Management Science)是国际最具影响力的运筹与管理科学学会。

京东零售供应链技术团队提出了一种数据驱动的库存选品和调拨算法,有效提高了京东供应链管理和履约效率。在包含区域配送中心(RDC)和前置配送中心(FDC)的两级配送网络结构下,FDC 可存储的商品范围往往有限,如何确定 FDC 的选品范围,以及如何优化 RDC 到 FDC 的库存调拨策略,对履约效率有直接的影响,也同时影响客户体验。针对库存选品问题,京东通过分析过往订单中的商品关联购买情况,结合需求预测技术,提出了高效的选品算法,来最大化本地订单满足率和 211 达成率,从而提升用户体验。

针对库存调拨问题,京东设计并应用了一种全新的端到端调拨算法,将需求预测、迭代优化和仿真模拟等功能模块集于一体,直接输出现货率最高、仓配成本最低的库存调拨方案,同时使方案具有较强的可解释性,为库存管理过程提供了更清晰、更科学的决策支持。

基于该技术的选品和调拨算法已上线应用,显著降低了京东各仓的缺货损失和履约成本,提高了现货率,每年为超千万订单提供了更快的履约时效。这些都极大提高了京东供应链运营效率和客户服务水平,也彰显了数据驱动的优化技术在解决复杂、大规模供应链问题中的潜力。

01 概述 

京东作为全球最大电商公司之一,通过实施数据驱动的库存选品和调拨算法策略,有效提升了供应链管理和履约效率。利用前沿的人工智能和运筹分析技术,京东优化了其供应链和订单履约流程,从而提高了客户满意度。在电商行业中,供应链管理和履约效率对于确保客户满意度至关重要。京东在这一领域一贯表现出色,得益于完善的物流基础设施,超过 90%的自营订单可在 24 小时内完成履约,这一快速交付承诺显著提升了客户满意度,并使京东在竞争中脱颖而出。

京东采用包含区域配送中心(RDC)和前置配送中心(FDC)的两级配送网络。八个 RDC 是大型仓库园区,储存的 SKU 范围最为全面,定位于服务整个区域。而 FDC 更靠近客户,致力于提供快速履约能力,但 FDC 容量相对较小,要依赖于 RDC 的每日调拨来进行补货。两级配送网络如下图所示。

  

当客户订单下达时,如果 FDC 有足够的库存,则会从相应的 FDC 发货履约。如果 FDC 缺货,则会由 RDC 发货,这会因较长的距离和潜在的延迟交付导致的销售损失而增加额外成本。由于 FDC 对于快速履约的重要性,以及存在容量限制的问题,FDC 的选品以及 FDC 和 RDC 的库存管理和调拨任务对于维持履约效率至关重要。我们的目标是最大化 FDC 履约率,最小化 FDC 和 RDC 的销售损失,并减少库存调拨成本。

该问题的难点有以下几个:(1)单个 RDC 服务于多个 FDC,且 RDC 还有其自己的服务区域来进行订单履约,因此需要非常精细的选品和调拨策略,来平衡 RDC 的自身需求和各 FDC 的库存转移。这其中还涉及各种业务约束,如 FDC 的容量限制、物流能力和销售计划。(2)京东管理着海量、全类别的 SKU,要求算法具备通用性和可扩展性。(3)FDC 的需求相对稀疏,波动性大,增加了需求预测的复杂性。(4)选品和调拨决策必须考虑未来的不确定性,以适配长期的销售计划,并减少意外事件带来的风险。(5)预测算法需要具备可解释性,从而提升算法结果的采纳度,对于协调供应链上下游各环节至关重要。

为应对这些挑战,本文提出了一个综合优化模型,目的在于最大化本地订单履约率,最小化 FDC 和 RDC 的销售损失和库存调拨成本,同时满足各种业务约束。由于问题的复杂性,即使是具有确定性需求的静态版本也是 NP-complete 问题。此外,由于 RDC 管理的 SKU 规模有数百万,问题规模相当庞大,因此我们将问题分解为两个子问题:库存选品问题和库存调拨问题。选品问题决定了哪些 SKU 应在 FDC 存储,这反过来影响调拨问题中的仓库容量使用和运输需求。选品决策也会影响 FDC 理论可实现的服务水平。此外,选品方案的质量直接影响调拨方案的质量。整个决策流程如下图所示。

  

在选品子问题中,我们需要决定某特定时期(例如一周)内在 FDC 存储哪些 SKU,从而在满足容量限制的前提下,最大化 FDC 的订单履约数量。该子问题面临两个关键挑战:一是预测未来订单结构非常困难;二是即使有精确的未来订单信息,对应的整数规划问题也是 NP-hard 的。此优化问题可视为在容量限制下最大化超模函数的特殊情况,通常难以直接求解。为此,我们提出了两种启发式算法:ML-Top-K 和 Reverse-Exclude。ML-Top-K 算法利用机器学习技术预测购买每个 SKU 的订单数量,并根据这些预测选择前 K 种产品。Reverse-Exclude 则根据历史订单频率,用反复迭代的方式依次淘汰最不畅销的 SKU。数值实验表明,与以前的方法相比,这两种方法均实现了更高的订单满足率。

在确定了每个 FDC 中存储哪些 SKU 后,第二个子问题是库存调拨问题,即确定从 RDC 到 FDC 的每日库存转移量,以最小化总销售损失和库存调拨成本。本文将此问题建模为周期性库存盘点问题。传统的两级库存判断问题大多是供应商决策各零售商之间分配可用库存,这与我们的问题不同,因为供应商(RDC)还需要为自身分配足够的库存。由于需求不确定性、FDC 和 RDC 之间的相互作用、多个时间段内库存决策的相互依赖性等因素,以及各种容量和业务约束,该子问题具有挑战性。为此,本文提出了一种新的多任务端到端学习框架。由于其多任务和自学习能力以及可解释性,该框架优于以前的算法。下文中会提供进一步的细节。

与以往文献和行业其他方案相比,本文的工作有以下几个主要创新点:

•本文提出了一个用于联合库存选品和调拨的综合框架,目标在于提高 FDC 订单满足率并最小化因 FDC 和 RDC 缺货而导致的销售损失。

•针对选品问题,本文设计了两种新算法,最大化 FDC 订单满足率,解决了订单结构预测和优化复杂性的问题。其中以最大化 FDC 订单履约率为目标的选品算法,在以往文献中研究较少。

•针对调拨问题,本文开发了一种全新的端到端预测和调拨决策算法。该算法结合预测与数字孪生仿真系统,自学习最佳目标库存(TI)和安全库存(SS)水平。与以往仅依赖历史数据进行库存标记和学习的算法不同,本文的方法结合预测和仿真结果来最小化总损失。该学习框架具有以下几个优势:

◦多任务学习。该框架使网络能够同时学习预测、补货和仿真任务,促进任务之间的信息共享和知识转移,可显著提高库存管理的效率和准确性。

◦自学习。该框架引入了前沿的自学习机制,来进行自动数据标记,不再需要开发以往用于数据标记的复杂运筹算法。这显著提升了库存管理中样本处理的效率和准确性。

◦可解释性。本文模型的模块化结构增强了可解释性,与传统的“黑盒”形式的深度学习方法相比,提供了更好的库存管理过程中的洞察,从而让决策结果更直观、更容易被采纳。

本文提出的选品和调拨算法已在京东的库存管理实践中得到测试和应用。数值实验表明,联合选品和调拨优化能够有效满足客户需求,有效提高 FDC 订单满足率。应用这些算法后,库存决策系统大幅提高了运营效率和客户体验,主要收益包括降低库存持有和调拨成本,提高库存现货率,以及增加本地订单履约率,有效提升了消费者的 211 时效体验。

02 选品算法 

2.1 选品问题定义

首先给出选品问题的定义。选品的任务是在全量自营 SKU 中,为每个 FDC 选出一组畅销 SKU 集合,总数量不超过 K,以满足 FDC 的容量限制。我们的目标是最大化 FDC 能够整单履约的订单数量。该问题可以用整数规划模型来描述,如下图。

其中,N 是全量 SKU 集合,O 为订单类型集合,Do 是一段历史期间内购买订单类型 o 的订单数量。决策变量 xi 是 0-1 变量,表示 SKU i 是否包含在选品清单中,辅助决策变量 yo 是 0-1 变量,表示订单类型 o 是否可以由 FDC 整单履约。第一个约束表示选品清单中最多只能包含 K 个不同 SKU。第二个约束表示只有当订单中的所有 SKU 都在选品清单中时,该订单才能由 FDC 整单履约。

直接求解这个问题是很有挑战性的。首先,由于电商场景中大量长尾商品和需求带来的高维稀疏数据、需求的波动性和复杂的产品依赖关系,很难精准预测未来订单结构。其次,即使给定了订单结构,简化为确定性问题,该问题也是 NP 难的,对于京东这样的规模,求解精确解在计算上是不现实的。

2.2 ML-Top-K 算法

为解决选品问题,我们首先设计了基于机器学习预测模型的 ML-Top-K 算法,即通过预测每个 SKU 在各 FDC 覆盖范围内的销量,选择销量排名前 K 的 SKU 作为选品清单。

该方案的思路较为简单、直观。实现方式上,ML-Top-K 算法的输入包括不同层级的历史订单数量:SKU 层级、SKU 类别、品牌、全国 SKU 层级,以及促销和营销活动信息。算法的核心结构包含季节性和趋势模块,用于学习基线模式。这些模块的输出通过两个并行路径进行处理:一个用于深度特征提取的时间卷积网络(TCN),以及一个用于多层次特征提取的多层感知机(MLP)。TCN 的输出特征与 MLP 的促销预测通过元素级乘法结合,然后通过另一个 MLP 生成最终的订单数量预测。基于此预测,算法选择预测订单数量最高的前 K 个 SKU 作为选品结果。

可以证明,当单品订单比例较高时,基于贪心策略的 ML-Top-K 算法表现良好。但是,我们也通过实际案例发现,当多品订单影响显著时,该算法可能表现较差。原因在于,订单数量高的产品可能经常与订单数量低的不同产品一起出现,因此当关联购买情形较多时,仅选择销量前 K 的 SKU 无法保证较高的 FDC 整单满足率。

2.3 Reverse-Exclude 算法

为解决关联购买场景下 ML-Top-K 算法性能不佳的问题,我们设计了第二种启发式方法,称为 Reverse-Exclude 算法。该算法采用逆向思维,用汰品的方式来过滤出最终的选品方案。具体来说,Reverse-Exclude 算法通过从全部 SKU 集合中逐步淘汰订单频率最低的 SKU,来得到最终的选品结果。该方法在淘汰 SKU 的同时,也删除掉包含该 SKU 的订单,因此可确保所有剩余订单可以通过选品结果中的 SKU 来满足。Reverse-Exclude 算法的步骤如下:

1. 初始化:被淘汰的 SKU 集合 E,初始化为空集。

2. 当剩余 SKU 数量大于 K(即 |N\E| > K)时:

- 计算每个剩余 SKU 的订单影响力 fi,即包含该 SKU 的订单需求总和。

- 按照 fi 升序排序 SKU,并选择 fi 最小的一批 SKU。批量大小是动态调整的,离目标 K 远时较大,接近 K 时减小至 1。

- 将选中的 SKU 添加到淘汰集合 E 中,并将所有包含该 SKU 的订单需求设为 0。

- 重复步骤 2,直到 |N\E| = K

3. 返回剩余的 SKU,即 N\E 作为最终的选品结果。

03 调拨算法 

3.1 调拨问题定义

在调拨问题中,我们考虑一个具有随机需求、无提前期、多周期库存分配问题。我们假设该问题是针对单个 SKU 在离散周期 1, 2, ..., T 上的有限时间范围内进行的,也就是说,我们考虑未来 T 天的 FDC 库存调拨方案。

在京东的两层网络中,每个 FDC 只能由一个 RDC 补货。在每个补货调拨周期,我们要决定每个 FDC 的补货数量。当客户订单提交时,系统会依次尝试 FDC 和 RDC,并决定是由 FDC 或 RDC 来履约这些订单。每个 FDC 都有确定的覆盖收货城市范围,该范围内的订单只能由该 FDC 及其对应的 RDC 履约(本文暂不考虑平行支援的场景)。由于库存和履约决策在不同 RDC 区域之间是独立的,我们的决策范围只需考虑一个 RDC 及其下属各 FDC。在定期盘点库存策略中,我们的任务是要确定每个周期 t,对于每个 SKU,每个 FDC 的库存调拨数量。目标是在 T 个周期内最小化总的销售损失(包括 RDC 和 FDC 的销售损失)以及库存调拨成本。

该问题仍可以用整数规划模型来建模,但求解该问题具有多方面的挑战:首先,准确预测 FDC 在多个周期内的需求及其分布是很复杂的任务,尤其是考虑到 FDC 订单需求的波动性和长尾性,以及京东需要在多个 DC 管理海量的商品。此外,RDC 的补货数量具有不确定性,这需要根据当时的系统状态进行实时决策。即便在需求信息完美的情况下,针对大量 SKU 求解线性规划也是计算密集型的任务,往往需要耗费数小时。在京东的实际应用中是无法接受如此漫长的求解过程的,因为持续的订单可能会改变库存状态,从而导致结果出炉时可能已经不再是最优解。这些问题也突显了传统优化方法在求解大规模、动态的库存调拨问题中的局限性。

3.2 端到端调拨算法

为了克服调拨问题的这些挑战,实现快速、针对性的决策,我们提出了一种端到端学习算法,将需求预测、库存优化和输出决策整合到一个统一的框架中,能够快速响应变化的条件,同时适配电商库存调拨问题的大规模和高度复杂性。

端到端调拨算法框架通过多任务、多步骤的决策过程优化库存分配和调拨,通过充分利用安全库存,将有限的库存分配给最急需的 FDC,同时最小化 RDC 和 FDC 的销售损失和调拨成本。对于 RDC,先基于本地需求计算安全库存,以确保在每个补货周期内有足够的库存来应对波动。整个计算流程现基于可解释的需求预测模型,生成初始安全库存(SS)和目标库存(TI)结果。随后通过仿真机制,以最小化区域销售损失并最大化区域和 FDC 的满意度。仿真的存在,有助于减少由于预测误差导致的调拨决策偏差。

从学习结构的角度来看,模型通过将每个 RDC 及其关联的 FDC 聚合为一个实例,而不是单独解决每个配送中心的问题,从而在区域层面进行整体优化。这种方法确保了更全面的优化,能够获取整个网络的相互依赖性。

本文的模型与以往端到端文献中简单的单点决策不同,而是采用了一个过程导向的、多周期的决策框架。这种方法将每个决策视为更大链条的一部分,受到过去决策的影响,并影响未来结果。为了捕捉这些复杂的时间关系,并利用先前模型的信息,在整体端到端算法中使用了递归神经网络(RNN)架构,如图所示。

该框架由相互连接的模块组成,每个模块均为一个深度学习模型,处理每日输入,并输出库存管理决策。每个模块的输入来源于两个方面:(1)历史销售数据、营销和促销因素以及调拨提前期;(2)前一个模块的初始库存状态,包括起始库存、补货和从 RDC 到 FDC 的调拨量。模块输出仿真后的安全库存 SS 和目标库存水平 TI、销售预测,以及 RDC 和所有 FDC 的销售仿真。

如上图所示,每个模块的内部结构包括三个主要组件:

1. 预测模块:用于生成基线预测、促销影响估计,并根据高维销售数据(如 SKU 粒度、类别粒度、品牌粒度和全国 SKU 粒度的历史销售)进行调整。

2. 目标库存和安全库存生成模块:结合提前期、销售预测、历史实际销售和历史预测准确性来确定最佳库存水平。该模块使用多层感知机(MLP)和 Transformer 结构处理输入,并生成目标库存和安全库存值。

3. 仿真模块:在 RDC 范围内运行,基于生成的安全库存和目标库存分配库存。它优先满足 RDC 本地需求,然后再分配给 FDC。分配后,模型仿真每日销售和库存消耗,记录履约情况和销售损失。仿真模块的输出包括仿真后的安全库存和目标库存水平、预测期的销售预测以及 RDC 和所有 FDC 的每日销售情况仿真。

在训练阶段,模型通过最小化两个主要损失函数来优化迭代:(1)预测误差,定义为预测销售与实际销售之间的差异;(2)仿真中的销售损失,包括 RDC 和 FDC 的销售损失、FDC 调拨成本,以及库存水平低于安全库存的惩罚项。

在推理阶段,模型生成未来数日的销售预测,并为未来的补货决策推荐最佳目标库存和安全库存水平。这种方法实现了动态、前瞻性的库存管理,能够适应不断变化的需求模式和供应链条件。通过提供主动的建议,模型能够高效地预见和响应市场变化,优化整个网络的库存水平。

04 实验与落地 

下面介绍上述算法基于京东真实数据的实验结果,将本文中的算法与原有方法进行比较,并简要介绍相关模型的上线落地过程及影响。

4.1 选品算法实验

选品算法实验中,与线上原有方法相比,ML-Top-K 算法和 Reverse-Exclude 算法分别将本地订单满足率提升了 0.54pp 和 0.27pp,尽管这一数值看上去不大,但换算成数量,相当于每天 10 万个订单,是一个十分可观的数字。进一步,将两种算法的选品结果按照多路召回的思想进行结合,可以相比原有方法提升满足率 2.2pp,是非常显著的提升幅度。这一提升也显示了机器学习和运筹技术在库存管理中的实际效果。

4.2 调拨算法实验

调拨算法实验中,我们考虑 2 个 RDC,每个覆盖 6 个 FDC。实验关注三个关键性能指标:FDC 需求满足率(FDC Sat.)、区域销售损失(Reg. Loss)和损失率。损失率的定义为区域销售损失除以 FDC 履约的销售量,用来衡量订单履约的效率以及销售损失的程度,因为考虑到有限的库存量,从 RDC 到 FDC 的库存调拨可能导致区域内的销售损失。

下面将本文提出的新端到端算法与京东线上原有的两种算法进行比较:

1. 基于仿真的参数搜索:通过结合需求预测的仿真,通过搜索的方式确定合适的调拨策略参数。

2. 线性规划:基于需求预测、安全库存约束和其他业务需求,为每个 SKU 求解线性规划模型,以确定库存调拨决策。

上表中比较了三种算法的性能。新端到端算法在 FDC 需求满意率上表现优异,达到 58.59%,相比参数搜索的 57.55%和线性规划的 57.12%有显著提升,至少提升了 1.05pp。虽然新方法在区域销售损失上略有增加(2.86%对比线性规划的 2.78%),但损失率保持在 17.80%,与参数搜索方法相当。FDC 满足率的显著提升表明,新方法能够显著增强本地订单履约能力,提升 211 订单的占比,从而极大提升客户满意度。

4.3 落地与影响

基于选品和调拨算法,我们开发了智能供应链决策支持系统。该系统已上线运行,覆盖所有 8 个 RDC,每个 RDC 覆盖 5 到 13 个 FDC。该系统上线以来,已产生明显收益,FDC 的库存持有成本和资金利用成本每年减少数千万元。此外,库存调拨成本每年节省上亿元人民币。库存现货率也提高了 0.85%,本地订单满足率提高了 2.19%,211 订单占比上升了 1.44%,给上千万订单提供了更快的履约时效和更好的客户体验。这些收益展示了算法能力在优化运营和资源分配方面的影响。

05 结论 

本文介绍了京东供应链管理中的 FDC 选品和调拨的算法模型探索。对于选品问题,我们开发了平衡计算可行性与性能的新算法,在本地订单满足率上优于以往方法。对于调拨问题,我们提出了结合预测、优化和仿真的新端到端算法,在相同损失率的前提下,显著提升了 FDC 满足率。本文中的算法已成功部署在京东的供应链管理系统中,显著提高了运营效率和客户服务水平。本文的算法模型也展示了数据驱动的优化技术在解决复杂、大规模供应链问题中的潜力。

此次荣获 Wagner Prize,是京东供应链技术和效能在国际上获得的又一次认可。未来,我们将继续致力于通过技术创新提升供应链效率和用户体验,努力践行“技术为本,让生活更美好”这一使命。

本文作者:申作军,孙硕,戚永志,胡浩,康宁轩,张建申,王鑫,林晓明 (京东零售供应链技术团队)

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

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

相关文章

大数据技术-Hadoop(二)HDFS的介绍与使用

目录 1、HDFS简介 1.1 什么是HDFS 1.2 HDFS的优点 1.3、HDFS的架构 1.3.1、 NameNode 1.3.2、 NameNode的职责 1.3.3、DataNode 1.3.4、 DataNode的职责 1.3.5、Secondary NameNode 1.3.6、Secondary NameNode的职责 2、HDFS的工作原理 2.1、文件存储 2.2 、数据写…

在 C# 中优化 JPEG 压缩级别和文件大小

此示例可让您检查不同 JPEG 压缩级别的图像质量。使用文件菜单的打开命令加载图像文件。然后使用“JPEG 压缩指数 (CI)”组合框选择压缩级别。程序将图像保存到具有该压缩级别的临时文件中,并显示生成的图像和文件大小。 该程序的关键是以下SaveJpg方法,…

Pandas02

Pandas01: Pandas01 文章目录 内容回顾1 数据的读取和保存1.1 读写Excel文件1.2 读写CSV1.3 读写Mysql 2 DataFrame 数据查询2.1 筛选多列数据2.2 loc 和 iloc2.3 query查询方法和isin 方法 3 DataFrame增 删 改数据3.1 增加一列数据3.2 删除一行/一列数据3.3 数据去重3.4 数据…

Flink定时器

flink的定时器都是基于事件时间(event time)或事件处理时间(processing time)的变化来触发响应的。对一部分新手玩家来说,可能不清楚事件时间和事件处理时间的区别。我这里先说一下我的理解,防止下面懵逼。…

Docker中的分层(Layer)

docker中有分层的概念,如下图所示 上面是容器层(Container layer),下面是镜像层(Image layers)。 镜像层的内容是静态的,读和写的操作,都是在容器层发生,专门为容器的读…

RoboMIND:多体现基准 机器人操纵的智能规范数据

我们介绍了 RoboMIND,这是机器人操纵的多体现智能规范数据的基准,包括 4 个实施例、279 个不同任务和 61 个不同对象类别的 55k 真实世界演示轨迹。 工业机器人企业 埃斯顿自动化 | 埃夫特机器人 | 节卡机器人 | 珞石机器人 | 法奥机器人 | 非夕科技 | C…

python报错ModuleNotFoundError: No module named ‘visdom‘

在用虚拟环境跑深度学习代码时,新建的环境一般会缺少一些库,而一般解决的方法就是直接conda install,但是我在conda install visdom之后,安装是没有任何报错的,conda list里面也有visdom的信息,但是再运行代…

C语言性能优化:从基础到高级的全面指南

引言 C 语言以其高效、灵活和功能强大而著称,被广泛应用于系统编程、嵌入式开发、游戏开发等领域。然而,要写出高性能的 C 语言代码,需要对 C 语言的特性和底层硬件有深入的了解。本文将详细介绍 C 语言性能优化的背后技术,并通过…

go多版本管理工具g win安装配置

go多版本管理工具g 基本介绍仓库安装配置配置环境配置系统变量配置path变量测试使用配置完环境变量之后,打开终端进行测试使用查看 g 的环境变量配置,g env 为环境变量配置,g -v为当前版本信息查看可下载列表下载安装指定版本go,并…

PlasmidFinder:质粒复制子的鉴定和分型

质粒(Plasmid)是一种细菌染色体外的线性或环状DNA分子,也是一种重要的遗传元素,它们具有自主复制能力,可以在细菌之间传播,并携带多种重要的基因(如耐药基因与毒力基因等)功能。根据质粒传播的特性&#xf…

细说STM32F407单片机通过IIC读写EEPROM 24C02

目录 一、操作说明 二、工程配置 1、时钟、DEBUG、GPIO、USART6、NVIC、Code Generator 2、 IIC2 (1)Master Features组,主设备参数 (2)Slave Features组,从设备参数 三、软件设计 1、KELED 2、E…

神经网络-Inception

Inception网络是由Google开发的一种深度卷积神经网络架构,旨在解决计算机视觉领域中的图像分类和物体识别任务。 Inception网络最初在2014年被提出,并在ImageNet图像分类挑战赛上取得了很好的结果。其设计灵感来自于模块化的思想,将不同尺度…

PyTorch Instance Normalization介绍

Instance Normalization(实例归一化) 是一种标准化技术,与 Batch Normalization 类似,但它对每个样本独立地对每个通道进行归一化,而不依赖于小批量数据的统计信息。这使得它非常适合小批量训练任务以及图像生成任务(如风格迁移)。 Instance Normalization 的原理 对每…

国内独立开发者案例及免费送独立开发蓝图书

独立开发者在国内越来越受到关注,他们追求的是一种自由且自给自足的工作状态。 送这个: 少楠light(Flomo、小报童、如果相机):他们是独立开发者的典范,不仅开发了多款产品,还坚信“剩者为王”…

【小程序】自定义组件的data、methods、properties

目录 自定义组件 - 数据、方法和属性 1. data 数据 2. methods 方法 3. properties 属性 4. data 和 properties 的区别 5. 使用 setData 修改 properties 的值 自定义组件 - 数据、方法和属性 1. data 数据 在小程序组件中,用于组件模板渲染的私有数据&…

MATLAB用find函数结合all,any函数高效解决问题

如本节中最后提到的问题,我们输出后还需要判断,不是特别的一目了然,这时候我们可以再加上 f i n d find find函数直接标记序号并输出。首先我们先来了解 f i n d find find的用法, f i n d ( a ) find(a) find(a)表示将矩阵或向量…

2022博客之星年度总评选开始了

作者简介:陶然同学 专注于Java领域开发 熟练掌握Java、js等语言的“Hello World” CSDN原力计划作者、CSDN内容合伙人、Java领域优质作者、Java领域新星作者、51CTO专家、华为云专家、阿里云专家等 🎬 陶然同学🎥 由 陶然同学 原创&#…

vue2 升级为 vite 打包

VUE2 中使用 Webpack 打包、开发,每次打包时间太久,尤其是在开发的过程中,本文记录一下 VUE2 升级Vite 步骤。 安装 Vue2 Vite 依赖 dev 依赖 vitejs/plugin-vue2": "^2.3.3 vitejs/plugin-vue2-jsx": "^1.1.1 vite&…

20241227在ubuntu20.04.6系统中,如何用watch命令每秒钟调用nvidia-smi来监控GPU

watch -n 1 nvidia-smi 20241227在ubuntu20.04.6系统中,如何用watch命令每秒钟调用nvidia-smi来监控GPU 2024/12/27 17:04 缘起:在ubuntu20.04.6系统中,使用M6000显卡来跑whisper,显存拉满/占用巨大,但是CPU占用比低&…

[江科大STM32] 第五集STM32工程模板——笔记

保存,进去选芯片型号,我们是F10C8T6 再添加一些文件,自己看路径 然后去 复习这三文件 打开KEIL add existing那个,添加已经存在的文件 还有5个.c.h文件也要添加进来 回到KEIL 点击旁边的settings 如果你用寄存器开发就建到这里就可…