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

机器学习系列----介绍前馈神经网络和卷积神经网络 (CNN)

前言


  在深度学习领域,神经网络是一种模拟人脑神经元结构和功能的数学模型。它通过大量的层次结构和参数调整来实现模式识别、分类、回归等任务。常见的神经网络结构有前馈神经网络(Feedforward Neural Networks,简称 FNN)和卷积神经网络(Convolutional Neural Networks,简称 CNN)。这两种网络模型在图像处理、语音识别等多个领域取得了巨大的成功。

本篇博客将详细介绍前馈神经网络和卷积神经网络的基本原理,并通过代码示例进一步帮助理解。

一、前馈神经网络(Feedforward Neural Networks)

1.1 前馈神经网络概述


前馈神经网络(FNN)是一种最基本的神经网络结构,信息在网络中按单向流动,没有任何循环或反馈连接。它由输入层、若干隐藏层和输出层组成。

输入层:接收原始数据,传递给网络中的隐藏层。
隐藏层:通过神经元和激活函数处理数据,捕捉数据中的特征。
输出层:输出网络最终的预测结果。
FNN 是最简单的神经网络结构,通常用于分类和回归问题。

1.2 FNN的工作原理

输入数据通过输入层传入网络。
每一层的神经元接收上一层的输出并进行加权求和。
加权和通过激活函数进行非线性变换,生成该层的输出。
最后一层输出结果,即模型的预测值。

1.3 代码示例:用 TensorFlow 构建前馈神经网络

下面是一个简单的前馈神经网络实现,用于分类任务(例如 MNIST 手写数字识别):

import tensorflow as tf
from tensorflow.keras import layers, models
from tensorflow.keras.datasets import mnist
from tensorflow.keras.utils import to_categorical# 加载MNIST数据集
(x_train, y_train), (x_test, y_test) = mnist.load_data()# 数据预处理
x_train = x_train.reshape((x_train.shape[0], 28, 28, 1)).astype('float32') / 255
x_test = x_test.reshape((x_test.shape[0], 28, 28, 1)).astype('float32') / 255
y_train = to_categorical(y_train, 10)
y_test = to_categorical(y_test, 10)# 创建前馈神经网络模型
model = models.Sequential([layers.Flatten(input_shape=(28, 28, 1)),   # 将28x28的图片展开成一维向量layers.Dense(128, activation='relu'),      # 隐藏层,128个神经元layers.Dropout(0.2),                       # Dropout层,防止过拟合layers.Dense(10, activation='softmax')     # 输出层,10个神经元,代表10类
])# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])# 训练模型
model.fit(x_train, y_train, epochs=5, batch_size=64)# 测试模型
test_loss, test_acc = model.evaluate(x_test, y_test)
print(f"Test accuracy: {test_acc}")

1.4 解释

  1. Flatten:将28x28的输入图像展平为一个784维的向量,输入到神经网络中。
  2. Dense:创建一个全连接层,包含128个神经元。激活函数使用 ReLU,使得网络能够学习非线性关系。
  3. Dropout:防止过拟合,训练过程中随机丢弃一些神经元。
  4. Softmax:输出层的激活函数,适用于多分类问题,将网络的输出转化为概率分布。

二、卷积神经网络(Convolutional Neural Networks)

2.1 卷积神经网络概述

卷积神经网络(CNN)是一种专门用于处理具有网格结构的数据的深度学习算法,最常用于图像处理任务。CNN 通过卷积层、池化层等操作提取图像中的局部特征,并最终进行全局分类或回归。

2.2 CNN的工作原理

  1. 卷积操作:卷积层通过多个卷积核(filter)对输入图像进行卷积操作,提取局部特征。卷积操作的结果是一个特征图(feature map)。
  2. 池化操作:池化层用于对特征图进行下采样,通常使用最大池化(Max Pooling)或者平均池化(Average Pooling)。
  3. 全连接层:池化后得到的特征图被展平成一维向量,然后传入全连接层,进行进一步处理,输出最终预测结果。

2.3 代码示例:用 TensorFlow 构建卷积神经网络

以下是一个卷积神经网络的实现,用于处理 MNIST 手写数字识别任务:

  1. 卷积层(Convolutional Layer):通过卷积核对输入图像进行卷积操作,从而提取局部特征。
  2. 池化层(Pooling Layer):对卷积层输出进行下采样,减小图像的尺寸,并减少计算量。
  3. 全连接层(Fully Connected Layer):连接卷积层和输出层,对特征进行整合并输出最终的预测结果。
  4. 卷积操作:卷积层通过多个卷积核(filter)对输入图像进行卷积操作,提取局部特征。卷积操作的结果是一个特征图(feature map)。
  5. 池化操作:池化层用于对特征图进行下采样,通常使用最大池化(Max Pooling)或者平均池化(Average Pooling)。
  6. 全连接层:池化后得到的特征图被展平成一维向量,然后传入全连接层,进行进一步处理,输出最终预测结果。

import tensorflow as tf
from tensorflow.keras import layers, models
from tensorflow.keras.datasets import mnist
from tensorflow.keras.utils import to_categorical# 加载MNIST数据集
(x_train, y_train), (x_test, y_test) = mnist.load_data()# 数据预处理
x_train = x_train.reshape((x_train.shape[0], 28, 28, 1)).astype('float32') / 255
x_test = x_test.reshape((x_test.shape[0], 28, 28, 1)).astype('float32') / 255
y_train = to_categorical(y_train, 10)
y_test = to_categorical(y_test, 10)# 创建前馈神经网络模型
model = models.Sequential([layers.Flatten(input_shape=(28, 28, 1)),   # 将28x28的图片展开成一维向量layers.Dense(128, activation='relu'),      # 隐藏层,128个神经元layers.Dropout(0.2),                       # Dropout层,防止过拟合layers.Dense(10, activation='softmax')     # 输出层,10个神经元,代表10类
])# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])# 训练模型
model.fit(x_train, y_train, epochs=5, batch_size=64)# 测试模型
test_loss, test_acc = model.evaluate(x_test, y_test)
print(f"Test accuracy: {test_acc}")

2.4 解释

  1. Conv2D:卷积层,通过32个3x3的卷积核对输入图像进行卷积,激活函数采用 ReLU
  2. MaxPooling2D:池化层,采用2x2的最大池化操作,降低特征图的维度。
  3. Flatten:将卷积层输出的特征图展平成一维向量,方便输入到全连接层。
  4. Dense:全连接层,最后一层的激活函数采用 softmax,进行多分类。

三、拓展知识 

卷积神经网络(CNN)是一种深度学习模型,它在图像和视频分析中非常有效。以下是一些关于卷积神经网络的拓展知识:

局部连接和权值共享:CNN通过局部连接和权值共享减少了参数数量,这使得网络更易于优化,并降低了过拟合的风险
 

感受野:卷积层中的每个神经元只与输入数据的一个局部区域相连接,这个局部区域称为感受野。这有助于捕捉图像的局部特征
 

卷积层的变体:

逐通道卷积(Depthwise Convolution):每个输入通道应用一个卷积核,适用于单独通道的特征提取
逐点卷积(Pointwise Convolution):在逐通道卷积的基础上,将不同通道的特征图进行融合
深度可分离卷积(Depthwise Separable Convolution):结合了逐通道卷积和逐点卷积,提高了效率
组卷积(Group Convolution):将输入通道分组,每组应用不同的卷积核,减少了参数量
空间可分离卷积(Spatially Separable Convolution):在不同空间维度独立应用卷积核,进一步减少计算量
空洞卷积(Dilated Convolution):通过增加卷积核中的空间间隔来捕捉更宽广的上下文信息
转置卷积(Transposed Convolution):常用于图像生成任务,可以增大特征图的尺寸
稀疏卷积(Sparse Convolution):关注在大量零值存在时的高效计算
多维卷积(Multidimensional Convolution):扩展了卷积操作到更高维度的数据
经典CNN模型:

LeNet-5:由Yann Lecun于1998年提出,是第一个成功的CNN模型,用于手写数字识别

AlexNet:在2012年ImageNet竞赛中取得冠军,标志着深度学习的兴起

VGG-16:以其简单的网络结构和深度而闻名,广泛应用于图像识别任务

应用领域:CNN不仅用于图像分类,还广泛应用于视频分析、医学图像分割、自动驾驶、机器人视觉等领域
 

可解释性研究:随着深度学习模型在关键领域的应用,模型的可解释性变得越来越重要。研究者们正在探索如何使CNN的决策过程更加透明和可理解
 

研究进展:CNN的研究仍在不断发展,包括改进网络架构、提高计算效率、增强模型的泛化能力等方面

1. 图像分类

以经典的VGG-16模型为例,使用Keras库进行图像分类:

from keras.applications import VGG16
from keras.preprocessing import image
from keras.applications.vgg16 import preprocess_input
from keras.models import Model
import numpy as np# 加载预训练的VGG16模型,不包括顶层
base_model = VGG16(weights='imagenet', include_top=False)# 让我们为VGG16添加顶部层
x = base_model.output
x = layers.Flatten()(x) # 展平特征图
x = layers.Dense(4096, activation='relu')(x) # 新增全连接层
x = layers.Dense(4096, activation='relu')(x) # 新增全连接层
predictions = layers.Dense(1000, activation='softmax')(x) # 输出层,1000个单位对应ImageNet的类别数# 构建完整模型
model = Model(inputs=base_model.input, outputs=predictions)# 编译模型
model.compile(optimizer=optimizers.SGD(learning_rate=0.001, momentum=0.9), loss='categorical_crossentropy', metrics=['accuracy'])# 加载你的图片,预处理并预测
img_path = 'path_to_your_image.jpg'
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)# 预测
predictions = model.predict(x)

2. 目标检测


使用预训练的SSD(Single Shot MultiBox Detector)模型进行目标检测:

from keras.applications import SSD300
from keras.applications.ssd import preprocess_input
from keras.preprocessing import image
import numpy as np# 加载预训练的SSD300模型
model = SSD300(weights='imagenet')# 加载你的图片,预处理
img_path = 'path_to_your_image.jpg'
img = image.load_img(img_path, target_size=(300, 300))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)# 预测
preds = model.predict(x)# 解析预测结果
# 这里需要自定义解析函数,根据模型的输出来获取检测到的目标类别、位置等信息

 3. 图像分割


使用U-Net模型进行图像分割:

from keras.models import Model
from keras.layers import Input, Conv2D, MaxPooling2D, UpSampling2D, concatenate
from keras.optimizers import Adamdef conv_block(input_tensor, num_filters):x = Conv2D(num_filters, (3, 3), padding='same')(input_tensor)x = Activation('relu')(x)x = Conv2D(num_filters, (3, 3), padding='same')(x)x = Activation('relu')(x)return xdef encoder_block(input_tensor, num_filters):x = conv_block(input_tensor, num_filters)p = MaxPooling2D((2, 2))(x)return x, pdef decoder_block(input_tensor, concat_tensor, num_filters):x = UpSampling2D((2, 2))(input_tensor)x = concatenate([x, concat_tensor], axis=-1)x = conv_block(x, num_filters)return x# 定义输入
input_img = Input(shape=(256, 256, 3))# 编码器
c1, p1 = encoder_block(input_img, 32)
c2, p2 = encoder_block(p1, 64)
c3, p3 = encoder_block(p2, 128)
c4, p4 = encoder_block(p3, 256)# 桥接层
b = conv_block(p4, 512)# 解码器
d1 = decoder_block(b, c4, 256)
d2 = decoder_block(d1, c3, 128)
d3 = decoder_block(d2, c2, 64)
d4 = decoder_block(d3, c1, 32)# 输出层
output_img = Conv2D(1, (1, 1), activation='sigmoid')(d4)# 构建模型
model = Model(inputs=[input_img], outputs=[output_img])# 编译模型
model.compile(optimizer=Adam(lr=1e-4), loss='binary_crossentropy')# 训练模型
# model.fit(...)

  这些代码示例提供了使用CNN进行不同任务的基础框架。在实际应用中,你可能需要根据具体任务调整网络结构、损失函数、优化器等。此外,对于大型数据集和复杂任务,还需要进行数据预处理、模型调优、超参数调整等步骤。

   卷积神经网络(CNN)是深度学习领域中处理图像和其他高维数据的核心技术。它们通过模拟人类视觉系统的工作原理,能够自动并有效地从图像中学习到有用的特征表示。CNN的基础结构包括卷积层、激活函数、池化层和全连接层,这些层共同工作以提取图像的局部特征、引入非线性、降低特征维度并输出最终的分类或预测结果。随着研究的深入,CNN的架构不断演进,例如VGG、ResNet和U-Net等,它们在图像分类、目标检测、图像分割等任务中取得了显著成果。此外,CNN也被应用于视频处理、医学图像分析、风格迁移、生成对抗网络(GANs)和自编码器等更广泛的领域。尽管存在挑战,如对大量标注数据的依赖和模型解释性等问题,但CNN的发展势头不减,新的网络架构和优化技术不断涌现,推动了深度学习在各行各业的应用。随着计算能力的提升和算法的改进,CNN在处理复杂问题上的能力将进一步增强,为人工智能的发展贡献重要力量。

前馈(Feedforward)是神经网络中的一种数据传输方式,指的是信息在神经网络中从输入层经过各隐藏层向输出层单向传播,不存在反馈连接。在这种结构中,每一层的神经元仅与相邻层的神经元相连,且每个连接都有一个权重。前馈神经网络(Feedforward Neural Networks, FNN)是最基本的深度学习模型,它们可以用于各种机器学习任务,如分类、回归和模式识别。

前馈神经网络的特点包括:

单向传播:信息从输入层流向隐藏层,最后到达输出层,不存在回路。

权重共享:同一个层内的神经元之间不共享权重,但不同层之间的神经元通过权重连接。

激活函数:每个隐藏层通常包含一个激活函数,如ReLU、Sigmoid或Tanh,以引入非线性,使得网络能够学习和模拟更复杂的函数。

损失函数:网络通过损失函数来衡量预测值与真实值之间的差异,常见的损失函数包括均方误差(MSE)和交叉熵损失。

优化算法:通过反向传播算法(Backpropagation)和梯度下降(或其变体)来更新网络权重,以最小化损失函数。

层次结构:前馈神经网络通常具有多个隐藏层,深层网络能够学习更复杂的特征表示。

前馈神经网络的一个典型例子是多层感知器(Multilayer Perceptron, MLP),它是一个全连接的前馈神经网络。随着深度学习的发展,前馈神经网络已经衍生出多种更复杂的结构,如卷积神经网络(CNN)、循环神经网络(RNN)和变换器(Transformer)等,这些模型在处理不同类型的数据和任务时表现出了卓越的性能。

相关文章:

机器学习系列----介绍前馈神经网络和卷积神经网络 (CNN)

前言 在深度学习领域,神经网络是一种模拟人脑神经元结构和功能的数学模型。它通过大量的层次结构和参数调整来实现模式识别、分类、回归等任务。常见的神经网络结构有前馈神经网络(Feedforward Neural Networks,简称 FNN)和卷积神…...

vue.js组件和传值以及微信小程序组件和传值

微信小程序组件以及vue.js组件 一.微信小程序组件引用1.创建组件Component2.页面组件引用3.组件传值3.1 父视图传值到子组件 (父---->子)3.2 子组件传值给父组件 (子---->父)3.3 父组件方法传递到子组件 4. 界面之间的传值4.1 正向传值4.2 反向传值…...

c语言编程题(函数)

1编写函数将一个仅包含整数&#xff08;可能为负&#xff09;的字符串转换为对应的整数 方法一使用标准库函数 atoi atoi 函数是C语言标准库中的一个函数&#xff0c;用于将字符串转换为整数。 代码&#xff1a; #include <stdio.h> #include <stdlib.h> // 包含…...

华为eNSP:QinQ

一、什么是QinQ&#xff1f; QinQ是一种网络技术&#xff0c;全称为"Quantum Insertion"&#xff0c;也被称为"Q-in-Q"、"Double Tagging"或"VLAN stacking"。它是一种在现有的VLAN&#xff08;Virtual Local Area Network&#xff0…...

JAVA基础-多线程线程池

文章目录 1. 多线程1.1什么是多线程&#xff08;1&#xff09;并发和并行&#xff08;2&#xff09;进程和线程 1.2多线程的实现方式1.2.1 方式一&#xff1a;继承Thread类1.2.2 方式二&#xff1a;实现Runnable接口1.2.3方式三: 实现Callable接口 1.3 常见的成员方法1.3.1 设置…...

HarmonyOS 沉浸式状态实现的多种方式

1. HarmonyOS 沉浸式状态实现的多种方式 HarmonyOS 沉浸式状态实现的多种方式 1.1. 方法一 1.1.1. 实现讲解 &#xff08;1&#xff09;首先设置setWindowLayoutFullScreen(true)&#xff08;设置全屏布局&#xff09;。   布局将从屏幕最顶部开始到最底部结束&#xff0c…...

Python3.11.9下载和安装

Python3.11.9下载和安装 1、下载 下载地址&#xff1a;https://www.python.org/downloads/windows/ 选择版本下载&#xff0c;例如&#xff1a;Python 3.11.9 - April 2, 2024 2、安装 双击exe安装 3、配置环境变量 pathD:\Program Files\python3.11.9...

简简单单的UDP

前言 上一篇了解了TCP的三次握手过程&#xff0c;目的、以及如何保证可靠性、序列号与ACK的作用&#xff0c;最后离开的时候四次挥手的内容&#xff0c;这还只是TCP内容中的冰山一角&#xff0c;是不是觉得TCP这个协议非常复杂&#xff0c;这一篇我们来了解下传输层另外一个协…...

减少 try...catch,定义全局统一异常处理器!

前言 软件开发springboot项目过程中&#xff0c;不可避免的需要处理各种异常,spring mvc 架构中各层会出现大量的try {...} catch {...} finally {...}代码块&#xff0c;不仅有大量的冗余代码&#xff0c;而且还影响代码的可读性。这样就需要定义个全局统一异常处理器&#x…...

多点支撑:滚珠导轨的均匀分布优势!

滚珠导轨的滚珠稳定性可以有效保持滚珠导轨的稳定运行&#xff0c;减少滚珠脱落的风险&#xff0c;确保设备的长期稳定性和可靠性。事实上&#xff0c;滚珠导轨的滚珠稳定性主要依赖于以下几个方面&#xff1a; 1、精密的制造工艺&#xff1a;滚珠导轨的导轨和滑块通常采用高精…...

电气火灾探测器在商场火灾隐患监测和火灾预防中的应用

徐悦 安科瑞电气股份有限公司 近年来&#xff0c;全国火灾事故频发&#xff0c;尤其是在大型商场等公共场所&#xff0c;火灾造成了巨大的人员伤亡和财产损失。以南京金盛百货中央门店火灾为例&#xff0c;该起事故暴露了商场在电气安全、消防管理方面的重大隐患&#xff0c;…...

速盾:如何有效防止服务器遭受攻击?

服务器攻击是网络安全中常见的问题&#xff0c;但我们可以采取一系列的措施来有效防止服务器的遭受攻击。以下是一些常见的防御措施&#xff1a; 更新和维护服务器软件&#xff1a;及时更新操作系统、应用程序以及安全补丁&#xff0c;以确保最新版本的软件没有已知的漏洞。同时…...

【今日更新】使用Python辅助处理WebGIS

Linux发行版本: Debian GNU/Linux 12 (bookworm)操作系统内核: Linux-6.1.0-18-amd64-x86_64-with-glibc2.36Python版本: 3.11.2 1.使用Python处理MapServer配置文件Mapfile 创建、分析、修改和格式化的python库 MapServer Mapfiles。 Python 2和3 兼容 纯Python-无MapServer依…...

Linux 消息队列

在Linux中&#xff0c;线程间消息队列可以通过使用System V消息队列或POSIX消息队列来实现。 使用System V消息队列&#xff1a; System V消息队列是一种基于IPC&#xff08;Inter-process Communication&#xff0c;进程间通信&#xff09;的通信机制&#xff0c;可以用于进程…...

十大经典排序算法-冒泡算法详解介绍

1、十大经典排序算法 排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序&#xff0c;内部排序是数据记录在内存中进行排序&#xff0c;而外部排序是因排序的数据很大&#xff0c;一次不能容纳全部的排序记录&#xff0c;在排序过程中需要…...

delphi 编译多语言工程 error RC2104 : undefined keyword or key name:

Delphi 10.3中建立多语言工程&#xff0c;编译时出现错误&#xff1a;error RC2104 : undefined keyword or key name: 出现错误的的文件是.rc文件&#xff0c;出现错误的位置是 System_JSONConsts_SInvalidJavascriptQuote, L"Invalid JavaScript string quote character…...

[python] 如何debug python脚本中C++后端的core dump

文章目录 Debug过程Reference Debug过程 另外&#xff1a;对于core dump: gdb版本是>7&#xff0c;gdb从版本7开始支持对Python的debug。确保你的系统中安装了 GDB 调试器和对应版本的 Python 调试信息包&#xff08;例如 python-dbg 或 python-debuginfo&#xff09;。 #…...

Ecmascript(ES)标准

Ecmascript&#xff08;ES&#xff09;标准 ECMAScript&#xff08;通常简称为 ES&#xff09;是一种标准化的脚本语言&#xff0c;由 Ecma International 通过 ECMA-262 标准定义。ECMAScript 是 JavaScript 的规范版本&#xff0c;几乎所有的现代浏览器和许多服务器端环境&a…...

易泊车牌识别相机:4S 店的智能之选

在当今数字化时代&#xff0c;科技的进步不断为各个行业带来更高效、便捷的解决方案。对于 4S 店来说&#xff0c;易泊车牌识别相机的出现&#xff0c;无疑为其运营管理带来了全新的变革。 一、易泊车牌识别相机的强大功能 易泊车牌识别相机以其卓越的性能和精准的识别能力&…...

Webpack 深度解析与实战指南

文章目录 前言一、安装于基本配置安装Webpack 和 Webpack CLI创建基本配置文件 二、加载器常见的加载器配置加载器 三、插件&#xff08;Plugins&#xff09;常用的插件配置插件 四、性能优化缓存代码分割Tree Shaking压缩 五、开发服务器安装服务器配置服务器启动服务器生产环…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...