【机器学习】机器学习与图像识别的融合应用与性能优化新探索

在这里插入图片描述
在这里插入图片描述

文章目录

    • 引言
    • 第一章:机器学习在图像识别中的应用
      • 1.1 数据预处理
        • 1.1.1 数据清洗
        • 1.1.2 数据归一化
        • 1.1.3 数据增强
      • 1.2 模型选择
        • 1.2.1 卷积神经网络
        • 1.2.2 迁移学习
        • 1.2.3 混合模型
      • 1.3 模型训练
        • 1.3.1 梯度下降
        • 1.3.2 随机梯度下降
        • 1.3.3 Adam优化器
      • 1.4 模型评估与性能优化
        • 1.4.1 模型评估指标
        • 1.4.2 超参数调优
        • 1.4.3 增加数据量
        • 1.4.4 模型集成
    • 第二章:图像识别的具体案例分析
      • 2.1 手写数字识别
        • 2.1.1 数据预处理
        • 2.1.2 模型选择与训练
        • 2.1.3 模型评估与优化
      • 2.2 图像分类
        • 2.2.1 数据预处理
        • 2.2.2 模型选择与训练
        • 2.2.3 模型评估与优化
    • 第三章:性能优化与前沿研究
      • 3.1 性能优化
        • 3.1.1 特征工程
        • 3.
        • 3.1.3 模型集成
      • 3.2 前沿研究
        • 3.2.1 深度学习在图像识别中的应用
        • 3.2.2 强化学习在图像识别中的应用
        • 3.2.3 联邦学习与隐私保护
    • 结语

引言

图像识别是计算机视觉领域的一项重要任务,通过分析和理解图像中的内容,使计算机能够自动识别和分类物体、场景和行为。随着深度学习技术的发展,机器学习在图像识别中的应用越来越广泛,推动了自动驾驶、医疗诊断、智能监控等领域的发展。本文将详细介绍机器学习在图像识别中的应用,包括数据预处理、模型选择、模型训练和性能优化。通过具体的案例分析,展示机器学习技术在图像识别中的实际应用,并提供相应的代码示例。
在这里插入图片描述

第一章:机器学习在图像识别中的应用

1.1 数据预处理

在图像识别应用中,数据预处理是机器学习模型成功的关键步骤。图像数据通常具有高维度和复杂性,需要进行清洗、归一化和数据增强等处理。

1.1.1 数据清洗

数据清洗包括去除噪声、裁剪图像和调整图像大小等操作。

import cv2
import numpy as np# 加载图像
image = cv2.imread('image.jpg')# 转换为灰度图像
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 去除噪声
denoised_image = cv2.GaussianBlur(gray_image, (5, 5), 0)# 裁剪图像
cropped_image = denoised_image[50:200, 50:200]# 调整图像大小
resized_image = cv2.resize(cropped_image, (128, 128))
1.1.2 数据归一化

数据归一化可以消除不同图像之间的亮度和对比度差异,使模型更容易学习。

# 归一化图像
normalized_image = resized_image / 255.0
1.1.3 数据增强

数据增强通过对训练图像进行随机变换,如旋转、平移、翻转等,增加数据的多样性,提高模型的泛化能力。

from keras.preprocessing.image import ImageDataGenerator# 创建数据增强生成器
datagen = ImageDataGenerator(rotation_range=20,width_shift_range=0.2,height_shift_range=0.2,horizontal_flip=True
)# 生成增强图像
augmented_images = datagen.flow(np.expand_dims(normalized_image, axis=0), batch_size=1)

1.2 模型选择

在图像识别中,常用的机器学习模型包括卷积神经网络(CNN)、迁移学习模型和混合模型等。不同模型适用于不同的任务和数据特征,需要根据具体应用场景进行选择。

1.2.1 卷积神经网络

卷积神经网络(CNN)是图像识别领域的基础模型,通过卷积层、池化层和全连接层的组合,提取图像的特征,实现图像分类和识别。

from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense# 构建卷积神经网络模型
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(128, 128, 1)))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(10, activation='softmax'))# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
1.2.2 迁移学习

迁移学习通过使用预训练模型,如VGG、ResNet等,在已有的模型基础上进行微调,适用于数据量较小或训练时间有限的场景。

from keras.applications import VGG16
from keras.models import Model
from keras.layers import GlobalAveragePooling2D# 加载预训练模型
base_model = VGG16(weights='imagenet', include_top=False, input_shape=(128, 128, 3))# 冻结预训练模型的层
for layer in base_model.layers:layer.trainable = False# 添加自定义分类层
x = base_model.output
x = GlobalAveragePooling2D()(x)
x = Dense(128, activation='relu')(x)
predictions = Dense(10, activation='softmax')(x)# 构建迁移学习模型
model = Model(inputs=base_model.input, outputs=predictions)# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
1.2.3 混合模型

混合模型结合多个模型的优点,通过集成学习的方法提高模型的稳定性和预测精度。

from keras.models import Model
from keras.layers import concatenate# 构建两个子模型
model1 = Sequential()
model1.add(Conv2D(32, (3, 3), activation='relu', input_shape=(128, 128, 1)))
model1.add(MaxPooling2D((2, 2)))
model1.add(Flatten())model2 = Sequential()
model2.add(Conv2D(64, (3, 3), activation='relu', input_shape=(128, 128, 1)))
model2.add(MaxPooling2D((2, 2)))
model2.add(Flatten())# 合并子模型
combined = concatenate([model1.output, model2.output])
x = Dense(128, activation='relu')(combined)
output = Dense(10, activation='softmax')(x)# 构建混合模型
model = Model(inputs=[model1.input, model2.input], outputs=output)# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

1.3 模型训练

模型训练是机器学习的核心步骤,通过优化算法最小化损失函数,调整模型参数,使模型在训练数据上表现良好。常见的优化算法包括梯度下降、随机梯度下降和Adam优化器等。

1.3.1 梯度下降

梯度下降通过计算损失函数对模型参数的导数,逐步调整参数,使损失函数最小化。

import numpy as np# 定义损失函数
def loss_function(y_true, y_pred):return np.mean((y_true - y_pred) ** 2)# 梯度下降优化
def gradient_descent(X, y, learning_rate=0.01, epochs=1000):m, n = X.shapetheta = np.zeros(n)for epoch in range(epochs):gradient = (1/m) * X.T.dot(X.dot(theta) - y)theta -= learning_rate * gradientreturn theta# 训练模型
theta = gradient_descent(X_train, y_train)
1.3.2 随机梯度下降

随机梯度下降在每次迭代中使用一个样本进行参数更新,具有较快的收敛速度和更好的泛化能力。

def stochastic_gradient_descent(X, y, learning_rate=0.01, epochs=1000):m, n = X.shapetheta = np.zeros(n)for epoch in range(epochs):for i in range(m):gradient = X[i].dot(theta) - y[i]theta -= learning_rate * gradient * X[i]return theta# 训练模型
theta = stochastic_gradient_descent(X_train, y_train)
1.3.3 Adam优化器

Adam优化器结合了动量和自适应学习率的优点,能够快速有效地优化模型参数。

from keras.optimizers import Adam# 编译模型
model.compile(optimizer=Adam(learning_rate=0.001), loss='categorical_crossentropy', metrics=['accuracy'])# 训练模型
model.fit(X_train, y_train, epochs=10, batch_size=32, validation_split=0.2)

1.4 模型评估与性能优化

模型评估是衡量模型在测试数据上的表现,通过计算模型的准确率、召回率、F1-score等指标,评估模型的性能。性能优化包括调整超参数、增加数据量和模型集成等方法。

1.4.1 模型评估指标

常见的模型评估指标包括准确率(Accuracy)、精确率(Precision)、召回率(Recall)和F1-score等。

from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score# 计算评估指标
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred, average='weighted')
recall = recall_score(y_test, y_pred, average='weighted')
f1 = f1_score(y_test, y_pred, average='weighted')print(f'Accuracy: {accuracy}')
print(f'Precision: {precision}')
print(f'Recall: {recall}')
print(f'F1-score: {f1}')
1.4.2 超参数调优

通过网格搜索(Grid Search)和随机搜索(Random Search)等方法,对模型的超参数进行调优,找到最优的参数组合。

from sklearn.model_selection import GridSearchCV# 定义超参数网格
param_grid = {'batch_size': [16, 32, 64],'epochs': [10, 20, 30]
}# 网格搜索
grid_search = GridSearchCV(estimator=model, param_grid=param_grid, cv=5, scoring='accuracy')
grid_search.fit(X_train, y_train)# 输出最优参数
best_params = grid_search.best_params_
print(f'Best parameters: {best_params}')# 使用最优参数训练模型
model = model.set_params(**best_params)
model.fit(X_train, y_train)
1.4.3 增加数据量

通过数据增强和采样技术,增加训练数据量,提高模型的泛化能力和预测性能。

from imblearn.over_sampling import SMOTE# 数据增强
smote = SMOTE(random_state=42)
X_resampled, y_resampled = smote.fit_resample(X_train, y_train)# 训练模型
model.fit(X_resampled, y_resampled)# 预测与评估
y_pred = model.predict(X_test)
1.4.4 模型集成

通过模型集成的方法,将多个模型的预测结果进行组合,提高模型的稳定性和预测精度。常见的模型集成方法包括Bagging、Boosting和Stacking等。

from sklearn.ensemble import VotingClassifier# 构建模型集成
ensemble_model = VotingClassifier(estimators=[('cnn', model1),('vgg', model2)
], voting='soft')# 训练集成模型
ensemble_model.fit(X_train, y_train)# 预测与评估
y_pred = ensemble_model.predict(X_test)

第二章:图像识别的具体案例分析

2.1 手写数字识别

手写数字识别是图像识别中的经典问题,通过分析手写数字图像,识别每个数字的类别。以下是手写数字识别的具体案例分析。

2.1.1 数据预处理

首先,对手写数字数据集进行预处理,包括数据清洗、归一化和数据增强。

from keras.datasets import mnist
from keras.utils import to_categorical# 加载手写数字数据集
(X_train, y_train), (X_test, y_test) = mnist.load_data()# 数据清洗
X_train = X_train / 255.0
X_test = X_test / 255.0# 扩展维度
X_train = np.expand_dims(X_train, axis=-1)
X_test = np.expand_dims(X_test, axis=-1)# 标签编码
y_train = to_categorical(y_train, num_classes=10)
y_test = to_categorical(y_test, num_classes=10)# 数据增强
datagen = ImageDataGenerator(rotation_range=10,width_shift_range=0.1,height_shift_range=0.1,horizontal_flip=False
)
datagen.fit(X_train)
2.1.2 模型选择与训练

选择合适的模型进行训练,这里以卷积神经网络为例。

# 构建卷积神经网络模型
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(10, activation='softmax'))# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])# 训练模型
model.fit(datagen.flow(X_train, y_train, batch_size=32), epochs=10, validation_data=(X_test, y_test))
2.1.3 模型评估与优化

评估模型的性能,并进行超参数调优和数据增强。

# 评估模型
loss, accuracy = model.evaluate(X_test, y_test)
print(f'Accuracy: {accuracy}')# 超参数调优
param_grid = {'batch_size': [16, 32, 64],'epochs': [10, 20, 30]
}
grid_search = GridSearchCV(estimator=model, param_grid=param_grid, cv=5, scoring='accuracy')
grid_search.fit(X_train, y_train)
best_params = grid_search.best_params_
print(f'Best parameters: {best_params}')# 使用最优参数训练模型
model = model.set_params(**best_params)
model.fit(datagen.flow(X_train, y_train, batch_size=32), epochs=10, validation_data=(X_test, y_test))# 数据增强
smote = SMOTE(random_state=42)
X_resampled, y_resampled = smote.fit_resample(X_train.reshape(X_train.shape[0], -1), y_train)
model.fit(X_resampled.reshape(-1, 28, 28, 1), y_resampled)# 预测与评估
y_pred = model.predict(X_test)

2.2 图像分类

图像分类是通过分析图像的内容,将图像分配到预定义的类别中。以下是图像分类的具体案例分析。

2.2.1 数据预处理
from keras.datasets import cifar10
from keras.utils import to_categorical# 加载图像分类数据集
(X_train, y_train), (X_test, y_test) = cifar10.load_data()# 数据清洗
X_train = X_train / 255.0
X_test = X_test / 255.0# 标签编码
y_train = to_categorical(y_train, num_classes=10)
y_test = to_categorical(y_test, num_classes=10)# 数据增强
datagen = ImageDataGenerator(rotation_range=20,width_shift_range=0.2,height_shift_range=0.2,horizontal_flip=True
)
datagen.fit(X_train)
2.2.2 模型选择与训练

选择合适的模型进行训练,这里以迁移学习为例。

# 加载预训练模型
base_model = VGG16(weights='imagenet', include_top=False, input_shape=(32, 32, 3))# 冻结预训练模型的层
for layer in base_model.layers:layer.trainable = False# 添加自定义分类层
x = base_model.output
x = GlobalAveragePooling2D()(x)
x = Dense(128, activation='relu')(x)
predictions = Dense(10, activation='softmax')(x)# 构建迁移学习模型
model = Model(inputs=base_model.input, outputs=predictions)# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])# 训练模型
model.fit(datagen.flow(X_train, y_train, batch_size=32), epochs=10, validation_data=(X_test, y_test))
2.2.3 模型评估与优化

评估模型的性能,并进行超参数调优和数据增强。

# 评估模型
loss, accuracy = model.evaluate(X_test, y_test)
print(f'Accuracy: {accuracy}')# 超参数调优
param_grid = {'batch_size': [16, 32, 64],'epochs': [10, 20, 30]
}
grid_search = GridSearchCV(estimator=model, param_grid=param_grid, cv=5, scoring='accuracy')
grid_search.fit(X_train, y_train)
best_params = grid_search.best_params_
print(f'Best parameters: {best_params}')# 使用最优参数训练模型
model = model.set_params(**best_params)
model.fit(datagen.flow(X_train, y_train, batch_size=32), epochs=10, validation_data=(X_test, y_test))# 数据增强
smote = SMOTE(random_state=42)
X_resampled, y_resampled = smote.fit_resample(X_train.reshape(X_train.shape[0], -1), y_train)
model.fit(X_resampled.reshape(-1, 32, 32, 3), y_resampled)# 预测与评估
y_pred = model.predict(X_test)

第三章:性能优化与前沿研究

3.1 性能优化

3.1.1 特征工程

通过特征选择、特征提取和特征构造,优化模型的输入,提高模型的性能。

from sklearn.feature_selection import SelectKBest, f_classif# 特征选择
selector = SelectKBest(score_func=f_classif, k=10)
X_selected = selector.fit_transform(X, y)
3.

1.2 超参数调优
通过网格搜索和随机搜索,找到模型的最优超参数组合。

from sklearn.model_selection import RandomizedSearchCV# 随机搜索
param_dist = {'n_estimators': [50, 100, 150],'max_depth': [3, 5, 7, 10],'min_samples_split': [2, 5, 10]
}
random_search = RandomizedSearchCV(estimator=RandomForestClassifier(), param_distributions=param_dist, n_iter=10, cv=5, scoring='accuracy')
random_search.fit(X_train, y_train)
best_params = random_search.best_params_
print(f'Best parameters: {best_params}')# 使用最优参数训练模型
model = RandomForestClassifier(**best_params)
model.fit(X_train, y_train)# 预测与评估
y_pred = model.predict(X_test)
3.1.3 模型集成

通过模型集成,提高模型的稳定性和预测精度。

from sklearn.ensemble import StackingClassifier# 构建模型集成
stacking_model = StackingClassifier(estimators=[('cnn', model1),('vgg', model2)
], final_estimator=LogisticRegression())# 训练集成模型
stacking_model.fit(X_train, y_train)# 预测与评估
y_pred = stacking_model.predict(X_test)

3.2 前沿研究

3.2.1 深度学习在图像识别中的应用

深度学习在图像识别中的应用包括卷积神经网络、生成对抗网络和自监督学习等。

3.2.2 强化学习在图像识别中的应用

强化学习通过与环境的交互,不断优化识别策略,在动态目标检测和自动驾驶中具有广泛的应用前景。

3.2.3 联邦学习与隐私保护

联邦学习通过在不交换数据的情况下进行联合建模,保护用户数据隐私,提高图像识别系统的安全性和公平性。

结语

机器学习作为图像识别领域的重要技术,已经在多个应用场景中取得了显著的成果。通过对数据的深入挖掘和模型的不断优化,机器学习技术将在图像识别中发挥更大的作用,推动计算机视觉和人工智能的发展。
在这里插入图片描述

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

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

相关文章

Element中的表格组件Table和分页组件Pagination

简述:在 Element UI 中,Table组件是一个功能强大的数据展示工具,用于呈现结构化的数据列表。它提供了丰富的特性,使得数据展示不仅美观而且高效。而Pagination组件是一个用于实现数据分页显示的强大工具。它允许用户在大量数据中导…

【项目日记(四)】搜索引擎-Web模块

❣博主主页: 33的博客❣ ▶️文章专栏分类:项目日记◀️ 🚚我的代码仓库: 33的代码仓库🚚 🫵🫵🫵关注我带你了解更多项目内容 目录 1.前言2.前端模块2.1页面设计2.2后端交互 3.部署到云服务器4.总结 1.前言 在前面的文…

nginx.conf配置参数解析

nginx配置文件解析 /usr/local/nginx/conf vim /etc/security/limits.conf #配置生效只能重新启动* soft nproc 65535 #能打开的进程最大数是软限制655335,65535是最大值 * hard nproc 65535 * soft nofile 65535 # 进程打开文件数的最大值65535 * hard nof…

ExtendSim在商业和服务行业中的仿真

仿真使企业能够做出明智的、数据驱动的预测,从而指导决策、产生积极成果并建立竞争优势。 精益分析 使用 ExtendSim 中的精益分析方法对欧洲的供应链网络进行建模,一家制造商实现了对最终客户的服务水平提高了 98%,而且现在可以在库存减少约 …

python 实现docx指定语言翻译(不丢失格式)

我这边有个需求需要把一份docx翻译成指定语言的文档并且保存,研究了下,记录。 首先先安装依赖 pip install python-docx1.1.2 googletrans4.0.0rc1 python-docx是用来读取docx的,googletrans使用来翻译的。 googletrans PyPI 这个是官方文…

用Vue3和Rough.js绘制一个交互式3D图

本文由ScriptEcho平台提供技术支持 项目地址:传送门 基于Rough.js和GSAP创建交互式SVG图形卡片 应用场景 本代码适用于需要创建动态交互式SVG图形卡片的场景,例如网页设计、数据可视化和交互式艺术作品。 基本功能 该代码利用Rough.js和GSAP库&…

前端学习(五)CSS浮动与补白

目录&#xff1a; 内容&#xff1a; //设置左右浮动 .left{float:left; } .right{float:right; } /*必须设置不同浮动*/ //创建div <div> <dic class"left">左边</div> <div class"right">右边</div> </div> //设置浮…

地铁车厢火灾3D模拟逃生演习减少了资源损耗和风险

在消防安全领域&#xff0c;为了更好地提升安全实训效果&#xff0c;我们在VR安全培训领域打造了多款消防安全VR模拟实训系统&#xff0c;不仅实现了与现实世界无异的交互操作&#xff0c;更在虚拟空间中超越了现实的限制&#xff0c;模拟出那些现实中难以搭建的复杂场景。 利用…

mysql:部署MySQL 8.0 环境

mysql网址&#xff1a;MySQL 点击 MySQL Community Server 选择合适的版本 选择8.0版本 下载完成&#xff0c;点击mysql-installer-community-8.0.26.0.msi文件&#xff0c;打开安装向导。 选择自定义安装类型 打开“Select Products” 窗口&#xff0c;可以定制需要安装的产…

成都晨持绪:开一家抖音网店到底能不能赚钱

在数字化时代的浪潮中&#xff0c;抖音以其独特的魅力迅速占领了社交媒体的舞台。众多创业者纷纷把目光投向这个新兴平台&#xff0c;企图在短视频的海洋里找到属于自己的财富岛屿。但是&#xff0c;开一家抖音网店到底能不能赚钱呢? 我们要认识到&#xff0c;抖音作为一个流量…

lt6911UXC 国产原装 高性能HDMI2.0转MIPI DSI / CSI芯片方案 提供LT 开发资料包及在线软硬件技术支持!

1.说明 LT6911UXC是一款高性能HDMI2.0到MIPI DSI / CSI转换器&#xff0c;用于VR&#xff0c;智能电话&#xff0c;显示应用。 HDMI2.0输入支持高达6Gbps的数据速率&#xff0c;从而为4k 60Hz视频提供足够的带宽。还支持HDCP2.2进行数据解密。 对于MIPI DSI / CSI输出&#xf…

【路由交换技术】Cisco Packet Tracer基础入门教程(五)

这一期我们来学习端口聚合&#xff0c;这是针对交换机的技术 前言 不知道大家有没有注意到&#xff0c;我们之前的实验在交换机与交换机之间只用一条线连接&#xff0c;像这样 通过今天的学习&#xff0c;我们要用两条线来连接交换机&#xff0c;就像这样&#xff08;为了能…

人力资源中的人工智能:你应该知道的一切

人工智能已经成为行业讨论更广泛的突出话题。人力资源(HR)对于人力资源专业人士来说&#xff0c;了解这门课程也是如此。除了简要介绍什么是人工智能&#xff0c;以及你可能遇到的主要人工智能类型(或者你可能很快就会遇到它&#xff01;)此外&#xff0c;本文还将探讨人工智能…

并发控制-事务的调度、数据不一致问题(更新丢失、脏读、不可重复读)、非串行调度的的可串行化

一、引言 1、数据库管理系统DBMS的事务处理技术实现的另一个主要功能部分是并发控制机制。并发控制机制完成的功能就是对并发执行的事务进行控制&#xff0c;保证事务的隔离性&#xff0c;从而进一步保持数据库的一致性。 2、事务的并发控制就是对并发执行的不同事务中的数据…

Java基础:爬虫

1.本地爬虫 Pattern:表示正则表达式 Matcher:文本匹配器&#xff0c;作用按照正则表达式的规则去读取字符串&#xff0c;从头开始读取。在大串中去找符合匹配规则的子串。 1.2.获取Pattern对象 通过Pattern p Pattern.compile("正则表达式");获得 1.3.…

【安全攻防】网络安全中的序列化与反序列

1.序列化与反序列化 首先要了解序列化与反序列化的定义&#xff0c;以及序列化反序列化所用到的基本函数。 序列化&#xff1a;把对象转换为字节序列的过程称为对象的序列化&#xff0c;相当于游戏中的存档。 PHP中的序列化函数serialize() **serialize()**函数用于序列化对…

VScode使用ssh连接服务器

VScode是一款有丰富插件的编译器&#xff0c;非常好用&#xff01;除非你不会用&#xff0c;因为太过繁琐或着频繁出错导致想把电脑砸了&#xff1b; 插件选择 ssh 配置文件 Host myblablaHostName xxx.xx.xxx.xxxUser username用户名一般是服务器上创建有什么用户名&#xf…

【Vue】使用html、css实现鱼骨组件

文章目录 组件测试案例预览图 组件 <template><div class"context"><div class"top"><div class"label-context"><div class"label" v-for"(item, index) in value" :key"index">…

深入探讨JavaScript中的队列,结合leetcode全面解读

前言 队列作为一种基本的数据结构&#xff0c;为解决许多实际问题提供了有效的组织和处理方式&#xff0c;对于提高系统的稳定性、可靠性和效率具有重要作用&#xff0c;所以理解队列是很重要的。 本文深入探讨JavaScript中的队列这种数据结构,结合leetcode题目讲解 题目直达…

DolphinScheduler部署安装or基础介绍(一)

DolphinScheduler概述 Apache DolphinScheduler是一个分布式、易扩展的可视化DAG工作流任务调度平台。致力于解决数据处理流程中错综复杂的依赖关系&#xff0c;使调度系统在数据处理流程中开箱即用 DolphinScheduler核心架构 DolphinScheduler的主要角色如下&#xff1a; Ma…