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

【人工智能机器学习基础篇】——深入详解深度学习之复杂网络结构:卷积神经网络(CNN)、循环神经网络(RNN)、生成对抗网络(GAN)等概念及原理

深入详解深度学习之复杂网络结构:卷积神经网络(CNN)、循环神经网络(RNN)、生成对抗网络(GAN)

深度学习作为人工智能的重要分支,通过复杂的网络结构实现对数据的高级抽象和理解。本文将深入探讨三种核心的复杂网络结构:卷积神经网络(Convolutional Neural Networks, CNN)、循环神经网络(Recurrent Neural Networks, RNN)和生成对抗网络(Generative Adversarial Networks, GAN),详细解读其关键概念、核心原理、示例及主要应用。


目录

  1. 卷积神经网络(CNN)
    • 关键概念
    • 核心原理
    • 示例及实现
    • 主要应用
  2. 循环神经网络(RNN)
    • 关键概念
    • 核心原理
    • 示例及实现
    • 主要应用
  3. 生成对抗网络(GAN)
    • 关键概念
    • 核心原理
    • 示例及实现
    • 主要应用
  4. 总结与展望

卷积神经网络(CNN)

关键概念

  1. 卷积层(Convolutional Layer):利用卷积核对输入数据进行滑动窗口操作,提取局部特征。
  2. 池化层(Pooling Layer):通过下采样操作减少特征图尺寸,降低计算复杂度,防止过拟合。
  3. 全连接层(Fully Connected Layer):将前层提取的特征进行整合,用于分类或回归任务。
  4. 激活函数(Activation Function):引入非线性,如ReLU、Sigmoid、Tanh等,增强模型表达能力。
  5. 卷积核/滤波器(Kernel/Filter):用于扫描输入数据提取特征的矩阵,权重共享机制。
  6. 特征图(Feature Map):卷积操作后的输出,反映数据的局部特征。
  7. 参数共享(Parameter Sharing):同一卷积核在不同位置共享权重,减少模型参数数量。

核心原理

卷积神经网络的设计灵感来源于生物视觉系统,通过模拟视觉皮层的结构,擅长处理具有网格结构的数据,如图像。其核心优势在于:

  • 局部感受野(Local Receptive Field):卷积核只关注输入的局部区域,能够有效捕捉局部特征。
  • 权重共享:同一卷积核应用于整个输入,有效减少参数数量,防止过拟合。
  • 多层次特征提取:通过多层卷积和池化,逐步提取从低级到高级的特征表示。

示例及实现

以下是一个使用TensorFlow和Keras构建和训练卷积神经网络(CNN)进行CIFAR-10图像分类的示例。

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout
from tensorflow.keras.datasets import cifar10
from tensorflow.keras.utils import to_categorical# 加载CIFAR-10数据集
(x_train, y_train), (x_test, y_test) = cifar10.load_data()# 数据预处理
x_train = x_train.astype('float32') / 255.0  # 标准化
x_test = x_test.astype('float32') / 255.0
y_train = to_categorical(y_train, 10)       # 独热编码
y_test = to_categorical(y_test, 10)# 构建CNN模型
model = Sequential([Conv2D(32, (3, 3), activation='relu', padding='same', input_shape=(32, 32, 3)),Conv2D(32, (3, 3), activation='relu', padding='same'),MaxPooling2D(pool_size=(2, 2)),Dropout(0.25),Conv2D(64, (3, 3), activation='relu', padding='same'),Conv2D(64, (3, 3), activation='relu', padding='same'),MaxPooling2D(pool_size=(2, 2)),Dropout(0.25),Flatten(),Dense(512, activation='relu'),Dropout(0.5),Dense(10, activation='softmax')
])# 编译模型
model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy'])# 训练模型
model.fit(x_train, y_train, epochs=50, batch_size=64, validation_split=0.2, verbose=2)# 评估模型
test_loss, test_acc = model.evaluate(x_test, y_test)
print(f'测试准确率: {test_acc:.4f}')

代码解释

  1. 数据加载与预处理

    • 使用Keras内置的CIFAR-10数据集,包含60000张32x32彩色图像,10个类别。
    • 将图像像素值标准化到[0,1]区间,标签进行独热编码。
  2. 模型构建

    • 卷积层:使用32和64个3x3卷积核,激活函数为ReLU,padding='same'保持输入尺寸。
    • 池化层:2x2最大池化降低特征图尺寸。
    • Dropout层:防止过拟合,分别设置25%和50%的神经元随机失活。
    • 全连接层:512个神经元,激活函数为ReLU,最后输出层有10个神经元,激活函数为Softmax。
  3. 模型编译与训练

    • 使用Adam优化器和交叉熵损失函数,适用于多分类任务。
    • 训练50个epoch,批量大小为64,使用20%的训练数据作为验证集。
  4. 模型评估

    • 在测试集上评估模型性能,输出测试准确率。

主要应用

卷积神经网络广泛应用于各类计算机视觉任务,包括但不限于:

  • 图像分类:识别图像所属的类别,如ImageNet竞赛。
  • 目标检测:定位图像中的物体,如YOLO、Faster R-CNN。
  • 图像分割:将图像划分为不同区域,进行像素级分类,如U-Net、Mask R-CNN。
  • 图像生成:生成逼真的图像,如DCGAN、StyleGAN。
  • 视频分析:动作识别、视频摘要等。

循环神经网络(RNN)

关键概念

  1. 循环连接(Recurrent Connection):允许信息在时间步之间传递,形成记忆。
  2. 隐藏状态(Hidden State):存储先前时间步的信息,影响当前输出。
  3. 时间步(Time Step):序列数据中的每个数据点。
  4. 序列数据(Sequential Data):具有时间或顺序关系的数据,如文本、音频、时间序列。
  5. 长短期依赖(Long-term Dependencies):捕捉序列中远距离元素之间的依赖关系。

核心原理

循环神经网络通过在网络中引入循环连接,使得网络能够处理序列数据,记忆前序信息。每个时间步的输出不仅依赖于当前输入,还依赖于前一时间步的隐藏状态。标准RNN存在梯度消失和梯度爆炸的问题,难以捕捉长距离依赖。为了解决这些问题,提出了LSTM(长短期记忆网络)和GRU(门控循环单元)等变种。

示例及实现

以下是一个使用TensorFlow和Keras构建和训练LSTM模型进行IMDB电影评论情感分类的示例。

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, LSTM, Dense, Dropout
from tensorflow.keras.datasets import imdb
from tensorflow.keras.preprocessing import sequence# 参数设置
max_features = 20000  # 词汇表大小
maxlen = 100          # 序列最大长度# 加载IMDB数据集
(x_train, y_train), (x_test, y_test) = imdb.load_data(num_words=max_features)# 数据预处理,填充序列
x_train = sequence.pad_sequences(x_train, maxlen=maxlen)
x_test = sequence.pad_sequences(x_test, maxlen=maxlen)# 构建LSTM模型
model = Sequential([Embedding(max_features, 128, input_length=maxlen),  # 嵌入层,将词索引转换为密集向量LSTM(128, dropout=0.2, recurrent_dropout=0.2),      # LSTM层,128个隐藏单元Dense(1, activation='sigmoid')                      # 输出层,二分类
])# 编译模型
model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['accuracy'])# 训练模型
model.fit(x_train, y_train, epochs=10, batch_size=64, validation_split=0.2)# 评估模型
test_loss, test_acc = model.evaluate(x_test, y_test)
print(f'测试准确率: {test_acc:.4f}')

代码解释

  1. 参数设置与数据加载

    • max_features:选择最常见的20000个词作为词汇表。
    • maxlen:将所有序列填充或截断到100个词。
    • 使用Keras内置的IMDB数据集,按词频编码词索引。
  2. 数据预处理

    • 使用pad_sequences将所有序列填充到固定长度,确保输入形状一致。
  3. 模型构建

    • Embedding层:将词索引转换为128维的密集向量,捕捉词语语义。
    • LSTM层:具有128个隐藏单元,dropoutrecurrent_dropout用于防止过拟合。
    • 输出层:使用Sigmoid激活函数进行二分类。
  4. 模型编译与训练

    • 使用Adam优化器和二元交叉熵损失函数。
    • 训练10个epoch,批量大小为64,使用20%的训练数据作为验证集。
  5. 模型评估

    • 在测试集上评估模型性能,输出测试准确率。

主要应用

循环神经网络擅长处理序列数据,广泛应用于多个领域,包括:

  • 自然语言处理(NLP)

    • 语言模型与文本生成。
    • 机器翻译。
    • 情感分析。
    • 命名实体识别。
  • 时间序列预测

    • 股票价格预测。
    • 气象预报。
    • 传感器数据分析。
  • 语音识别

    • 将语音信号转换为文字。
    • 语音指令识别。
  • 视频分析

    • 动作识别。
    • 视频摘要与检索。

生成对抗网络(GAN)

关键概念

  1. 生成器(Generator):负责生成假样本,试图模仿真实数据分布。
  2. 判别器(Discriminator):负责区分真假样本,判断输入样本是否来自真实数据。
  3. 对抗训练(Adversarial Training):生成器和判别器通过对抗过程共同优化,互相提升。
  4. 潜在空间(Latent Space):生成器输入的随机噪声空间,通过映射生成样本。
  5. 损失函数(Loss Function):生成器和判别器的优化目标,通常采用交叉熵损失。

核心原理

生成对抗网络由生成器和判别器两个部分组成,形成一个博弈过程:

  • 生成器:接收随机噪声(如高斯噪声),生成尽可能真实的样本,目的是欺骗判别器。
  • 判别器:接收真实样本和生成器生成的假样本,输出样本真实性的概率,目的是准确区分真假样本。

训练过程中,生成器和判别器交替优化,生成器不断提高生成样本的真实性,判别器不断提高辨别能力。最终,生成器能生成与真实数据分布高度接近的样本。

示例及实现

以下是一个使用TensorFlow和Keras构建和训练基本GAN在MNIST数据集上生成手写数字的示例。

import tensorflow as tf
from tensorflow.keras import layers
import numpy as np
import matplotlib.pyplot as plt# 设置随机种子
tf.random.set_seed(42)
np.random.seed(42)# 加载MNIST数据集
(x_train, _), (_, _) = tf.keras.datasets.mnist.load_data()
x_train = x_train.astype('float32') / 255.0  # 标准化
x_train = np.expand_dims(x_train, axis=-1)   # 增加通道维度# 定义潜在空间维度
latent_dim = 100# 构建生成器
def build_generator(latent_dim):model = Sequential([layers.Dense(7*7*256, use_bias=False, input_shape=(latent_dim,)),layers.BatchNormalization(),layers.LeakyReLU(),layers.Reshape((7, 7, 256)),layers.Conv2DTranspose(128, (5, 5), strides=(1, 1), padding='same', use_bias=False),layers.BatchNormalization(),layers.LeakyReLU(),layers.Conv2DTranspose(64, (5, 5), strides=(2, 2), padding='same', use_bias=False),layers.BatchNormalization(),layers.LeakyReLU(),layers.Conv2DTranspose(1, (5, 5), strides=(2, 2), padding='same', use_bias=False, activation='tanh')])return model# 构建判别器
def build_discriminator():model = Sequential([layers.Conv2D(64, (5, 5), strides=(2, 2), padding='same', input_shape=[28, 28, 1]),layers.LeakyReLU(),layers.Dropout(0.3),layers.Conv2D(128, (5, 5), strides=(2, 2), padding='same'),layers.LeakyReLU(),layers.Dropout(0.3),layers.Flatten(),layers.Dense(1, activation='sigmoid')])return model# 实例化生成器和判别器
generator = build_generator(latent_dim)
discriminator = build_discriminator()# 编译判别器
discriminator.compile(optimizer='adam',loss='binary_crossentropy',metrics=['accuracy'])# 构建GAN模型,将判别器设置为不可训练
discriminator.trainable = False
gan_input = tf.keras.Input(shape=(latent_dim,))
generated_image = generator(gan_input)
gan_output = discriminator(generated_image)
gan = tf.keras.Model(gan_input, gan_output)# 编译GAN
gan.compile(optimizer='adam', loss='binary_crossentropy')# 训练参数
epochs = 10000
batch_size = 128
sample_interval = 1000# 标签平滑
real = np.ones((batch_size, 1)) * 0.9
fake = np.zeros((batch_size, 1))# 训练过程
for epoch in range(1, epochs + 1):# ---------------------#  训练判别器# ---------------------# 选择真实样本idx = np.random.randint(0, x_train.shape[0], batch_size)real_images = x_train[idx]# 生成假样本noise = np.random.normal(0, 1, (batch_size, latent_dim))generated_images = generator.predict(noise)# 训练判别器d_loss_real = discriminator.train_on_batch(real_images, real)d_loss_fake = discriminator.train_on_batch(generated_images, fake)d_loss = 0.5 * np.add(d_loss_real, d_loss_fake)# ---------------------#  训练生成器# ---------------------noise = np.random.normal(0, 1, (batch_size, latent_dim))g_loss = gan.train_on_batch(noise, real)# 打印进度if epoch % 1000 == 0 or epoch == 1:print(f"Epoch {epoch} / {epochs} [D loss: {d_loss[0]:.4f}, acc.: {100*d_loss[1]:.2f}%] [G loss: {g_loss:.4f}]")# 生成并保存样本noise = np.random.normal(0, 1, (16, latent_dim))gen_images = generator.predict(noise)gen_images = 0.5 * gen_images + 0.5  # 反标准化fig, axs = plt.subplots(4, 4, figsize=(4,4))cnt = 0for i in range(4):for j in range(4):axs[i,j].imshow(gen_images[cnt, :, :, 0], cmap='gray')axs[i,j].axis('off')cnt += 1plt.show()

代码解释

  1. 数据加载与预处理

    • 使用Keras内置的MNIST数据集,包含60000张28x28灰度手写数字图像。
    • 将图像像素值标准化到[-1,1]区间(通过tanh激活),并增加通道维度。
  2. 生成器构建

    • 从潜在空间(100维高斯噪声)开始,经过密集层、批量归一化、LeakyReLU激活、转置卷积层,生成28x28x1的图像。
  3. 判别器构建

    • 接收28x28x1的图像,经过卷积层、LeakyReLU激活、Dropout层、全连接层,输出样本真实性的概率。
  4. GAN模型构建与编译

    • 将生成器和判别器结合,构建对抗模型。
    • 判别器在GAN模型中设为不可训练,通过训练生成器优化其参数。
  5. 训练过程

    • 每个epoch先训练判别器,使用真实样本和生成出的假样本。
    • 然后训练生成器,通过对抗训练提高生成样本的真实性。
    • 定期生成并展示样本图像,观察生成效果。

主要应用

生成对抗网络具有强大的生成能力,广泛应用于多个领域,包括但不限于:

  • 图像生成:生成高质量、逼真的图像,如人脸生成(StyleGAN)。
  • 图像修复与超分辨率:填补图像缺失部分,提高图像分辨率。
  • 艺术风格转换:将一种艺术风格应用到另一幅图像上,如风格迁移(CycleGAN)。
  • 数据增强:为模型提供更多训练样本,改善模型泛化能力。
  • 文本生成:生成自然语言文本,如对话系统中的回复。
  • 语音合成:生成逼真的语音音频,应用于语音助手等。

总结与展望

卷积神经网络(CNN)、循环神经网络(RNN)和生成对抗网络(GAN)作为深度学习中三种核心的复杂网络结构,分别在计算机视觉、自然语言处理和生成模型等领域展现出卓越的性能和广泛的应用前景。

  • **卷积神经网络(CNN)**擅长处理图像数据,通过层叠的卷积和池化操作实现多层次特征提取,广泛应用于图像分类、目标检测等任务。
  • **循环神经网络(RNN)**专注于处理序列数据,通过循环连接和隐藏状态实现时间依赖建模,适用于自然语言处理、时间序列预测等领域。
  • **生成对抗网络(GAN)**通过生成器和判别器的对抗训练,能够生成高度逼真的数据样本,应用于图像生成、数据增强等多个方向。

随着研究的深入,这些网络结构不断演化,衍生出更为复杂和高效的变种,如ResNet、Transformer、CycleGAN等,进一步推动了人工智能技术的发展。未来,结合多种网络结构和新兴技术,深度学习将在更多复杂和多样化的任务中发挥重要作用。


参考资料

  1. 《深度学习》(Ian Goodfellow, Yoshua Bengio, Aaron Courville 著)
  2. 《神经网络与深度学习》(Michael Nielsen 著)
  3. TensorFlow官方网站:https://www.tensorflow.org/
  4. Keras官方网站:https://keras.io/
  5. PyTorch官方网站:https://pytorch.org/
  6. GAN论文:“Generative Adversarial Networks” by Ian Goodfellow et al., 2014.

本文旨在全面介绍卷积神经网络(CNN)、循环神经网络(RNN)和生成对抗网络(GAN)的关键概念、核心原理、示例及主要应用,帮助读者深入理解深度学习的复杂网络结构和其在实际中的应用。希望对您的学习和研究有所帮助。

相关文章:

【人工智能机器学习基础篇】——深入详解深度学习之复杂网络结构:卷积神经网络(CNN)、循环神经网络(RNN)、生成对抗网络(GAN)等概念及原理

深入详解深度学习之复杂网络结构:卷积神经网络(CNN)、循环神经网络(RNN)、生成对抗网络(GAN) 深度学习作为人工智能的重要分支,通过复杂的网络结构实现对数据的高级抽象和理解。本文…...

MySQL 入门教程

MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。 在本教程中,会让大家快速掌握MySQL的基本知识,并轻松使用MySQL数据库。 什么…...

【sql】CAST(GROUP_CONCAT())实现一对多对象json输出

数据库:mysql 5.7版本以上 问题:一对多数据,实现输出一条数据,并将多条数据转换成json对象输出,可以实现一对多个字段。 项目中关系较为复杂,以下简化数据关系如下: t1是数据表,t…...

QT:控件属性及常用控件(1)------核心控件及属性

一个图形化界面上的内容,不需要我们直接从零去实现 QT中已经提供了很多的内置控件: 按钮,文本框,单选按钮,复选按钮,下拉框等等。。。。。 文章目录 1.常用控件属性1.1 enabled1.2 geometry1.2.1 geometry…...

使用 Python结合ffmpeg 实现单线程和多线程推流

一、引言 在本文中,我们将详细介绍如何使用 Python 进行视频的推流操作。我们将通过两个不同的实现方式,即单线程推流和多线程推流,来展示如何利用 cv2(OpenCV)和 subprocess 等库将视频帧推送到指定的 RTMP 地址。这…...

Linux一些问题

修改YUM源 Centos7将yum源更换为国内源保姆级教程_centos使用中科大源-CSDN博客 直接安装包,走链接也行 Index of /7.9.2009/os/x86_64/Packages 直接复制里面的安装包链接,在命令行直接 yum install https://vault.centos.org/7.9.2009/os/x86_64/Pa…...

在 Ubuntu 24.04.1 LTS | Python 3.12 环境下部署 Crypto 库

测试一些密码学方案需要用到 Crypto 库,网上教程大多针对 Windows 和 Python 3.10 或以下的环境,所以写下了这篇博文。 部署与使用 首先执行 su 输入密码进入超级用户,部署完 Python 3.12 环境后,执行以下命令进行安装&#xff…...

HTML5实现好看的二十四节气网页源码

HTML5实现好看的新年春节元旦网站源码 前言一、设计来源1.1 主界面1.2 关于我们界面1.3 春季节气界面1.4 夏季节气界面1.5 秋季节气界面1.6 冬季节气界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载结束语 HTML5实现好看的二十四节气网页源码,春季节气&#xf…...

C++(9)—类和对象(上) ②实例化

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、实例化概念二、对象大小 1.对象存储2.内存对齐规则总结 前言 提示:以下是本篇文章正文内容,下面案例可供参考 一、实例化概念 • …...

Effective C++读书笔记——item2(const,enum,inlines取代#define)

关于用常量取代 #define 的总体原则 在编程中,应尽量减少预处理器(特别是 #define)的使用,可通过合适的替代方式来避免 #define 带来的诸多问题,虽然不能完全消除预处理器相关指令(如 #include、#ifdef/#i…...

如何科学评估与选择新版本 Python 编程语言和工具

文章目录 摘要引言评估新版本的关键因素适用性评估成本与收益分析 新版本功能的实际应用示例代码模块详细解析示例代码模块代码模块解析实际应用场景如何运行与配图 QA环节总结参考资料 摘要 随着技术的快速发展,编程语言和软件工具不断推出新版本,带来…...

第十届“挑战杯”大学生课外学术科技作品竞赛解析及资料

“挑战杯”被誉为大学生科技创新创业的“奥林匹克”盛会,它汇聚了来自各个学科、各个年级的精英人才。在这里,同学们带着对未知的好奇和对知识的渴望,组成一个个团队,向难题发起挑战。现在,第十届“挑战杯”大学生课外…...

【门铃工作原理】2021-12-25

缘由关于#门铃工作原理#的问题,如何解决?-嵌入式-CSDN问答 4 RST(复位)当此引脚接高电平时定时器工作,当此引脚接地时芯片复位,输出低电平。 按钮按下给电容器充电并相当与短路了R1改变了频率,按…...

Chain of Agents(COA):大型语言模型在长文本任务中的协作新范式

随着人工智能技术的飞速发展,大型语言模型(LLM)在自然语言处理领域的应用日益广泛。然而,LLM在处理长文本任务时仍面临诸多挑战。传统的解决方案,如截断输入上下文或使用基于检索增强生成(RAG)的…...

业务模型与UI设计

业务数据模型的设计、UI设计这应该是程序设计中不可缺少的部分。做程序设计的前提应该先把这两块设计好,那么,来一个实际案例,看看这2块的内容。 汽车保养记录业务模型与UI设计: 一、【车辆清单】 记录车辆相关的数据&#xff0…...

Apache SeaTunnel深度优化:CSV字段分割能力的增强

Apache SeaTunnel深度优化:CSV字段分割能力的增强 一、Apache SeaTunnel与CSV处理 1.1 Apache SeaTunnel简介 Apache SeaTunnel(原名Waterdrop)是一个分布式、高性能的数据集成平台,支持海量数据的实时同步。它允许用户通过配置…...

免费下载 | 2024年具身大模型关键技术与应用报告

这份报告的核心内容涉及具身智能的关键技术与应用,主要包括以下几个方面: 具身智能的定义与重要性: 具身智能是基于物理身体进行感知和行动的智能系统,通过与环境的交互获取信息、理解问题、做出决策并实现行动,产生智…...

SSM-Spring-AOP

目录 1 AOP实现步骤(以前打印当前系统的时间为例) 2 AOP工作流程 3 AOP核心概念 4 AOP配置管理 4-1 AOP切入点表达式 4-1-1 语法格式 4-1-2 通配符 4-2 AOP通知类型 五种通知类型 AOP通知获取数据 获取参数 获取返回值 获取异常 总结 5 …...

jenkins修改端口以及开机自启

修改Jenkins端口 方式一:通过配置文件修改(以CentOS为例) 找到配置文件:在CentOS系统中,通常可以在/etc/sysconfig/jenkins文件中修改Jenkins的配置。如果没有这个文件,也可以查看/etc/default/jenkins&…...

按照人们阅读Excel习惯来格式化BigDecimal

1、环境/问题描述 使用springboot发送邮件(附件)的方式将月度报表发送给领导查阅,数据是准确的,领导基本满意。 就是对一些数字的格式化提出了改进建议,比如不要让大数字自动转为科学计数法、浮点数小数点后都是0就不要带出来,根…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

【位运算】消失的两个数字(hard)

消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...