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

深入探索:【人工智能】、【机器学习】与【深度学习】的全景视觉之旅

目录

第一部分:人工智能、机器学习与深度学习概述

1.1 人工智能的概念与发展

代码示例:简单的AI决策系统

1.2 机器学习的定义与分类

代码示例:简单的线性回归模型

1.3 深度学习的基础与应用

代码示例:构建简单的神经网络

第二部分:机器学习的理论基础

2.1 数据准备与特征工程

代码示例:数据清理与特征工程

2.2 模型选择与评估

代码示例:模型选择与交叉验证

2.3 模型优化与超参数调优

代码示例:超参数调优与模型优化

第三部分:深度学习的核心原理

3.1 人工神经网络的结构与工作原理

代码示例:创建和训练简单的神经网络

3.2 卷积神经网络(CNN)与图像处理

代码示例:构建简单的卷积神经网络

3.3 递归神经网络(RNN)与序列处理

代码示例:构建简单的递归神经网络

第四部分:手写数字识别案例的代码实现与讲解

4.1 项目概述与目标

代码示例:加载MNIST数据集

4.2 数据加载与预处理

代码示例:数据预处理

4.3 模型构建与编译

代码示例:构建和编译模型

4.4 模型训练与验证

代码示例:训练模型

4.5 模型评估与预测

代码示例:评估与预测

第五部分:扩展与优化

5.1 模型的扩展与改进

代码示例:增加网络深度

5.2 模型优化与调参

代码示例:调整学习率

第六部分:未来发展与挑战

6.1 人工智能的未来趋势

代码示例:简单的GAN生成器模型

6.2 持续学习与自动机器学习(AutoML)

代码示例:使用AutoKeras进行自动机器学习

6.3 人工智能的伦理与挑战

代码示例:处理算法偏见

结论


 

ce6fbd68767d465bbe94b775b8b811db.png

731bd47804784fa2897220a90a387b28.gif

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

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

 

第一部分:人工智能、机器学习与深度学习概述

1.1 人工智能的概念与发展

人工智能(Artificial Intelligence, AI)是计算机科学的一个分支,旨在开发能够模拟或增强人类智能的系统。AI的研究范围广泛,涵盖了从基础算法到复杂系统的开发。

代码示例:简单的AI决策系统

# 简单的基于规则的AI决策系统
def ai_decision_system(weather):if weather == 'sunny':return "Go for a walk"elif weather == 'rainy':return "Stay inside and read a book"elif weather == 'snowy':return "Go skiing"else:return "Weather unknown, stay cautious"# 测试AI决策系统
print(ai_decision_system('sunny'))  # 输出: Go for a walk

这个简单的代码展示了AI的最基本形式,即基于规则的决策系统。根据天气条件,AI系统作出相应的决策。这类系统可以看作是AI的早期形式,依赖于预定义的规则集。

1.2 机器学习的定义与分类

机器学习(Machine Learning, ML)是一种通过数据训练模型,使机器自动从数据中学习规律的技术。

代码示例:简单的线性回归模型

from sklearn.linear_model import LinearRegression
import numpy as np# 创建训练数据
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([1, 3, 2, 3, 5])# 创建线性回归模型并训练
model = LinearRegression()
model.fit(X, y)# 预测新的数据
prediction = model.predict(np.array([[6]]))
print(f"Prediction for input 6: {prediction}")  # 输出: Prediction for input 6: [5.2]

此代码示例展示了机器学习中监督学习的一个简单应用,即线性回归。我们通过训练数据创建一个线性模型,并使用该模型预测新数据点的输出。线性回归是监督学习的一种常见方法,特别适用于预测连续值。

1.3 深度学习的基础与应用

深度学习(Deep Learning, DL)是机器学习的一个分支,主要基于多层神经网络。它擅长处理非结构化数据,如图像和文本。

代码示例:构建简单的神经网络

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense# 创建一个简单的神经网络
model = Sequential([Dense(32, input_shape=(784,), activation='relu'),Dense(10, activation='softmax')
])# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])# 打印模型摘要
model.summary()

这个代码示例展示了如何使用Keras创建一个简单的神经网络模型。该模型包含两个全连接层,第一层有32个神经元,使用ReLU激活函数;第二层有10个神经元,使用Softmax激活函数。这种结构常用于多分类任务,如手写数字识别。

第二部分:机器学习的理论基础

2.1 数据准备与特征工程

数据准备和特征工程是机器学习项目中至关重要的步骤。它们确保数据在输入模型前已经过清理、转换和优化。

代码示例:数据清理与特征工程

import pandas as pd
from sklearn.preprocessing import StandardScaler, OneHotEncoder# 加载数据
data = pd.DataFrame({'feature1': [1.0, 2.0, np.nan, 4.0, 5.0],'feature2': ['A', 'B', 'A', 'B', 'A'],'target': [1, 0, 1, 0, 1]
})# 数据清理:填充缺失值
data['feature1'].fillna(data['feature1'].mean(), inplace=True)# 特征转换:独热编码分类特征
encoder = OneHotEncoder(sparse=False)
encoded_features = encoder.fit_transform(data[['feature2']])
encoded_df = pd.DataFrame(encoded_features, columns=encoder.get_feature_names_out(['feature2']))# 标准化数值特征
scaler = StandardScaler()
data['feature1'] = scaler.fit_transform(data[['feature1']])# 合并处理后的特征
processed_data = pd.concat([data[['feature1']], encoded_df, data[['target']]], axis=1)
print(processed_data)

这个代码示例展示了数据清理与特征工程的几个步骤:填充缺失值、对分类特征进行独热编码、标准化数值特征。通过这些处理,我们确保数据在进入模型之前处于最佳状态。

2.2 模型选择与评估

选择合适的机器学习模型以及评估模型性能是构建有效系统的关键。

代码示例:模型选择与交叉验证

from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score# 准备数据
X = processed_data.drop('target', axis=1)
y = processed_data['target']# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 选择模型并训练
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)# 使用交叉验证评估模型
scores = cross_val_score(model, X_train, y_train, cv=5)
print(f"Cross-validation accuracy: {scores.mean()}")# 预测并评估在测试集上的性能
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Test set accuracy: {accuracy}")

此代码展示了如何选择一个模型(随机森林)并使用交叉验证评估其性能。通过交叉验证,我们可以了解模型在训练数据上的稳定性和泛化能力。

2.3 模型优化与超参数调优

为了提升模型的性能,我们通常需要调整超参数和进行优化。

代码示例:超参数调优与模型优化

from sklearn.model_selection import GridSearchCV# 定义超参数网格
param_grid = {'n_estimators': [50, 100, 200],'max_depth': [None, 10, 20, 30]
}# 使用GridSearchCV进行超参数调优
grid_search = GridSearchCV(RandomForestClassifier(random_state=42), param_grid, cv=5)
grid_search.fit(X_train, y_train)# 输出最佳参数
print(f"Best parameters: {grid_search.best_params_}")# 使用最佳参数训练的模型在测试集上的表现
best_model = grid_search.best_estimator_
y_pred = best_model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Test set accuracy with best parameters: {accuracy}")

这个代码展示了如何通过GridSearchCV进行超参数调优,找到最佳的超参数组合并提升模型的性能。

第三部分:深度学习的核心原理

3.1 人工神经网络的结构与工作原理

人工神经网络(ANN)是深度学习的基础,模拟了人脑神经元的工作方式。

代码示例:创建和训练简单的神经网络

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense# 创建神经网络模型
model = Sequential([Dense(32, input_shape=(784,), activation='relu'),Dense(10, activation='softmax')
])# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])# 假设有已经处理好的训练数据X_train, y_train
# 训练模型
model.fit(X_train, y_train, epochs=10, batch_size=32)

此代码展示了如何使用Keras创建并训练一个基本的神经网络模型,用于多分类任务。

3.2 卷积神经网络(CNN)与图像处理

卷积神经网络(CNN)特别适用于图像处理,通过卷积操作提取图像特征。

代码示例:构建简单的卷积神经网络

from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten# 创建CNN模型
model = Sequential([Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),MaxPooling2D(pool_size=(2, 2)),Flatten(),Dense(128, activation='relu'),Dense(10, activation='softmax')
])# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])# 假设有已经处理好的训练数据X_train, y_train
# 训练模型
model.fit(X_train, y_train, epochs=10, batch_size=32)

这个代码展示了如何使用Keras构建一个简单的CNN,用于处理图像分类任务,如手写数字识别。卷积层和池化层自动提取图像的空间特征,使得模型在图像任务中具有更高的准确性。

3.3 递归神经网络(RNN)与序列处理

递归神经网络(RNN)擅长处理序列数据,通过捕捉时间依赖关系,在语音识别、时间序列预测等领域表现出色。

代码示例:构建简单的递归神经网络

from tensorflow.keras.layers import SimpleRNN# 创建RNN模型
model = Sequential([SimpleRNN(50, input_shape=(timesteps, features), activation='relu'),Dense(10, activation='softmax')
])# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])# 假设有已经处理好的序列数据X_train, y_train
# 训练模型
model.fit(X_train, y_train, epochs=10, batch_size=32)

这个代码展示了如何使用Keras构建一个简单的RNN,用于处理序列数据。RNN在处理具有时间依赖性的数据(如时间序列、文本数据)时非常有效。

第四部分:手写数字识别案例的代码实现与讲解

4.1 项目概述与目标

手写数字识别任务广泛用于银行票据识别、邮政编码识别等实际场景。我们将使用MNIST数据集完成该任务。

代码示例:加载MNIST数据集

from tensorflow.keras.datasets import mnist# 加载MNIST数据集
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()# 查看数据形状
print(f"Train images shape: {train_images.shape}")
print(f"Train labels shape: {train_labels.shape}")

这个代码片段展示了如何加载MNIST数据集,并查看数据集的形状。MNIST数据集包含60,000个训练样本和10,000个测试样本,每个样本是28x28像素的灰度图像。

4.2 数据加载与预处理

在模型训练前,数据需要进行归一化处理和标签的one-hot编码。

代码示例:数据预处理

from tensorflow.keras.utils import to_categorical# 归一化图像数据
train_images = train_images.astype('float32') / 255
test_images = test_images.astype('float32') / 255# 将图像数据展平
train_images = train_images.reshape((train_images.shape[0], 28 * 28))
test_images = test_images.reshape((test_images.shape[0], 28 * 28))# One-hot编码标签
train_labels = to_categorical(train_labels)
test_labels = to_categorical(test_labels)

这个代码展示了如何对图像数据进行归一化处理,以及如何将标签转换为one-hot编码形式,以便神经网络能够处理。

4.3 模型构建与编译

我们将使用Keras构建一个简单的全连接神经网络模型。

代码示例:构建和编译模型

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense# 构建全连接神经网络模型
model = Sequential([Dense(512, activation='relu', input_shape=(28 * 28,)),Dense(10, activation='softmax')
])# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

此代码展示了如何构建和编译一个简单的全连接神经网络,用于手写数字识别任务。该模型使用ReLU作为隐藏层的激活函数,Softmax作为输出层的激活函数。

4.4 模型训练与验证

接下来,我们将模型应用于训练数据进行训练,并使用验证集评估模型性能。

代码示例:训练模型

# 训练模型
history = model.fit(train_images, train_labels, epochs=5, batch_size=128, validation_split=0.2)

这个代码片段展示了如何使用Keras的fit方法训练模型。我们使用20%的训练数据作为验证集,模型训练5个epochs,每次更新模型使用128个样本。

4.5 模型评估与预测

在模型训练完成后,使用测试数据评估模型的性能,并展示预测结果。

代码示例:评估与预测

# 评估模型
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f"Test accuracy: {test_acc}")# 预测
predictions = model.predict(test_images)# 显示一些预测结果
import numpy as np
import matplotlib.pyplot as pltdef plot_image(i, predictions_array, true_label, img):plt.grid(False)plt.xticks([])plt.yticks([])plt.imshow(img, cmap=plt.cm.binary)predicted_label = np.argmax(predictions_array)true_label = np.argmax(true_label)if predicted_label == true_label:color = 'blue'else:color = 'red'plt.xlabel(f"{predicted_label} ({true_label})", color=color)# 显示前5个测试样本的预测结果
plt.figure(figsize=(10, 5))
for i in range(5):plt.subplot(1, 5, i+1)plot_image(i, predictions[i], test_labels[i], test_images[i].reshape(28, 28))
plt.show()

这个代码展示了如何评估模型在测试集上的表现,并通过可视化展示模型的预测结果。通过这些图像,我们可以直观地看到模型的预测效果。

第五部分:扩展与优化

5.1 模型的扩展与改进

我们可以通过增加模型的深度或使用卷积神经网络(CNN)来提升模型的性能。

代码示例:增加网络深度

from tensorflow.keras.layers import Dropout# 创建更深的神经网络模型
model = Sequential([Dense(512, activation='relu', input_shape=(28 * 28,)),Dropout(0.2),Dense(512, activation='relu'),Dropout(0.2),Dense(10, activation='softmax')
])# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])# 训练模型
history = model.fit(train_images, train_labels, epochs=5, batch_size=128, validation_split=0.2)

这个代码展示了如何通过增加隐藏层的数量和使用Dropout层来扩展网络,从而提高模型的表达能力和泛化能力。

5.2 模型优化与调参

为了进一步提升模型性能,可以通过调整学习率等超参数来优化模型。

代码示例:调整学习率

from tensorflow.keras.optimizers import Adam# 调整学习率
optimizer = Adam(learning_rate=0.001)# 编译模型
model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy'])# 训练模型
history = model.fit(train_images, train_labels, epochs=5, batch_size=128, validation_split=0.2)

这个代码展示了如何通过调整Adam优化器的学习率来优化模型训练过程。选择合适的学习率可以加快模型的收敛速度,并提升最终的性能。

第六部分:未来发展与挑战

6.1 人工智能的未来趋势

AI的发展方向可能包括自监督学习、联邦学习和生成对抗网络(GAN)等新兴技术。

代码示例:简单的GAN生成器模型

from tensorflow.keras.layers import Dense, LeakyReLU
from tensorflow.keras.models import Sequential# 创建生成器模型
generator = Sequential([Dense(128, input_dim=100),LeakyReLU(alpha=0.01),Dense(784, activation='tanh')
])# 打印生成器模型结构
generator.summary()

这个代码展示了如何构建一个简单的生成器模型,用于生成对抗网络(GAN)中的生成部分。GAN是一种新兴技术,用于生成逼真的图像、音频或文本。

6.2 持续学习与自动机器学习(AutoML)

持续学习和AutoML是AI领域中的重要发展方向,致力于降低技术门槛,简化机器学习流程。

代码示例:使用AutoKeras进行自动机器学习

import autokeras as ak# 使用AutoKeras自动化分类任务
clf = ak.ImageClassifier(overwrite=True, max_trials=3)# 假设已经有训练好的图像数据集train_images, train_labels
# 训练模型
clf.fit(train_images, train_labels, epochs=5)# 评估模型
test_loss, test_acc = clf.evaluate(test_images, test_labels)
print(f"Test accuracy: {test_acc}")

这个代码展示了如何使用AutoKeras进行自动机器学习。AutoML工具能够自动化模型选择、超参数调优等步骤,降低了构建高效机器学习模型的难度。

6.3 人工智能的伦理与挑战

随着AI技术的普及,数据隐私、算法偏见和社会影响等问题变得日益重要。

代码示例:处理算法偏见

from sklearn.metrics import classification_report# 在不同群体上评估模型
def evaluate_bias(model, X_test, y_test, group_labels):for group in np.unique(group_labels):idx = np.where(group_labels == group)y_pred = model.predict(X_test[idx])print(f"Evaluation for group {group}:")print(classification_report(y_test[idx], y_pred))# 假设我们有额外的群体标签group_labels
evaluate_bias(best_model, X_test, y_test, group_labels)

这个代码片段展示了如何在不同群体上评估模型,检测算法是否存在偏见。通过这种方法,可以识别出模型在特定群体上的表现差异,进而进行调整以减少偏见。

结论

人工智能、机器学习和深度学习是现代科技的重要组成部分,正深刻影响着各个行业的发展。从理论到实践,再到未来的发展趋势,AI技术的发展为我们提供了前所未有的工具来解决复杂的问题。然而,随着技术的进步,新的挑战也随之而来,如数据隐私、伦理问题等。为了实现AI技术的可持续发展,我们需要在技术创新与社会责任之间找到平衡。通过不断学习和实践,我们能够更好地应用AI技术,推动社会进步,并应对未来的挑战。

相关文章:

深入探索:【人工智能】、【机器学习】与【深度学习】的全景视觉之旅

目录 第一部分:人工智能、机器学习与深度学习概述 1.1 人工智能的概念与发展 代码示例:简单的AI决策系统 1.2 机器学习的定义与分类 代码示例:简单的线性回归模型 1.3 深度学习的基础与应用 代码示例:构建简单的神经网络 …...

使用js和css 实现div旋转围绕圆分布排列

记录,以防忘记 围绕圆 import React, { useEffect } from react; import ./index.scoped.scss;const Test () > {const arr Array.from({ length: 28 }, (_, index) > index 1);useEffect(() > {const dayTotal arr.length;// 动态设置每个点的旋转角…...

SQL Server中CPU使用率过高的排查

CPU使用率过高有许多可能原因,但以下原因最为常见: 1.由于以下情况,表或索引扫描导致的高逻辑读取: 过期统计信息 缺少索引 参数敏感计划 (PSP) 问题 设计不佳的查询 2.工作负荷增加 对于安装了sqlserver的服务器,可…...

AUTOSAR AP常用文档前缀

AUTOSAR AP常用文档前缀总结如下表: 缩写全称含义EXPExplanation文档类别,跟踪类别 讨论其他文件中已经显示的内容的说明材料MODModel文档类别,跟踪类别 元级别1(模型)上的建模内容(模型或从模型生成的内容)RSRequirement Specification文档…...

服务器迁移基于Tomcat部署的java应用,没有源码怎么办?

文章目录 反编译创建java工程编译新的数据库配置类DbUtilclass文件替换到Tomcat配置的应用路径 docBase背景:非国产化项目服务器审计不通过,需要迁移到外部公司。由于项目是第三方公司开发,丢失java项目源码。 部署环境:Tomcat7,JDK1.8 涉及JAVA项目的有两个服务,一个电台…...

kafka-go使用:以及kafka一些基本概念说明

关于kafka 作为开发人员kafka中最常关注的几个概念,是topic,partition和group这几个概念。topic是主题的意思,简单的说topic是数据主题,这样解释好像显得很苍白,只是做了个翻译。一图胜前言,我们还是通过图解来说明。…...

景联文科技:破解数据标注行业痛点,引领高质量AI数据服务

数据标注行业是人工智能和机器学习领域中一个非常重要的组成部分。随着AI技术的发展,对高质量标注数据的需求也在不断增长。 数据标注市场的痛点 1. 团队管理 在众包和转包模式下,管理大量的标注人员是一项挑战。 需要确保标注人员的专业性、稳定性和…...

C#获取Network的相关信息

1,获取网络的通断。 //方法1:无效果,并不能反映当前网络通断 bool availableSystem.Windows.Forms.SystemInformation.Network//方法2:通过VB获取网络状态,可反映当前网络通断 Microsoft.VisualBasic.Devices.Network…...

Jenkins 部署Vue项目指引: Vue项目本地跨域代理 、解决ERR_UNSAFE_PORT

文章目录 引言I Jenkins 部署Vue项目配置插件安装系统配置NodeJS安装目录和别名设置新建任务(通用类型)构建环境Build Steps(构建步骤)II nginx部署站点(端口和站点目录的映射)查找Nginx配置文件端口和站点目录的映射III Vue项目本地跨域代理,屏蔽掉后端服务API的网关IP…...

C语言电子画板

目录 开头程序程序的流程图程序的效果结尾 开头 大家好&#xff0c;我叫这是我58。今天&#xff0c;我们来看一下我用C语言编译的电子画板和与之相关的一些东西。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <Windows.h> int main() …...

Android Gradle开发与应用技术原理

Android Gradle开发与应用技术原理 Android Gradle开发与应用技术原理一、概述二、Gradle构建原理1. Gradle架构2. Gradle构建过程3. 构建脚本 三、Gradle插件机制四、在Android应用中实现Text-to-Speech&#xff08;TTS&#xff09;功能1. 配置Gradle依赖2. 实现TTS功能示例代…...

Midjourney入门-提示词基础撰写与公式

​ 前言 在前几篇教程里我们已经可以初步使用Midjourney进行出图了。 包括也了解了Midjourney的指令与参数。 但如果你想用Midjourney去生成各种各样高质量的图片&#xff0c; 并且生成的图片是你想要的画面内容&#xff0c;也就是更好控制生成图片的画面内容与风格&#xf…...

Apache Tomcat服务器版本号隐藏

渗透测试时发现有一台服务器的404报错页面中&#xff0c;有Apache Tomcat的版本号信息显示&#xff0c;发生了信息泄露&#xff0c;可能导致服务器被攻击。如下所示&#xff1a; 解决步骤如下&#xff1a; 1. 隐藏HTTP响应头中的Server信息 Tomcat默认会在HTTP响应头中包含S…...

【Qt】Qt编程注意事项

目录 Qr中的命名规范 Qt Creator中的快捷键 查询文档的方式 Qt窗口坐标体系 Qr中的命名规范 在学习编程语言阶段&#xff0c;给变量、函数、文件、类命名是非常有讲究的。 命名要有描述性&#xff0c;不要使用abc&#xff0c;xyz这种比较无规律的名字类描述。如果名字比较…...

在Linux系统安装Kafka

注意&#xff1a;我的是在云服务器上基于Docker配 在防火墙上放行端口号 2181(Zookeeper) 9092(Kafka) 一、先配置 Docker 守护进程&#xff08;daemon&#xff09;的镜像加速器&#xff08;registry mirrors&#xff09; sudo mkdir -p /etc/docker sudo tee /etc/docker/da…...

【CSharp】简单定义一个异步方法

【CSharp】定义一个异步方法 1.背景2.异步方法3.代码说明1.背景 相关博客: 【CSharp】使用异步事件处理程序和委托来进行异步调用 https://blog.csdn.net/jn10010537/article/details/140898179在 C# 中,异步方法和同步方法是两种执行代码的方式, 它们主要区别在于处理任务…...

贪心算法之货仓选址问题

#include<stdio.h> #include<stdlib.h> #include<math.h>//贪心算法之货仓选址问题/*** void* p是万能指针&#xff0c;可以和其它任意类型的指针进行转换&#xff0c;前提是确保转换是合法的*/ //写好用于qsort的比较函数&#xff0c;这里写的函数一般用于…...

Java网络编程——Request Response 对象

Response - 网页 上一章我们学习了 Java 中使用 Okhttp3 库请求网页或调用 API 的知识。 使用一条语句执行调用请求&#xff0c;并取得返回结果字符串&#xff1a; call.execute().body().string()execute() 方法是真正执行发送请求&#xff0c;前面的一系列代码是做前置准备…...

【代码随想录训练营第42期 Day24打卡 回溯Part3 - LeetCode 93.复原IP地址 78.子集 90.子集II

目录 一、做题心得 二、题目与题解 题目一&#xff1a;93.复原IP地址 题目链接 题解&#xff1a;回溯--分割问题 题目二&#xff1a;78.子集 题目链接 题解&#xff1a;回溯--子集问题 题目三&#xff1a;90.子集II 题目链接 题解&#xff1a;回溯--子集问题 三、小…...

python venv和virtualenv详解

一、venv简介 C:\Users\love1>python -m venv -h usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear] [--upgrade] [--without-pip][--prompt PROMPT] [--upgrade-deps]ENV_DIR [ENV_DIR ...]该命令用于在一个目录或者多个目录中创建一个虚拟的…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

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

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

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天&#xff0c;通信网络的角色正变得愈发关键。 2025年6月6日&#xff0c;为期三天的华南国际工业博览会在深圳国际会展中心&#xff08;宝安&#xff09;圆满落幕。作为国内工业通信领域的技术型企业&#xff0c;光路科技&#xff08;Fiberroad&…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...

Vue 模板语句的数据来源

&#x1f9e9; Vue 模板语句的数据来源&#xff1a;全方位解析 Vue 模板&#xff08;<template> 部分&#xff09;中的表达式、指令绑定&#xff08;如 v-bind, v-on&#xff09;和插值&#xff08;{{ }}&#xff09;都在一个特定的作用域内求值。这个作用域由当前 组件…...