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

人工智能任务21-飞蛾火焰优化算法(MFO)在深度学习中的应用

大家好,我是微学AI,今天给大家介绍一下人工智能任务21-飞蛾火焰优化算法(MFO)在深度学习中的应用。飞蛾火焰优化算法(Moth-Flame Optimization, MFO)是一种受自然界中飞蛾向光源趋近行为启发的新型群体智能优化算法。在自然界中,飞蛾使用一种称为“横侧定位”的策略来保持直线飞行,即它们会相对于月亮或星星保持一个恒定的角度飞行。然而,当遇到人造光源时,这种机制会导致飞蛾以螺旋路径逐渐靠近光源。
在这里插入图片描述

一、算法原理

算法描述

  1. 初始化:生成一组随机分布的飞蛾位置,这些位置代表了问题解空间中的候选解。

  2. 火焰更新:将当前最优解作为“火焰”,其他飞蛾则根据火焰的位置调整自己的位置。

  3. 位置更新:飞蛾的位置更新公式如下:
    D i = ∣ X i − X f ∣ D_i = |X_i - X_f| Di=XiXf
    X i ( t + 1 ) = X f − D i ⋅ e β ⋅ t ⋅ cos ⁡ ( 2 π t ) X_i^{(t+1)} = X_f - D_i \cdot e^{\beta \cdot t} \cdot \cos(2\pi t) Xi(t+1)=XfDieβtcos(2πt)
    其中, X i X_i Xi 是第 i i i 只飞蛾的位置, X f X_f Xf 是火焰的位置, D i D_i Di 是飞蛾与火焰之间的距离, β \beta β 是一个常数, t t t 是迭代次数。

  4. 火焰数量更新:随着迭代的进行,火焰的数量逐渐减少,以避免过早收敛到局部最优解。

  5. 边界处理:确保飞蛾的位置在解空间的有效范围内。

优点

  • 全局搜索能力:通过模拟飞蛾的趋光行为,MFO算法能够在解空间中进行有效的全局搜索。
  • 参数少:相比其他优化算法,MFO算法的参数较少,易于实现和调整。
  • 鲁棒性强:能够处理各种复杂优化问题,包括多模态、非线性等问题。

应用领域

  • 工程优化:如结构设计、电路设计等。
  • 机器学习:用于特征选择、超参数调优等。
  • 图像处理:如图像分割、目标检测等。
  • 经济管理:如资源分配、供应链优化等。

二、飞蛾火焰优化算法(MFO)代码

以下是一个MFO算法实现示例:

import numpy as npdef objective_function(x):return np.sum(x2)def initialize_population(n, dim, lb, ub):return lb + (ub - lb) * np.random.rand(n, dim)def update_positions(moths, flames, t, max_iter, lb, ub):n, dim = moths.shapefor i in range(n):for j in range(dim):distance_to_flame = abs(moths[i, j] - flames[i, j])b = 1 t_value = (1 - t / max_iter) * (np.cos(2 * np.pi * t) + 1) / 2 moths[i, j] = flames[i, j] - distance_to_flame * np.exp(b * t_value) * np.cos(2 * np.pi * t_value)moths[i, j] = np.clip(moths[i, j], lb[j], ub[j])return mothsdef moth_flame_optimization(objective_function, n, dim, lb, ub, max_iter):moths = initialize_population(n, dim, lb, ub)flames = np.copy(moths)fitness = np.array([objective_function(moth) for moth in moths])best_index = np.argmin(fitness)best_solution = moths[best_index]best_fitness = fitness[best_index]for t in range(max_iter):flames = moths[np.argsort(fitness)]moths = update_positions(moths, flames, t, max_iter, lb, ub)fitness = np.array([objective_function(moth) for moth in moths])current_best_index = np.argmin(fitness)if fitness[current_best_index] < best_fitness:best_solution = moths[current_best_index]best_fitness = fitness[current_best_index]return best_solution, best_fitness#参数设置
n = 30
dim = 10
lb = -10 * np.ones(dim)
ub = 10 * np.ones(dim)
max_iter = 1000 #运行MFO算法
best_solution, best_fitness = moth_flame_optimization(objective_function, n, dim, lb, ub, max_iter)
print("最佳解:", best_solution)
print("最佳适应度值:", best_fitness)

三、飞蛾火焰优化算法在深度学习中的应用

飞蛾火焰优化算法(MFO)在深度学习中可以应用于多个方面,特别是在优化问题、超参数调优和模型选择等方面。以下是一些具体的应用场景和详细解释:

超参数调优

深度学习模型的性能很大程度上依赖于超参数的选择,如学习率、批大小、正则化参数等。MFO算法可以通过全局搜索来找到最优的超参数组合。

import numpy as np
from sklearn.model_selection import train_test_split
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.optimizers import Adam#定义目标函数:训练模型并返回验证集上的损失 
def objective_function(params):learning_rate, batch_size, regularization = params model = Sequential()model.add(Dense(64, activation='relu', input_shape=(X_train.shape[1],)))model.add(Dense(32, activation='relu', kernel_regularizer=tf.keras.regularizers.l2(regularization)))model.add(Dense(1, activation='sigmoid'))optimizer = Adam(learning_rate=learning_rate)model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['accuracy'])history = model.fit(X_train, y_train, validation_data=(X_val, y_val), epochs=10, batch_size=int(batch_size), verbose=0)val_loss = history.history['val_loss'][-1]return val_loss #初始化数据 
X, y = np.random.rand(1000, 10), np.random.randint(0, 2, 1000)
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)#定义MFO算法
def moth_flame_optimization(objective_function, n, dim, lb, ub, max_iter):moths = initialize_population(n, dim, lb, ub)flames = np.copy(moths)fitness = np.array([objective_function(moth) for moth in moths])best_index = np.argmin(fitness)best_solution = moths[best_index]best_fitness = fitness[best_index]for t in range(max_iter):flames = moths[np.argsort(fitness)]moths = update_positions(moths, flames, t, max_iter, lb, ub)fitness = np.array([objective_function(moth) for moth in moths])current_best_index = np.argmin(fitness)if fitness[current_best_index] < best_fitness:best_solution = moths[current_best_index]best_fitness = fitness[current_best_index]return best_solution, best_fitness #参数设置
n = 30
dim = 3
lb = [0.001, 16, 0.001]
ub = [0.1, 128, 0.1]
max_iter = 50#运行MFO算法
best_solution, best_fitness = moth_flame_optimization(objective_function, n, dim, lb, ub, max_iter)
print("最佳超参数组合:", best_solution)
print("最佳验证损失值:", best_fitness)

特征选择

在深度学习中,特征选择可以帮助减少输入维度,提高模型的泛化能力和训练效率。MFO算法可以通过全局搜索来找到最优的特征子集。

import numpy as np
from sklearn.feature_selection import SelectKBest, f_classif
from sklearn.model_selection import train_test_split
from tensorflow.keras.models import Sequential 
from tensorflow.keras.layers import Dense
from tensorflow.keras.optimizers import Adam#定义目标函数:训练模型并返回验证集上的准确率
def objective_function(features):X_train_selected = X_train[:, features]X_val_selected = X_val[:, features]model = Sequential()model.add(Dense(64, activation='relu', input_shape=(X_train_selected.shape[1],)))model.add(Dense(32, activation='relu'))model.add(Dense(1, activation='sigmoid'))optimizer = Adam(learning_rate=0.01)model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['accuracy'])history = model.fit(X_train_selected, y_train, validation_data=(X_val_selected, y_val), epochs=10, batch_size=32, verbose=0)val_accuracy = history.history['val_accuracy'][-1]return -val_accuracy  # 最小化负准确率#初始化数据
X, y = np.random.rand(1000, 100), np.random.randint(0, 2, 1000)
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)#定义MFO算法
def moth_flame_optimization(objective_function, n, dim, lb, ub, max_iter):moths = initialize_population(n, dim, lb, ub)flames = np.copy(moths)fitness = np.array([objective_function(moth) for moth in moths])best_index = np.argmin(fitness)best_solution = moths[best_index]best_fitness = fitness[best_index]for t in range(max_iter):flames = moths[np.argsort(fitness)]moths = update_positions(moths, flames, t, max_iter, lb, ub)fitness = np.array([objective_function(moth) for moth in moths])current_best_index = np.argmin(fitness)if fitness[current_best_index] < best_fitness:best_solution = moths[current_best_index]best_fitness = fitness[current_best_index]return best_solution, best_fitness#参数设置
n = 30
dim = 100 
lb = [0] * dim
ub = [1] * dim
max_iter = 50#运行MFO算法
best_solution, best_fitness = moth_flame_optimization(objective_function, n, dim, lb, ub, max_iter)
print("最佳特征子集:", best_solution)
print("最佳验证准确率:", -best_fitness)

模型选择

在深度学习中,不同的网络结构和层配置会对模型性能产生显著影响。MFO算法可以通过全局搜索来找到最优的模型结构。

import numpy as np
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.optimizers import Adam
from sklearn.model_selection import train_test_split#定义目标函数:训练模型并返回验证集上的准确率
def objective_function(params):num_layers, num_units = int(params[0]), int(params[1])model = Sequential()model.add(Dense(num_units, activation='relu', input_shape=(X_train.shape[1],)))for _ in range(num_layers - 1):model.add(Dense(num_units, activation='relu'))model.add(Dense(1, activation='sigmoid'))optimizer = Adam(learning_rate=0.01)model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['accuracy'])history = model.fit(X_train, y_train, validation_data=(X_val, y_val), epochs=10, batch_size=32, verbose=0)val_accuracy = history.history['val_accuracy'][-1]return -val_accuracy  # 最小化负准确率#初始化数据
X, y = np.random.rand(1000, 10), np.random.randint(0, 2, 1000)
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)#定义MFO算法
def moth_flame_optimization(objective_function, n, dim, lb, ub, max_iter):moths = initialize_population(n, dim, lb, ub)flames = np.copy(moths)fitness = np.array([objective_function(moth) for moth in moths])best_index = np.argmin(fitness)best_solution = moths[best_index]best_fitness = fitness[best_index]for t in range(max_iter):flames = moths[np.argsort(fitness)]moths = update_positions(moths, flames, t, max_iter, lb, ub)fitness = np.array([objective_function(moth) for moth in moths])current_best_index = np.argmin(fitness)if fitness[current_best_index] < best_fitness:best_solution = moths[current_best_index]best_fitness = fitness[current_best_index]return best_solution, best_fitness #参数设置
n = 30
dim = 2
lb = [1, 16]
ub = [5, 128]
max_iter = 50#运行MFO算法
best_solution, best_fitness = moth_flame_optimization(objective_function, n, dim, lb, ub, max_iter)
print("最佳模型结构:", best_solution)
print("最佳验证准确率:", -best_fitness)

神经网络权重初始化

MFO算法还可以用于优化神经网络的初始权重,以提高模型的收敛速度和最终性能。

import numpy as np
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense 
from tensorflow.keras.optimizers import Adam
from sklearn.model_selection import train_test_split#定义目标函数:训练模型并返回验证集上的准确率
def objective_function(weights):model = Sequential()model.add(Dense(64, activation='relu', input_shape=(X_train.shape[1],), weights=[weights[:640].reshape(10, 64), weights[640:704]]))model.add(Dense(32, activation='relu', weights=[weights[704:2432].reshape(64, 32), weights[2432:2464]]))model.add(Dense(1, activation='sigmoid', weights=[weights[2464:2496].reshape(32, 1), weights[2496:2497]]))optimizer = Adam(learning_rate=0.01)model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['accuracy'])history = model.fit(X_train, y_train, validation_data=(X_val, y_val), epochs=10, batch_size=32, verbose=0)val_accuracy = history.history['val_accuracy'][-1]return -val_accuracy  # 最小化负准确率#初始化数据
X, y = np.random.rand(1000, 10), np.random.randint(0, 2, 1000)
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)#定义MFO算法
def moth_flame_optimization(objective_function, n, dim, lb, ub, max_iter):moths = initialize_population(n, dim, lb, ub)flames = np.copy(moths)fitness = np.array([objective_function(moth) for moth in moths])best_index = np.argmin(fitness)best_solution = moths[best_index]best_fitness = fitness[best_index]for t in range(max_iter):flames = moths[np.argsort(fitness)]moths = update_positions(moths, flames, t, max_iter, lb, ub)fitness = np.array([objective_function(moth) for moth in moths])current_best_index = np.argmin(fitness)if fitness[current_best_index] < best_fitness:best_solution = moths[current_best_index]best_fitness = fitness[current_best_index]return best_solution, best_fitness #参数设置
n = 30
dim = 2497  # 10*64 + 64 + 64*32 + 32 + 32*1 + 1
lb = -1 * np.ones(dim)
ub = 1 * np.ones(dim)
max_iter = 50#运行MFO算法
best_solution, best_fitness = moth_flame_optimization(objective_function, n, dim, lb, ub, max_iter)
print("最佳权重:", best_solution)
print("最佳验证准确率:", -best_fitness)

通过这些代码,可以看到MFO算法在深度学习中的多种应用,从超参数调优到特征选择,再到模型结构优化和权重初始化。希望这些示例能帮助你更好地理解和应用MFO算法。

相关文章:

人工智能任务21-飞蛾火焰优化算法(MFO)在深度学习中的应用

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能任务21-飞蛾火焰优化算法(MFO)在深度学习中的应用。飞蛾火焰优化算法&#xff08;Moth-Flame Optimization, MFO&#xff09;是一种受自然界中飞蛾向光源趋近行为启发的新型群体智能优化算法。在自然界中&a…...

渗透测试工具:SQLmap安装教程及使用

在渗透测试的世界里&#xff0c;SQL注入攻击无疑是最常见且最具威胁的安全漏洞之一。幸运的是&#xff0c;SQLmap 这个强大的自动化工具&#xff0c;能够帮助我们快速识别和利用这些漏洞。如果你也想了解如何用 SQLmap 进行渗透测试&#xff0c;那么这篇文章就是为你准备的&…...

【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第十四节】

ISO 14229-1:2023 UDS诊断服务测试用例全解析&#xff08;CommunicationControl_0x28服务&#xff09; 作者&#xff1a;车端域控测试工程师 更新日期&#xff1a;2025年02月14日 关键词&#xff1a;UDS协议、0x28服务、通信控制、ISO 14229-1:2023、ECU测试 一、服务功能概述…...

WEB安全--SQL注入--INTO OUTFILE

一、INTO OUTFILE 函数语法&#xff1a; SELECT column1, column2, INTO OUTFILE file_path FROM your_table WHERE your_conditions; 使用此方式在SQL注入的过程中可以&#xff1a; 1、上传shell得到数据库的后端的操作权限 2、爆出数据库的信息 二、使用该函数的条件&#…...

【C语言 】C语言 桌游开发数字竞拍(源码)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;专__注&#x1f448;&#xff1a;专注主流机器人、人工智能等相关领域的开发、测试技术。 【C语言 】C语言 桌游开发数字竞拍&#xff08;源码…...

开源赋能,智造未来:Odoo+工业物联网,解锁智能工厂新范式——以真实案例解读制造业数字化转型的降本增效密码

工业物联网的机遇与挑战&#xff1a;为什么企业需要Odoo&#xff1f; 《中国智能制造发展研究报告2023》指出&#xff0c;85%的制造企业已启动数字化转型&#xff0c;但超60%面临“数据孤岛、系统割裂、成本高企”的痛点[1]。传统ERP系统难以实时对接产线设备&#xff0c;而定…...

在分布式场景下可以使用synchronized加锁么?

首先说结论&#xff0c;在分布式系统中&#xff0c;单纯使用 Java 中的 synchronized 关键字是无法满足需求的&#xff0c;下面从 synchronized 的作用原理、在分布式场景下的局限性以及替代方案等方面详细分析。 一、synchronized 的作用原理 在 Java 中&#xff0c;synchron…...

DeepSeek从入门到精通:提示词设计的系统化指南

目录 引言&#xff1a;AIGC时代的核心竞争力 第一部分 基础篇&#xff1a;提示词的本质与核心结构 1.1 什么是提示词&#xff1f; 1.2 提示词的黄金三角结构 第二部分 类型篇&#xff1a;提示词的六大范式 2.1 提示语的本质特征 2.2 提示语的类型 2.2.1 指令型提示词 …...

C# 运算符

总目录 前言 在C#中&#xff0c;运算符是用于执行特定操作的符号。它们可以用于处理变量、常量或其他表达式。C# 提供了丰富的运算符集合&#xff0c;用于执行各种操作&#xff0c;如算术运算、逻辑判断、位操作等。了解这些运算符及其使用方式对于编写高效且功能强大的C#程序…...

duckdb导出Excel和导出CSV速度测试

运行duckdb数据库 D:>duckdb v1.2.0 5f5512b827 Enter “.help” for usage hints. Connected to a transient in-memory database. Use “.open FILENAME” to reopen on a persistent database. 生成模拟数据&#xff0c;10个列&#xff0c;100万行数据&#xff1b; --…...

pt->onnx->rknn(量化) step by step FAQ

文档修订中... 1.pt->onnx 这个转换是在yolov11的docker环境做的转换。非常简单。 #!/usr/bin/env python3 # -*- coding: utf-8 -*- # 获取当前脚本文件所在目录的父目录&#xff0c;并构建相对路径 import os import sys current_dir os.path.dirname(os.path.abspath…...

Apollo 9.0 速度动态规划决策算法 – path time heuristic optimizer

文章目录 1. 动态规划2. 采样3. 代价函数3.1 障碍物代价3.2 距离终点代价3.3 速度代价3.4 加速度代价3.5 jerk代价 4. 回溯 这一章将来讲解速度决策算法&#xff0c;也就是SPEED_HEURISTIC_OPTIMIZER task里面的内容。Apollo 9.0使用动态规划算法进行速度决策&#xff0c;从类名…...

利用AI智能体创建云端文档知识库并集成第三方数据源(上)

许多开发者在管理和集成多种云端的数据源时经常面对各种各样的困难&#xff0c;所以希望能够构建一个聊天机器人来协调这些数据源&#xff0c;针对业务问题并提供全面的答案。本文介绍了一种解决方案&#xff0c;帮助大家开发一个能够从文档和数据库中回答查询的聊天机器人&…...

Cursor AI开发微信小程序教程

1. 准备工作 在开始开发之前&#xff0c;需要完成以下准备工作&#xff1a; 1.1 安装微信开发者工具 前往微信开发者工具官网下载并安装适合操作系统的开发者工具。注册微信小程序账号&#xff0c;登录微信公众平台&#xff08;https://mp.weixin.qq.com&#xff09;&#…...

2025常用的SEO工具有哪些?

在互联网时代&#xff0c;如何让自己的网站或内容脱颖而出&#xff0c;成为许多企业和个人站长们最关注的问题。而在这个过程中&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;作为一种有效的提升网站曝光度和吸引流量的手段&#xff0c;已经成为了网站运营的核心之一。对…...

支持直接升级到21c的 Oracle 数据库版本

一、支持直接升级的版本 可以从以下版本直接升级到新版本&#xff1a; • 19c (所有版本) • 18c (所有版本) • 12c Release 2 (12.2) 升级到最新Oracle数据库版本必须采用的路径取决于当前数据库的版本号。 如果当前的Oracle数据库版本早于12.2 版&#xff0c;则无法直接将…...

线程池-抢票系统性能优化

文章目录 引言-购票系统线程池购票系统-线程池优化 池化 vs 未池化 引言-购票系统 public class App implements Runnable {private static int tickets 100;private static int users 10000;private final ReentrantLock lock new ReentrantLock(true);public void run() …...

回顾Golang的Channel与Select第一篇

深入解析Golang Channel与Select&#xff1a;并发编程的艺术与哲学 一、通信顺序进程&#xff08;CSP&#xff09;的Go实现 Go语言创始人Rob Pike将CSP理论具象化为channel原语&#xff0c;实现了"不要通过共享内存来通信&#xff0c;而要通过通信来共享内存"的哲学…...

乐理笔记(持续更新)

单音与音程 单音&#xff1a;由一个音组成。 音程&#xff1a;由两个音组成&#xff0c;表示两个音之间的音高距离。 如何数音程&#xff1a; 单音程&#xff1a;9 - X&#xff0c;性质相反。例如&#xff0c;9度音程减去某个数&#xff0c;性质会相反。 复音程&#xff1a…...

FastExcel + Java:打造高效灵活的Excel数据导入导出解决方案

作者&#xff1a;后端小肥肠 &#x1f347; 我写过的文章中的相关代码放到了gitee&#xff0c;地址&#xff1a;xfc-fdw-cloud: 公共解决方案 &#x1f34a; 有疑问可私信或评论区联系我。 &#x1f951; 创作不易未经允许严禁转载。 姊妹篇&#xff1a; 基于AOP的数据字典实现…...

【数据结构入门】一、数组

一、数组的概念 数组&#xff1a;一种由相同类型的数据元素组成的基本数据类型&#xff0c;为引用类型 二、数据的顺序 这里很奇怪&#xff0c;讲了一个寻址函数&#xff0c;就是怎样用坐标求该元素的内存地址。说实话我不知道求这个能干什么&#xff0c;但是感觉还挺好玩的…...

编码格式大全解释以及相关编码特性

目录 说明: 1. Base64 Base64编码的字符集通常包括&#xff1a; Base64的工作原理&#xff1a; Base64编码在安全渗透中的应用场景 常见的Base64编码绕过场景 如何防范Base64绕过攻击 2. URL编码&#xff08;Percent Encoding&#xff09; URL编码与安全渗透的关系 示…...

正则表达式(Regular expresssion)

正则表达式 匹配单次 . &#xff1a;匹配任意一个字符 [ ] &#xff1a;匹配[ ]里举例的任意一个字符 /d &#xff1a;匹配数字0-9 /D &#xff1a;匹配非数字 /s &#xff1a;匹配空白或tab建 /S &#xff1a;匹配非空白 /w &#xff1a;…...

JavaScript 发起网络请求 axios、fetch、async / await

目录 fetch 发送 GET 请求&#xff08;fetch&#xff09; 发送 POST 请求&#xff08;fetch&#xff09; 处理后台异常响应 async / await async await 发送 GET 请求&#xff08;async / await fetch&#xff09; 发送 POST 请求&#xff08;async / await fetch&…...

安装OpenJDK21(linux、macos)

文章目录 安装OpenJDK21java21linux下安装配置mac下安装 安装OpenJDK21 java21 封神&#xff01;Java 21正式发布了&#xff0c;迎来了史诗级新特性&#xff0c;堪称版本最强&#xff01;&#xff01;&#xff01; 视频链接&#xff1a;https://www.bilibili.com/video/BV1E8…...

Java面试宝典:说下Spring Bean的生命周期?

Java面试宝典专栏范围&#xff1a;JAVA基础&#xff0c;面向对象编程&#xff08;OOP&#xff09;&#xff0c;异常处理&#xff0c;集合框架&#xff0c;Java I/O&#xff0c;多线程编程&#xff0c;设计模式&#xff0c;网络编程&#xff0c;框架和工具等全方位面试题详解 每…...

k8s向容器内传文件与下载文件

1、下载&#xff1a; kubectl cp <namespace>/<pod-name>:<container-path> <local-path>示例&#xff1a; kubectl cp mynamespace/mypod:/tmp/testfile.txt ./testfile.txt如果 Pod 中有多个容器&#xff0c;可以通过 -c 标志指定容器: kubectl c…...

A4988一款带转换器和过流保护的 DMOS 微步驱动器的使用方式

A4988是一款带转换器和过流保护的 DMOS 微步驱动器&#xff0c;用于驱动双极步进电动机。它支持全、半、1/4、1/8 及 1/16 步进模式&#xff0c;输出驱动性能可达 35 V 及 2 A。其特点包括简单的步进和方向控制接口、可调电位器调节最大电流输出、自动电流衰减模式检测/选择以及…...

Elasticsearch+Logstash+Kibana可视化集群部署

文章目录 1.组件介绍简述2.集群规划3.Es组件部署4.Logstash组件部署5.Kibana组件部署6.Kibana的基础使用 1.组件介绍简述 Elasticsearch&#xff1a;开源实时分布式搜索和分析引擎&#xff0c;支持大规模数据存储和高吞吐量&#xff0c;提供丰富的搜索功能和可扩展性。 Logsta…...

数据结构之二叉树

数据结构之二叉树 数据结构之二叉树1. 什么是二叉树&#xff1f;2. 基本概念3. 二叉树的基本形态4. 二叉树的性质5. 特殊二叉树6. 二叉树的存储7. 二叉树的遍历7.1 前序遍历7.2 中序遍历7.3 后序遍历7.4 层次遍历 8. 应用场景9. 实例代码9.1 示例树结构9.2 输出结果 数据结构之…...

华为云+硅基流动使用Chatbox接入DeepSeek-R1满血版671B

华为云硅基流动使用Chatbox接入DeepSeek-R1满血版671B 硅基流动 1.1 注册登录 1.2 实名认证 1.3 创建API密钥 1.4 客户端工具 OllamaChatboxCherry StudioAnythingLLM 资源包下载&#xff1a; AI聊天本地客户端 接入Chatbox客户端 点击设置 选择SiliconFloW API 粘贴1.3创…...

《图解设计模式》笔记(十)用类来表现

二十二、Command模式:命令也是类 一个类调用某方法,虽然调用结果会反映在对象的状态中,但不会留下工作的历史记录。 若有一个类表示“请进行这项工作”的“命令”,每一项想做的工作就不再是“方法的调用”这种动态处理了,而是一个表示命令的类的实例,即可以用“物”来表…...

Scrapy:任务队列底层设计详解

Scrapy 中队列设计详解 1. 概述 Scrapy 的队列系统是其调度器&#xff08;Scheduler&#xff09;的核心组件之一&#xff0c;负责存储和管理待抓取的请求。Scrapy 实现了两种类型的队列&#xff1a; 内存队列&#xff1a;请求存储在内存中&#xff0c;重启后数据丢失磁盘队列…...

zola + github page,用 workflows 部署

之前的Zola都是本地build之后&#xff0c;再push到github上&#xff0c;这种方式很明显的弊端就是只能在本地编辑&#xff0c;而不能通过github编辑&#xff0c;再pull到本地&#xff0c;缺乏了灵活性。因此将zola用workflows来部署。 repo地址&#xff1a;https://github.com/…...

pytest测试专题 - 1.2 如何获得美观的测试报告

<< 返回目录 1 pytest测试专题 - 1.2 如何获得美观的测试报告 1.1 背景 虽然pytest命令的报文很详细&#xff0c;用例在执行调试时还算比较方便阅读和提取失败信息&#xff0c; 但对于大量测试用例运行时&#xff0c;可能会存在以下不足 报文被冲掉测试日志没法归档 …...

关闭浏览器安全dns解决访问速度慢的问题

谷歌浏览器加载速度突然变慢了&#xff1f;检查安全DNS功能(DoH)是否被默认开启。 谷歌浏览器在去年已经推出安全DNS功能(即DoH) , 启用此功能后可以通过加密的DNS增强网络连接安全性。例如查询请求被加密后网络运营商将无法嗅探用户访问的地址&#xff0c;因此对于增强用户的…...

今日AI和商界事件(2025-02-14)

今日AI大事件主要包括以下几个方面&#xff1a; 一、苹果新品预告 事件概述&#xff1a;苹果CEO蒂姆库克在社交媒体发布7秒视频&#xff0c;配文“准备好迎接家庭的新成员”&#xff0c;并宣布2月19日将有新品发布。知名科技记者马克古尔曼称&#xff0c;新款低端iPhone SE将…...

【黑马点评优化】1-使用JWT登录认证+redis实现自动续期

1-使用JWT登录认证redis实现自动续期 0 前言1 原先的redis实现登录鉴权2 JWT登录认证Redis自动续期2.1 认证&#xff08;identification&#xff09;授权 &#xff08;authorization&#xff09;和鉴权&#xff08;Authorization&#xff09;2.1.1 认证&#xff08;identificat…...

一个让Stable Diffusion更稳定、更易用的Github开源项目

2023除了ChatGPT大火&#xff0c;Stable Diffusion同样也是非常火热&#xff0c;Stable Diffusion是一个Github开源项目&#xff0c;很多爱好者都会本地安装&#xff0c;但面对一些初学者来说&#xff0c;在安装、配置和使用过程中还是会经常出现很多问题&#xff0c;特别不了解…...

Mac之JDK安装

Mac之JDK安装 一.安装 jdk 打开终端输入命令:java -version 查看是否已安装 JDK Oracle 官方下载地址 根据自己Mac 系统安装 查看 Mac 系统&#xff0c;打开中断命令&#xff0c;输入: uname -a Compressed Archive 是压缩文档&#xff0c;下载的是一个 .tar.gz 压缩包 D…...

深入Flask:如何优雅地处理HTTP请求与响应

哈喽,大家好,我是木头左! 本文将带你深入了解如何在Flask中优雅地处理HTTP请求和响应,让你的应用更加高效、安全和用户友好。 创建一个简单的Flask应用 让从创建一个最简单的Flask应用开始: from flask import Flaskapp = Flask(__name__)@app.route(/) def...

kron积计算mask类别矩阵

文章目录 1. 生成类别矩阵如下2. pytorch 代码3. 循环移动矩阵 1. 生成类别矩阵如下 2. pytorch 代码 import torch import torch.nn as nn import torch.nn.functional as Ftorch.set_printoptions(precision3, sci_modeFalse)if __name__ "__main__":run_code 0…...

Redis实现消息队列

什么是消息列队。 消息队列是一种应用间的异步协作机制&#xff0c;同时消息队列中间件是分布式系统中重要的组件&#xff0c;主要解决应用耦合&#xff0c;异步消息&#xff0c;流量削峰等问题。实现高性能&#xff0c;高可用&#xff0c;可伸缩和最终一致性架构。市面上的 M…...

vue+springboot+webtrc+websocket实现双人音视频通话会议

前言 最近一些时间我有研究&#xff0c;如何实现一个视频会议功能&#xff0c;但是找了好多资料都不太理想&#xff0c;最终参考了一个文章 WebRTC实现双端音视频聊天&#xff08;Vue3 SpringBoot&#xff09; 只不过&#xff0c;它的实现效果里面只会播放本地的mp4视频文件&…...

【免费送书活动】《MySQL 9从入门到性能优化(视频教学版)》

本博主免费赠送读者3本书&#xff0c;书名为《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;》。 《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;&#xff08;数据库技术丛书&#xff09;》(王英英)【摘要 书评 试读】- 京东图书 这本书已经公开…...

【设计模式】【行为型模式】命令模式(Command)

&#x1f44b;hi&#xff0c;我不是一名外包公司的员工&#xff0c;也不会偷吃茶水间的零食&#xff0c;我的梦想是能写高端CRUD &#x1f525; 2025本人正在沉淀中… 博客更新速度 &#x1f44d; 欢迎点赞、收藏、关注&#xff0c;跟上我的更新节奏 &#x1f3b5; 当你的天空突…...

1.14学习总结

日常刷题单 刷了题目后&#xff0c;对于排序方法更加熟练&#xff0c;手搓代码的速度也得到了提高。 感觉字符串还不熟练&#xff0c;高精度更是云里雾里&#xff0c;上升空间极大。 同时看见今晚有个入门难度的测试&#xff0c;去练了练手&#xff0c;想看看自己是什么成分&…...

QxOrm生成json

下载Qxorm-1.5版本 使用vs打开项目&#xff0c;直接生成即可&#xff1a; lib目录中会生成dll和lib文件 新建Qt项目使用Qxorm: 将QxOrm中上面三个目录拷贝到新建的Qt项目中 pro文件添加使用QxOrm第三方库 INCLUDEPATH $$PWD/include/ LIBS -L"$$PWD/lib" LIBS…...

伯克利 CS61A 课堂笔记 09 —— Data Abstraction

本系列为加州伯克利大学著名 Python 基础课程 CS61A 的课堂笔记整理&#xff0c;全英文内容&#xff0c;文末附词汇解释。 目录 01 Data Abstraction 数据抽象 Ⅰ Rational Numbers Ⅱ Rational Number Arithmetic 02 Pairs 对 Ⅰ Representing Pairs Using Lists Ⅱ Re…...

高频 SQL 50 题(基础版)

高频 SQL 50 题&#xff08;基础版&#xff09; 查询连接聚合函数排序和分组高级查询和连接子查询高级字符串函数 / 正则表达式 / 子句 查询 链接: link 链接: link 链接: link 链接: link 链接: link 连接 链接: 高频 SQL 50 题基础版_1378. 使用唯一标识码替换员工ID 链接…...