智能新时代:探索【人工智能】、【机器学习】与【深度学习】的前沿技术与应用

目录

1. 引言

1.1 人工智能的概念与历史

1.2 机器学习深度学习的演进

1.3 计算机视觉的崛起与应用场景

2. 人工智能基础

2.1 什么是人工智能

2.2 人工智能的分类

2.3 人工智能的现实应用

3. 机器学习

3.1 机器学习的定义与基本原理

3.2 机器学习的主要类型

3.3 常用的机器学习算法

4. 深度学习

4.1 深度学习的背景与发展

4.2 人工神经网络的基础

4.3 常见的深度学习模型

4.4 深度学习的训练与优化

5. 算法

5.1 什么是算法

5.2 算法的重要性

5.3 常见的算法类型

5.4 机器学习中的算法选择与比较

5.5 算法复杂度与优化

6. 计算机视觉

6.1 计算机视觉的定义与重要性

6.2 计算机视觉的主要任务

6.3 深度学习计算机视觉中的应用

6.4 计算机视觉中的挑战

总结


 

ce6fbd68767d465bbe94b775b8b811db.png

731bd47804784fa2897220a90a387b28.gif

 前几天偶然发现了一个超棒的人工智能学习网站,内容通俗易懂,讲解风趣幽默,简直让人欲罢不能。忍不住分享给大家,点击这里立刻跳转,开启你的AI学习之旅吧!

前言 – 人工智能教程icon-default.png?t=N7T8https://www.captainbed.cn/lzx

1. 引言

1.1 人工智能的概念与历史

人工智能(AI)是模拟人类智能的技术和理论的集合。它的历史可以追溯到1950年代,当时计算机科学家开始探索如何通过计算机来执行通常需要人类智能的任务。最初的AI研究集中在符号逻辑和规则系统上,例如专家系统,后来随着统计学和概率论的进步,机器学习成为了AI的主要方法。今天,AI已经发展到能够通过深度学习模型处理海量数据并执行复杂任务,如语音识别、自然语言处理和图像分析。

1.2 机器学习深度学习的演进

机器学习人工智能的一个分支,它让计算机通过数据来学习和改进。早期的机器学习算法,如线性回归和决策树,依赖于统计模型和简单规则。随着计算能力的增强和大数据的普及,深度学习模型通过多层神经网络大幅提升了机器的学习能力。深度学习在图像处理、语音识别、自动驾驶等领域展现了强大的性能,推动了AI的广泛应用。

1.3 计算机视觉的崛起与应用场景

计算机视觉是AI的一个重要领域,旨在让机器能够理解和解释视觉信息。自深度学习兴起以来,计算机视觉技术取得了巨大的进步,并在多个领域得到了广泛应用。例如,在自动驾驶汽车中,计算机视觉用于识别道路、车辆和行人,帮助车辆做出安全决策。此外,计算机视觉还在医疗影像分析、安防监控和工业自动化等方面发挥着重要作用。

2. 人工智能基础

2.1 什么是人工智能

人工智能涉及一系列技术,旨在使计算机系统能够执行通常需要人类智能才能完成的任务。这包括但不限于视觉感知、语音识别、决策制定和自然语言处理。随着计算技术的不断进步,AI的应用范围不断扩大,从智能语音助手到复杂的工业自动化系统,都体现了AI的强大潜力。现代AI系统通常依赖于数据驱动的方法,通过学习大量数据中的模式来完成特定任务。

2.2 人工智能的分类

人工智能可以分为三个主要类别:弱人工智能、强人工智能和超人工智能。弱人工智能专注于执行特定任务,如语音识别或推荐系统。强人工智能是一个更高级的概念,指的是能够处理任何认知任务的AI,类似于人类的通用智能。超人工智能则是理论上的AI,拥有远超人类智能的能力。当前大多数实际应用属于弱人工智能,但研究正在逐步向强人工智能方向发展。

2.3 人工智能的现实应用

人工智能已经在多个领域得到了广泛应用。智能家居设备如语音助手能够理解并响应用户的指令,提供便利的家庭自动化服务。自动驾驶技术利用计算机视觉深度学习算法,使车辆能够感知环境并做出驾驶决策。此外,AI在医疗诊断中也展现了巨大的潜力,能够通过分析医疗影像或电子病历来辅助医生做出准确的诊断。以下代码展示了一个简单的语音识别系统的实现,它能够捕捉用户的语音输入并尝试将其转换为文本。

import speech_recognition as sr# 初始化语音识别器
recognizer = sr.Recognizer()with sr.Microphone() as source:print("请说话:")audio = recognizer.listen(source)try:text = recognizer.recognize_google(audio, language='zh-CN')print(f"你说的是: {text}")except sr.UnknownValueError:print("抱歉,无法理解")except sr.RequestError as e:print(f"无法连接到服务;{e}")

这个代码块展示了如何使用Python的 speech_recognition 库来创建一个简单的语音识别应用。程序会从麦克风捕捉用户的语音输入,并通过谷歌的语音识别API将其转换为文本。如果无法识别输入或连接到服务失败,程序将输出相应的错误信息。

3. 机器学习

3.1 机器学习的定义与基本原理

机器学习是一种让计算机通过数据来学习和改进的方法,而无需明确编程指令。机器学习的核心思想是利用算法分析数据、识别模式,并基于这些模式做出预测或决策。传统编程要求开发人员为每个任务编写详细的规则,而机器学习则通过大量数据训练模型,使其能够自动识别规律并应用于新数据。随着数据量的增加和算法的改进,机器学习已经成为现代人工智能的核心技术之一。

3.2 机器学习的主要类型

机器学习算法根据其学习方式可以分为三种主要类型:监督学习、无监督学习和强化学习。监督学习通过已知的输入输出对来训练模型,例如,使用标注的图片训练图像分类器。无监督学习则处理没有标签的数据,常用于聚类分析。强化学习则是通过与环境的交互来学习最佳策略,例如,在游戏中通过试错来优化得分。每种类型的学习方式都有其独特的应用场景和优势。

监督学习是机器学习中最常见的方法之一。以下代码示例展示了如何使用Python的 scikit-learn 库来训练一个简单的监督学习模型,利用随机森林分类器对鸢尾花数据集进行分类。

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier# 加载数据
data = load_iris()
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.3, random_state=42)# 训练模型
clf = RandomForestClassifier(n_estimators=100)
clf.fit(X_train, y_train)# 测试模型
predictions = clf.predict(X_test)
accuracy = np.mean(predictions == y_test)
print(f"模型准确率: {accuracy}")

此代码块展示了如何使用随机森林算法进行监督学习。首先,我们加载了 iris 数据集,并将其划分为训练集和测试集。然后,我们使用 RandomForestClassifier 进行模型训练,并对测试集进行预测,最终计算并输出模型的准确性。

3.3 常用的机器学习算法

机器学习领域,不同的算法适用于不同类型的问题。回归分析用于预测连续变量,如房价预测。决策树是一种通过将数据递归划分为子集的模型,广泛应用于分类任务。支持向量机则通过找到最佳的分离超平面来进行分类,特别适合高维数据。集成学习方法,如随机森林,通过集成多个弱模型来提高整体预测性能。这些算法各自有其优势,具体应用取决于任务的特性和数据的性质。

回归分析是一种基本的机器学习方法,用于预测连续变量。以下代码展示了如何使用线性回归模型预测数据的输出。

from sklearn.linear_model import LinearRegression# 创建线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)# 预测
predictions = model.predict(X_test)

这个代码示例演示了线性回归模型的基本使用。我们首先创建一个 LinearRegression 对象,并使用训练数据对其进行拟合。接着,使用训练好的模型对测试数据进行预测。线性回归适用于输入变量与输出变量之间存在线性关系的情况。

4. 深度学习

4.1 深度学习的背景与发展

深度学习机器学习的一个子领域,它利用多层神经网络来学习和处理数据。深度学习的发展得益于计算能力的提升和大数据的普及。与传统的机器学习算法相比,深度学习能够自动从原始数据中提取特征,特别适用于图像、语音、自然语言处理等领域。深度学习的成功应用包括图像识别中的卷积神经网络(CNN)和语音识别中的循环神经网络(RNN)。深度学习的模型结构往往非常复杂,但它们的性能也显著优于传统模型。

4.2 人工神经网络的基础

人工神经网络(ANN)是深度学习的基础结构,受生物神经网络启发而设计。最简单的神经网络结构是感知器模型,它由输入层、一个或多个隐藏层和输出层组成。每一层的节点通过权重和偏置相连接,并通过激活函数传递信号。感知器模型可以解决简单的线性问题,但多层感知器(MLP)通过增加隐藏层和非线性激活函数,可以处理更复杂的非线性问题。MLP是深度学习的核心模型之一,广泛应用于分类和回归任务中。

以下代码展示了一个简单的感知器模型的实现。这个模型使用了 numpy 库来进行矩阵运算,并通过 sigmoid 函数作为激活函数。

import numpy as npdef sigmoid(x):return 1 / (1 + np.exp(-x))def perceptron(x, w, b):return sigmoid(np.dot(x, w) + b)# 示例输入和权重
x = np.array([0.5, 0.3])
w = np.array([0.4, 0.7])
b = 0.1output = perceptron(x, w, b)
print(f"感知器输出: {output}")

在这个代码示例中,我们定义了一个简单的感知器函数 perceptron,它接受输入向量 x,权重向量 w 和偏置 b。感知器使用 sigmoid 函数作为激活函数,将输入信号转换为输出值。这个简单的模型可以用于线性分类任务。

4.3 常见的深度学习模型

深度学习模型种类繁多,每种模型都有其特定的应用场景。卷积神经网络(CNN)主要用于图像处理,通过卷积层提取图像的局部特征,广泛应用于图像分类、目标检测和语义分割等任务。循环神经网络(RNN)则适用于处理序列数据,如时间序列预测和自然语言处理。生成对抗网络(GAN)是一种用于生成逼真图像的模型,通过生成器和判别器的对抗性训练,GAN在图像生成领域取得了突破性进展。此外,自编码器是一种用于数据压缩和特征提取的模型,常用于去噪和异常检测。

以下代码展示了一个简单的卷积神经网络(CNN)模型的构建过程。该模型使用了 Keras 库,并应用于图像分类任务。

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=(64, 64, 3)))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(1, activation='sigmoid'))model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=25, batch_size=32)

这个代码块展示了如何使用 Keras 构建一个基本的卷积神经网络。模型的第一层是一个卷积层,负责提取图像的局部特征,随后是池化层用于下采样。模型最后通过全连接层进行分类。这个网络特别适合用于小型图像数据集的二分类任务。

4.4 深度学习的训练与优化

深度学习模型的训练依赖于反向传播算法和优化器。反向传播通过计算损失函数相对于每个权重的梯度,指导权重的更新方向,从而逐步减小预测误差。常用的损失函数包括均方误差(MSE)和交叉熵损失(Cross-Entropy Loss),而优化器则如随机梯度下降(SGD)和 Adam,被用来有效地更新模型参数。优化器的选择会显著影响模型的收敛速度和最终性能。以下代码展示了如何使用反向传播算法更新神经网络的权重。

def backward_propagation(network, X, Y):# 计算输出误差output_error = Y - network.output# 计算梯度gradients = compute_gradients(network, output_error)# 更新权重for layer in network.layers:layer.weights += learning_rate * gradients[layer]

此代码片段展示了反向传播算法的基本步骤。首先,我们计算网络的输出误差,即预测值与实际值之间的差异。然后,计算每一层的梯度,并通过这些梯度调整网络的权重,以使模型在下次迭代中表现得更好。这个过程会在多个迭代中反复进行,直到模型的性能达到满意的水平。

5. 算法

5.1 什么是算法

算法是一组明确的步骤,用于解决问题或执行特定任务。在计算机科学中,算法是程序的核心,它决定了如何处理输入数据、如何执行逻辑运算以及如何生成输出结果。算法的设计和优化对于提高程序的效率和可扩展性至关重要。好的算法不仅能够解决问题,还能在资源受限的情况下高效运行。在机器学习中,算法用于从数据中提取模式、训练模型以及做出预测或分类。

5.2 算法的重要性

机器学习深度学习中,算法的选择和设计对模型的性能有着直接的影响。一个高效的算法可以在处理相同任务时显著减少计算时间和资源消耗,而一个不适当的算法可能导致模型的训练时间过长,甚至无法收敛。因此,理解和优化算法是开发高性能机器学习系统的关键。现代机器学习中的许多进展都源于新算法的开发和现有算法的优化。例如,随机梯度下降(SGD)和 Adam 等优化算法显著加速了深度学习模型的训练过程。

5.3 常见的算法类型

在计算机科学和机器学习中,常见的算法类型包括贪心算法、动态规划、分治算法和回溯算法。贪心算法在每一步选择当前最优的解决方案,但不一定保证全局最优。动态规划通过将问题分解为子问题,并保存子问题的解来避免重复计算,从而优化复杂度。分治算法将问题分成多个更小的子问题,分别解决后合并结果。回溯算法则是通过尝试所有可能的解决方案,并在发现不符合条件时回溯,常用于组合优化问题。

贪心算法是一种简单但有效的算法策略,适用于解决某些最优化问题。以下代码展示了如何使用贪心算法解决经典的背包问题。

def greedy_algorithm(items, max_weight):selected_items = []current_weight = 0# 按照物品价值密度排序for item in sorted(items, key=lambda x: x.value/x.weight, reverse=True):if current_weight + item.weight <= max_weight:selected_items.append(item)current_weight += item.weightreturn selected_items

在这个代码示例中,我们定义了一个简单的贪心算法,用于解决背包问题。该算法首先根据物品的价值密度(即价值/重量)对物品进行排序,然后依次选择最有价值且重量不超限的物品。这种方法虽然简单,但在某些场景下能有效接近最优解。

5.4 机器学习中的算法选择与比较

机器学习中,算法的选择是模型性能的关键因素。不同的算法适用于不同类型的数据和任务。例如,决策树适合处理具有类别不平衡的数据,而支持向量机(SVM)则在高维空间中表现良好。集成学习方法,如随机森林和梯度提升树,通过组合多个模型来提高预测准确性和鲁棒性。选择合适的算法不仅影响模型的准确性,还决定了训练速度和资源需求。因此,理解算法的特性并进行合理选择,是构建高效机器学习系统的重要步骤。

以下代码展示了决策树和随机森林的基本使用方法,并对两者的性能进行比较。

from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier# 使用决策树模型
tree_clf = DecisionTreeClassifier()
tree_clf.fit(X_train, y_train)
tree_predictions = tree_clf.predict(X_test)# 使用随机森林模型
forest_clf = RandomForestClassifier(n_estimators=100)
forest_clf.fit(X_train, y_train)
forest_predictions = forest_clf.predict(X_test)# 比较两者的准确率
tree_accuracy = np.mean(tree_predictions == y_test)
forest_accuracy = np.mean(forest_predictions == y_test)print(f"决策树准确率: {tree_accuracy}")
print(f"随机森林准确率: {forest_accuracy}")

在这个代码示例中,我们分别使用了决策树和随机森林模型对相同的数据进行训练,并比较了它们的预测准确性。决策树容易过拟合,而随机森林通过集成多棵树来减少过拟合,因此通常在实际应用中表现更好。

5.5 算法复杂度与优化

算法复杂度是评估算法效率的重要指标。时间复杂度表示算法执行所需的时间随输入规模的变化,而空间复杂度表示算法执行时所需的内存。常见的时间复杂度有线性时间(O(n))、平方时间(O(n^2))等。大O符号用于表示算法在最坏情况下的复杂度,是计算机科学中衡量算法性能的标准。在选择和优化算法时,理解其时间和空间复杂度至关重要。通过优化算法,可以显著提高程序的运行效率,特别是在处理大规模数据时。

以下代码展示了线性搜索和二分搜索两种算法的实现,并比较了它们的时间复杂度。

def linear_search(arr, x):for i in range(len(arr)):if arr[i] == x:return ireturn -1def binary_search(arr, x):low = 0high = len(arr) - 1while low <= high:mid = (low + high) // 2if arr[mid] == x:return midelif arr[mid] < x:low = mid + 1else:high = mid - 1return -1

这个代码片段展示了线性搜索和二分搜索的基本实现。线性搜索的时间复杂度为 O(n),适合处理小规模的无序数据集。而二分搜索的时间复杂度为 O(log n),要求输入数据已排序,适合大规模数据集的高效查找。

6. 计算机视觉

6.1 计算机视觉的定义与重要性

计算机视觉人工智能的一个分支领域,旨在使计算机能够理解和处理视觉信息。随着深度学习的兴起,计算机视觉技术在图像识别、目标检测、图像分割和视频分析等方面取得了显著进展。其应用场景非常广泛,包括自动驾驶、医疗影像分析、安防监控和人脸识别等。通过计算机视觉,机器可以“看到”并理解视觉世界,执行诸如物体识别、动作检测和场景理解等任务。在现代智能系统中,计算机视觉技术已经成为不可或缺的组成部分。

6.2 计算机视觉的主要任务

计算机视觉的核心任务包括图像分类、目标检测、图像分割和视觉跟踪。图像分类是指将输入图像分配到预定义的类别中,例如识别图片中的动物种类。目标检测不仅要识别图像中的物体,还要确定它们的位置,常用于自动驾驶中的行人检测。图像分割是将图像划分为具有特定意义的区域,如语义分割和实例分割。视觉跟踪则用于实时跟踪视频中的物体,应用于监控和自动驾驶。每一项任务都需要特定的模型和算法来实现。

图像分类是计算机视觉中的基础任务之一。以下代码展示了如何使用 Keras 构建一个简单的卷积神经网络(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=(64, 64, 3)))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(1, activation='sigmoid'))model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=25, batch_size=32)

在这个代码示例中,我们构建了一个基本的卷积神经网络(CNN)用于图像分类。网络的第一层是卷积层,负责提取图像的局部特征,然后通过池化层进行下采样。最后,经过全连接层进行分类。这个模型适合用于小型图像数据集的二分类任务。

6.3 深度学习计算机视觉中的应用

深度学习的引入极大地推动了计算机视觉的发展,特别是卷积神经网络(CNN)在图像处理中的应用使得计算机能够更好地理解图像数据。深度学习模型在图像分类、目标检测、图像分割等任务中表现出色,通过层层提取图像中的特征,能够有效识别复杂的视觉模式。迁移学习也是深度学习计算机视觉中的重要应用之一,它允许我们使用在大型数据集上训练的预训练模型,如VGG和ResNet,并在特定任务上进行微调,从而提高模型的性能。

以下代码展示了如何使用预训练的VGG16模型进行迁移学习,用于图像分类任务。

from keras.applications import VGG16
from keras.models import Model
from keras.layers import Dense, Flatten# 加载预训练的VGG16模型,并去除顶层
base_model = VGG16(weights='imagenet', include_top=False, input_shape=(64, 64, 3))# 添加自定义的全连接层
x = base_model.output
x = Flatten()(x)
x = Dense(128, activation='relu')(x)
predictions = Dense(1, activation='sigmoid')(x)# 构建新的模型
model = Model(inputs=base_model.input, outputs=predictions)# 锁定预训练层
for layer in base_model.layers:layer.trainable = False# 编译模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=10, batch_size=32)

在这个代码示例中,我们使用了预训练的VGG16模型,并通过添加自定义的全连接层来进行迁移学习。通过这种方式,我们可以利用在大规模数据集上训练好的特征,并在小数据集上进行特定任务的微调。这种方法通常能够在少量数据下取得良好的性能。

6.4 计算机视觉中的挑战

尽管计算机视觉在很多领域取得了显著进展,但它仍然面临许多挑战。数据标注是其中一个主要问题,因为高质量的标注数据对于训练深度学习模型至关重要。然而,数据标注往往需要大量的时间和人力资源,尤其是在涉及复杂场景和细粒度分类的情况下。另一大挑战是计算资源的消耗,训练深度学习模型通常需要大量的计算资源,尤其是当模型结构复杂、数据量庞大时。此外,如何处理小样本数据、提高模型的鲁棒性、以及应对多样化的视觉场景,也都是计算机视觉领域亟待解决的问题。

总结

这篇文章深入探讨了人工智能机器学习深度学习算法计算机视觉的核心概念,并通过丰富的代码示例展示了这些技术在实际应用中的具体实现。通过理论与实践的结合,读者不仅能够理解这些复杂的技术概念,还能掌握在不同场景下如何有效地应用这些技术,进而为进一步的学习和研究奠定坚实的基础。


http://www.ppmy.cn/ops/100620.html

相关文章

如何给文档加密?文档加密软件是什么样的?

一、如何给文档加密&#xff1f; 1、利用第三方加密软件&#xff08;1&#xff09;选择合适的加密软件&#xff1a;市面上有许多专门的加密软件&#xff0c;这些软件通常提供更多的加密选项和更强的安全性能。&#xff08;2&#xff09;操作第三方加密软件&#xff1a;安装并打…

推荐一款低成本 小尺寸数字脉冲编码调制(PCM)输入D类功率放大器 MAX98357AETE+T 兼具AB类性能

MAX98357AETET是数字脉冲编码调制(PCM)输入D类功率放大器&#xff0c;可提供AB类音频性能&#xff0c;同时具有D类的效率。器件在I2S/左对齐模式下通过单个增益设置输入可提供5中可选择增益(3dB、6dB、9dB、12dB、15dB)&#xff0c;在TDM模式下为固定12dB增益。 数字音频接口高…

Linux驱动学习之内核poll阻塞

在linux系统编程课程中学习过多路IO复用&#xff0c;简单来说就三个函数select&#xff0c;poll&#xff0c;epoll。 对于select 此函数是跨平台的&#xff0c;可以在windows&#xff0c;Linux中使用。 对于poll与epoll 只能在linux平台下使用&#xff0c; epoll底层实现是一个…

WebSocket、Socket和Netty的关系

目录 WebSocket、Socket和Netty的关系 WebSocket Socket Netty 关系总结 Socket API 有那些&#xff1f; 1. socket() 2. bind() 3. listen() 4. accept() 5. connect() 6. send() 和 recv() 7. close() 8. shutdown() 9. inet_pton() 和 inet_ntop() 10. setso…

Windows系统安装MySQL

下载MySQL 打开网址MySQL :: Download MySQL Community Server点击图下所示位置Download 进入图下所示界面&#xff0c;点击图下所示位置不登录下载 已下载完成 安装MySQL 将下载好的压缩包解压到一个专门的位置&#xff0c;该软件为绿色版软件&#xff0c;解压即可使用 配置…

Spring 中的BeanPostProcessor

BeanPostProcessor 是 Spring Framework 中的一个接口&#xff0c;用于对 bean 实例进行自定义处理&#xff0c;它位于 org.springframework.beans.factory.config 包下。该接口允许开发者在 Spring 容器创建 bean 实例后进行处理&#xff0c;或在 bean 实例初始化过程中进行自…

单调栈 LeetCode 1130. 叶值的最小代价生成树

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 给你一个正整数数组 arr&#xff0c;考虑所有满足以下条件的二叉树&#xff1a; 每个节点都有 0 个或是 2 个子节点。数…

论坛系统登录测试结果

目录 1 登录成功1.1 输入合法已注册手机号 2 登录失败2.1 输入未注册手机号2.2 输入非法手机号2.3 输入错误、过期验证码 论坛系统——部分测试用例 1 登录成功 1.1 输入合法已注册手机号 打开登录界面 输入已注册手机号 点击发送验证码 输入验证码&#xff0c;点击登录按钮 …

架构师面试题系列之Spring MVC面试专题及答案(31题)

目录 1、什么是 SpringMvc?说一下你对它的理解2、SpringMVC 的优点 :3、SpringMVC 工作原理?4、SpringMVC 的主要组件?5、讲下 SpringMvc 的执行流程6、SpingMvc 中的控制器的注解一般用那个,有没有别的注解可以替代?7、如果在拦截请求中,想拦截 get 方式提交的方法,怎么…

Python接口自动化测试:断言封装详解

在进行API接口测试时&#xff0c;断言起着至关重要的作用。断言是用于验证预期结果与实际结果是否一致的过程。在Python中&#xff0c;我们可以利用一些库来实现断言功能。 1. 安装必要的库 在Python中&#xff0c;我们主要会使用两个库&#xff1a;requests和jsonpath。requ…

解析阿里巴巴中国站商品详情API返回值的更新与变化

阿里巴巴中国站&#xff08;通常指的是1688.com&#xff0c;阿里巴巴的国内批发平台&#xff09;的商品详情API返回值可能会随着平台功能的更新、数据结构的调整或API版本的迭代而发生变化。为了准确解析这些更新与变化&#xff0c;你可以采取以下几个步骤&#xff1a; 1. 查阅…

2024焊工操作证考试在线模拟考试题

焊工证考试试题分为理论《焊工理论知识》考试和《焊工实操知识》专业能力考核。 焊工证考试试题理论知识考试采用闭卷电脑答题方式&#xff1b;理论知识考试和实操考核均实行百分制&#xff0c;焊工证考试成绩皆达80分及以上者为合格。 以下为焊工理论考试模拟试题&#xff0c…

apache httpclient速成

目录标题 快速使用连接池参数连接池状态清除闲置连接evictIdleConnections删除过期连接 timeToLive 和evictExpiredConnections 注意释放内存关闭流 http和netty的关系 导入依赖 <dependency><groupId>org.apache.httpcomponents.client5</groupId><artif…

QT通过信号传递参数至槽函数(不通层级通信)

传递参数参数多个&#xff0c;采用map&#xff0c;一直insert 前提&#xff0c; //map类型 typedef QMap <unsigned int , QByteArray> Map;//信号和槽的声明 signals:void sigToCems(InfoMap);void slotFromEms(Map Map);// 发射点&#xff1a;由事件触发 //Addr_EM…

龙旭 付玲云新歌推出原创歌曲热榜

盘点2024年8月全国受关注的经典热门歌曲你更爱那首&#xff1f; 歌曲1.《甜妹专属BGMentertainer》&#xff0c;2.情歌专属《尘世情缘》情歌唱给谁来听&#xff0c;3.巜迟来的情话》听完敢不敢留下你最想对TA说的话如果在18我没能送你花&#xff0c;那到28我请你喝酒吧&#x…

Linux驱动开发—设备模型框架 kobject创建属性文件

文章目录 什么是属性文件&#xff1f;1. sysfs 与 kobject2. 属性文件的作用3. 属性文件的基本操作4. 典型的属性文件用例5. 创建属性文件的步骤6.示例代码7.效果图 使用 ATTR 宏定义优化__ATTR用法解析1. __ATTR() 宏的定义2. __ATTR() 宏的参数3.优化示例 优化关键点解析1. 数…

Java与C#在中国:我们在信息技术领域的脆弱性和依赖性

2019年8月&#xff0c;微软公司宣布停止在俄罗斯销售新产品和服务&#xff0c;并暂停相关更新和授权。这一决定对俄罗斯用户和企业造成了不小的冲击。 2024年6月&#xff0c;微软陆续关闭中国线下门店授权。微软官方给出的回应是&#xff1a;为了满足客户不断变化的需求&#…

linux命令使用

vi可打开&#xff0c;可创建&#xff0c;cat只能打开已有的文件 rm -r 删除文件夹-r&#xff1a;这个选项代表“递归”&#xff08;recursive&#xff09;。当你用 -r 选项与 rm 一起使用时&#xff0c;rm 会递归地删除目录及其内容&#xff0c;包括所有子目录和文件。 pip i…

并行程序设计基础——MPI不连续数据发送(1)

目录 一、派生数据类型 二、定义新数据类型 1、连续复制的类型生成 2、向量数据类型的生成 3、索引数据类型的生成 4、结构数据类型的生成 5、新类型递交和释放 前面各节介绍的MPI程序设计都是发送或接收连续的数据,其实MPI还可以处理不连续的数据,基本方法有…

Linux 搜索历史命令Ctrl+R

最近使用CtrlR来搜索历史命令&#xff0c;对比速度比history 快一下&#xff0c;且看起来高级。记录如下&#xff1a;命令1&#xff1a;history 功能&#xff1a;显示当前Linux终端输入过的历史命令。案例&#xff1a;使用history 出来的结果很多&#xff0c;通常和grep 过滤&a…