【深度学习 | 机器学习】干货满满 | 近万字总结了 12 个令人惊艳的神经网络可视化工具!

news2024/11/26 0:07:49

文章目录

  • 一、神经网络可视化难点在哪里?
  • 二、神经网络可视化方法
  • 三、神经网络可视化解释的工具
    • 3.1 draw_convnet
    • 3.2 NNSVG
    • 3.3 PlotNeuralNet
    • 3.4 Tensorboard
    • 3.5 Caffe
    • 3.6 Matlab
    • 3.7 Keras.js
    • 3.8 DotNet
    • 3.9 Graphviz
    • 3.10 ConX
    • 3.11 ENNUI
    • 3.12 Neataptic

神经网络可视化是指通过图形化方式展示神经网络的结构、内部状态和决策过程的技术。尽管神经网络在解决复杂任务上表现出色,但其内部运行机制常常被视为黑盒,难以解释和理解。

一、神经网络可视化难点在哪里?

神经网络可视化的难点在于以下几个方面:

  1. 复杂性:神经网络的结构通常非常复杂,包含大量的神经元和连接。对于大规模网络,准确地可视化每个神经元和连接的信息是一项巨大的挑战。
  2. 维度灾难:神经网络的输入和隐藏层通常是高维的,难以直接在二维屏幕上展示。降低维度的同时又要保留关键信息是一个挑战。
  3. 动态性:神经网络是动态的系统,在训练和推理过程中不断更新和调整权重和激活状态。捕捉网络的动态行为并实时更新可视化是一项复杂的任务。
  4. 解释性:神经网络通常被视为黑盒模型,其内部决策和特征表示的解释性有限。可视化需要解释网络学到的特征和决策过程,使其对人类更具可理解性。
  5. 可扩展性:对于大规模的神经网络,如深度卷积神经网络 (CNN) 和循环神经网络 (RNN),可视化需要能够处理大量的层和参数,并具备可扩展性和效率。
  6. 可视化方法选择:存在多种不同的可视化方法和技术,选择合适的方法来呈现神经网络的结构和内部信息是一个挑战。

二、神经网络可视化方法

神经网络可视化是一种将神经网络的结构和运行过程以图形化方式呈现的技术。它可以帮助我们更好地理解神经网络的内部工作原理和特征提取过程。以下是几种常见的神经网络可视化方法:

  1. 可视化网络结构:可以使用工具如TensorBoard、Graphviz等将神经网络的结构以图形化方式展示出来。这种可视化方法能够清晰地展示网络的层级关系、连接方式以及参数数量等。
  2. 可视化神经元激活:通过可视化神经元的激活情况,可以观察神经网络在不同层次上对输入数据进行特征提取的过程。一种常见的方法是使用预训练模型,输入一张图像,然后可视化中间层的神经元激活图,从而了解网络对不同特征的敏感性。
  3. 可视化卷积核:对于卷积神经网络(CNN),可视化卷积核可以帮助我们理解网络是如何学习特定的特征和模式的。可以将卷积核可视化为图像,显示出每个卷积核对应的特定特征。
  4. 可视化梯度:可视化神经网络中的梯度可以帮助我们理解网络在反向传播过程中的信息流动情况,以及各层对梯度的贡献程度。通过可视化梯度,可以判断网络是否出现梯度消失或梯度爆炸的情况。
  5. 可视化网络输出:将网络的输出结果可视化可以帮助我们理解网络对不同输入数据的预测或分类结果。例如,在图像分类任务中,可以将网络对输入图像的分类概率可视化为柱状图或热力图,从而了解网络对不同类别的置信度等

三、神经网络可视化解释的工具

3.1 draw_convnet

draw_convnet是一个用于绘制卷积神经网络(Convolutional Neural Network,CNN)结构的Python库。它可以帮助我们以可视化的方式呈现CNN的层级结构、参数数量和数据流动情况,从而更好地理解和分析网络模型。

draw_convnet库提供了一个简单的API,使我们能够通过指定层级、特征图大小、卷积核大小等参数来创建CNN的可视化图。以下是使用draw_convnet的简单示例:

from draw_convnet import draw_convnet

# 定义CNN结构
convnet_layers = [
    ('conv2d', {'shape': [32, 32, 3], 'kernel': [5, 5], 'pad': 'same', 'activ': 'relu'}),
    ('pool', {'shape': [32, 32, 3], 'kernel': [2, 2], 'stride': 2}),
    ('conv2d', {'shape': [16, 16, 32], 'kernel': [5, 5], 'pad': 'valid', 'activ': 'relu'}),
    ('pool', {'shape': [16, 16, 32], 'kernel': [2, 2], 'stride': 2}),
    ('flatten', {}),
    ('dense', {'units': 256, 'activ': 'relu'}),
    ('dense', {'units': 10, 'activ': 'softmax'})
]

# 绘制CNN结构图
draw_convnet(convnet_layers, 'convnet.png')

在上面的示例中,我们首先定义了一个CNN的层级结构,其中包含了卷积层、池化层、全连接层等。然后,我们使用draw_convnet函数来创建CNN的可视化图,并将其保存为名为convnet.png的图像文件。

通过使用draw_convnet库,我们可以直观地了解CNN的结构和参数设置,以及数据在网络中的流动方式。这有助于我们更好地理解和调试CNN模型,并对其进行优化和改进。

https://github.com/gwding/draw_convnet

在这里插入图片描述

3.2 NNSVG

NNSVG(Neural Network SVG)是一个用于生成神经网络结构的可伸缩矢量图(Scalable Vector Graphics)的Python库。它可以将神经网络的结构以可视化的方式呈现,包括层级结构、连接关系和节点信息,从而帮助我们更好地理解和分析神经网络模型。

NNSVG的主要功能是根据给定的神经网络参数,生成相应的SVG图形文件。这使得生成的图像可以无损放大或缩小,而不会导致图像质量的损失。这对于展示大型复杂的神经网络结构非常有用,因为我们可以根据需要自由调整图像的大小,以便查看细节或全局结构。

使用NNSVG非常简单。以下是一个使用NNSVG生成神经网络结构的示例:

import nnsvg

# 定义神经网络结构
network = nnsvg.Network()
input_layer = nnsvg.Layer(784, name='Input')
hidden_layer1 = nnsvg.Layer(256, name='Hidden 1', activation='relu')
hidden_layer2 = nnsvg.Layer(128, name='Hidden 2', activation='relu')
output_layer = nnsvg.Layer(10, name='Output', activation='softmax')

# 建立网络层级关系
network.add_layer(input_layer)
network.add_layer(hidden_layer1)
network.add_layer(hidden_layer2)
network.add_layer(output_layer)
network.connect_layers()

# 生成SVG图像文件
network.save('network.svg')

在上面的示例中,我们首先创建了一个神经网络结构,包括输入层、隐藏层和输出层,并指定了它们的节点数量和激活函数。然后,我们使用add_layer方法将层级添加到网络中,并使用connect_layers方法建立层级之间的连接关系。最后,我们使用save方法将生成的SVG图像保存为名为network.svg的文件。

通过使用NNSVG,我们可以轻松地生成漂亮且可伸缩的神经网络结构图,以便进行展示、文档编写或学术研究等用途。这使得我们能够更好地传达和理解神经网络模型的结构和架构。

http://alexlenail.me/NN-SVG/LeNet.html

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

3.3 PlotNeuralNet

PlotNeuralNet是一个用于可视化神经网络结构的Python库。它提供了简单易用的功能,可以以可视化的方式绘制神经网络的连接关系和节点信息,帮助我们更好地理解和展示神经网络模型。

使用PlotNeuralNet,我们可以通过简洁的代码生成高质量的神经网络结构图。以下是一个使用PlotNeuralNet生成神经网络结构图的示例:

from plotneuralnet import PlotNeuralNet

# 创建一个PlotNeuralNet实例
nn = PlotNeuralNet()

# 定义神经网络结构
nn.add_input_layer(784)
nn.add_hidden_layer(256, activation='relu')
nn.add_hidden_layer(128, activation='relu')
nn.add_output_layer(10, activation='softmax')

# 生成神经网络结构图
nn.build()

# 绘制神经网络结构图
nn.save_fig("neural_network.png")

在上面的示例中,我们首先导入PlotNeuralNet库并创建一个PlotNeuralNet实例。然后,我们使用add_input_layer、add_hidden_layer和add_output_layer方法定义了神经网络的各个层级,并指定了激活函数。接下来,我们使用build方法生成神经网络的结构图,并使用save_fig方法将图像保存为名为neural_network.png的文件。

使用PlotNeuralNet可以轻松地创建神经网络结构图,图形清晰美观。它提供了一些自定义选项,如激活函数的选择和节点样式的修改,以便满足不同的需求。无论是在学术研究中展示模型结构,还是在技术报告中呈现神经网络架构,PlotNeuralNet都是一个方便而实用的工具。

https://github.com/HarisIqbal88/PlotNeuralNet

在这里插入图片描述

3.4 Tensorboard

TensorBoard是一个用于可视化和监控深度学习模型训练过程的工具,由TensorFlow提供支持。它提供了一个直观的Web界面,可以帮助我们可视化模型的架构、训练过程中的损失和指标变化、模型参数的分布情况以及训练样本的可视化等。

TensorBoard的主要功能包括:

可视化模型图: TensorBoard可以绘制和展示神经网络模型的计算图,帮助我们理解模型的结构、层级关系和参数连接情况。这有助于调试和优化模型的架构。

实时损失和指标曲线: 在训练过程中,TensorBoard可以实时显示损失函数、准确率、验证指标等的变化曲线图。这使得我们可以方便地监控模型的训练进度,并对训练过程进行调整和优化。

模型参数分布可视化: TensorBoard可以可视化模型参数的分布情况,帮助我们了解模型参数的取值范围和分布情况。这对于调试模型和发现潜在问题非常有帮助。

特征可视化: TensorBoard提供了一些特征可视化工具,如嵌入空间的投影、图像生成等,可以帮助我们理解模型对输入数据的表示和学习过程。

训练样本可视化: TensorBoard可以显示训练数据的可视化,包括图像、音频、文本等。这有助于我们检查和验证数据预处理的效果。

使用TensorBoard,我们只需要将训练过程中的日志数据保存到指定的目录,并在终端运行TensorBoard命令,就可以在浏览器中访问TensorBoard的Web界面,查看和分析训练过程的可视化结果。

总的来说,TensorBoard是一个非常强大和实用的工具,能够帮助我们更好地理解、调试和优化深度学习模型。无论是在研究中可视化模型,还是在工程中监控训练过程,TensorBoard都是一个非常有用的辅助工具。

https://www.tensorflow.org/tensorboard/graphs

在这里插入图片描述

3.5 Caffe

Caffe也提供了可视化神经网络的功能,让用户可以更好地理解和分析模型的结构。

Caffe的可视化神经网络主要通过两个工具实现:NetDraw和NetSurgery。

  1. NetDraw: NetDraw是Caffe的一个可视化工具,可以绘制和展示神经网络模型的架构图。通过NetDraw,用户可以直观地查看模型的层级结构、层之间的连接方式以及层的属性。NetDraw生成的网络图形可以帮助用户理解模型的组织方式和数据流动路径。
  2. NetSurgery: NetSurgery是Caffe的另一个工具,可以在训练之前或之后对已有的模型进行修改和调整。通过NetSurgery,用户可以直接编辑和修改网络模型的参数、层的属性和连接关系。这使得用户可以根据自己的需求对模型进行定制和优化。
https://github.com/BVLC/caffe/blob/master/python/caffe/draw.py

在这里插入图片描述

3.6 Matlab

Matlab是一种流行的科学计算和数据分析工具,它也提供了用于可视化神经网络的功能。在Matlab中,可以使用Neural Network Toolbox来构建、训练和可视化神经网络模型。

以下是Matlab中可视化神经网络的一些常用功能和工具:

  1. neuralnetworkgui: neuralnetworkgui是Matlab中的一个交互式图形界面工具,可以用于可视化和编辑神经网络。通过neuralnetworkgui,用户可以直观地构建神经网络模型,设置网络的层级结构、连接方式和参数等。该工具还提供了可视化的训练进度和性能指标,方便用户进行模型的调试和优化。
  2. view: 在Matlab中,可以使用view函数来可视化已构建的神经网络模型。通过view函数,用户可以查看网络的层级结构、连接方式和权重等信息。该函数将网络表示为一个图形,方便用户理解和分析模型的组织方式和数据流动路径。
  3. plotperf: plotperf函数可以用于绘制训练过程中的性能指标曲线,如损失函数曲线、准确率曲线等。通过可视化这些曲线,用户可以直观地了解模型在训练过程中的性能变化情况,以便进行模型的评估和调整。
  4. gensim: gensim是Matlab中的一个函数,用于生成神经网络的仿真图。该函数可以根据给定的网络结构和参数生成网络的仿真图像,展示神经元之间的连接和激活情况。这有助于用户更好地理解和分析神经网络的工作原理。
http://www.mathworks.com/help/nnet/ref/view.html

在这里插入图片描述

3.7 Keras.js

Keras.js是一个用于在Web浏览器中运行Keras模型的开源JavaScript库。它提供了一个简单易用的界面,用于加载和执行经过训练的Keras模型,并在Web浏览器中进行预测。

Keras.js还提供了一些可视化神经网络的功能,以帮助用户更好地理解和分析模型的结构。以下是Keras.js中常用的可视化功能:

模型摘要(Model Summary): 使用Keras.js,可以轻松地生成神经网络模型的摘要。摘要提供了模型的层级结构、层级名称、输出形状和可训练参数数量等信息。这有助于用户快速了解模型的组成和规模。

层级可视化(Layer Visualization): Keras.js提供了一种方式来可视化神经网络的每个层级。通过该功能,用户可以查看每个层级的名称、类型和输出形状。这有助于用户了解神经网络模型中不同层级的作用和信息流动。

权重可视化(Weight Visualization): Keras.js允许用户可视化神经网络模型中各层级的权重。权重可视化提供了权重矩阵的热图或其他可视化形式,显示了神经元之间的连接强度和权重分布。这有助于用户理解模型中的重要特征和连接模式。

激活可视化(Activation Visualization): 使用Keras.js,用户可以可视化神经网络中的激活函数的输出。这可以通过绘制激活函数的热图或可视化每个层级的激活值来实现。激活可视化有助于用户了解模型在不同层级上的信息流动和特征提取过程。

通过以上可视化功能,Keras.js使用户能够直观地了解和分析神经网络模型的结构、权重分布和激活情况。这有助于用户对模型进行调试、优化和解释,并提供了对模型工作原理的更深入理解。

https://transcranial.github.io/keras-js/#/inception-v3

在这里插入图片描述

3.8 DotNet

在 .NET 中可视化神经网络可以借助各种工具和库来实现。以下是几个常用的方式:

TensorFlow.NET: TensorFlow.NET 是一个 .NET 接口到 TensorFlow 的库。它提供了在 .NET 中构建和训练神经网络的功能,并且支持可视化神经网络结构。TensorFlow.NET 可以通过导出模型的图形定义文件(GraphDef)来生成神经网络结构的可视化图表,然后可以使用其他工具(如 TensorBoard)加载和查看这些图表。

Accord.NET: Accord.NET 是一个功能强大的机器学习框架,提供了各种机器学习和图像处理的算法和工具。它包含了用于构建和训练神经网络的模块,并且支持将神经网络结构可视化为图形。Accord.NET 提供了一个名为 NetworkGraph 的类,可以将神经网络转换为 Graphviz DOT 格式的图形定义,然后使用 Graphviz 工具来生成可视化图表。

Neural Network Designer: Neural Network Designer 是一个专为 .NET 平台开发的神经网络可视化工具。它提供了一个可视化界面,允许用户直观地构建和配置神经网络结构,并提供实时的可视化效果。Neural Network Designer 支持多种常见的神经网络层和激活函数,并且可以生成可嵌入到 .NET 应用程序中的可执行代码。

https://github.com/martisak/dotnets

在这里插入图片描述

3.9 Graphviz

Graphviz 是一个开源的图形可视化工具包,可以用于可视化各种图形结构,包括神经网络。它提供了一组用于描述图形的语言和工具,可以将图形结构定义转换为图像或矢量图的形式。

在可视化神经网络方面,Graphviz 提供了多种布局算法和绘图选项,可以根据用户的需求生成美观且易于理解的图表。使用 Graphviz 可以帮助我们直观地了解神经网络的结构、层次关系以及信息流动。

以下是使用 Graphviz 可视化神经网络的基本步骤:

  1. 安装 Graphviz: 首先,需要在计算机上安装 Graphviz 软件包。可以从 Graphviz 的官方网站(https://graphviz.org/)下载适用于您操作系统的版本,并按照安装指南进行安装。
  2. 定义神经网络结构: 在代码中定义神经网络的结构,包括各个层的连接关系和激活函数。这可以使用各种深度学习框架(如 TensorFlow、PyTorch、Keras 等)来完成。
  3. 生成 Graphviz 图形定义: 将神经网络结构转换为 Graphviz 图形定义,这可以使用各种库或自定义代码来完成。例如,可以使用 Python 中的 pygraphviz 库或 graphviz 库来生成 Graphviz 的 DOT 格式的图形定义。
  4. 绘制神经网络图形: 使用 Graphviz 提供的命令行工具或编程接口,将图形定义文件转换为实际的图像或矢量图形。可以选择不同的布局算法和绘图选项,以获得最合适的图形呈现效果。
  5. 查看和保存图形: 生成的神经网络图形可以在图形工具(如图片查看器)中查看,或者以图像文件(如 PNG、SVG)的形式保存到磁盘上。
http://www.graphviz.org/

在这里插入图片描述

3.10 ConX

ConX(Cognitive Architecture for Machine Learning)是一个基于Python的开源深度学习框架,用于构建、训练和评估神经网络模型。它的设计旨在简化深度学习的过程,并提供一种直观的方式来定义、可视化和调试神经网络。

以下是 ConX 的一些特点和功能:

  1. 简单易用: ConX 提供了简洁的 API 和直观的命令行界面,使用户能够快速开始构建神经网络模型。它采用了类似于Keras的高级接口,使得模型的定义和训练过程更加直观和简单。
  2. 多种网络类型: ConX 支持多种类型的神经网络,包括全连接网络、卷积神经网络(CNN)、循环神经网络(RNN)等。用户可以根据应用需求选择合适的网络类型。
  3. 可视化工具: ConX 提供了内置的可视化工具,可以帮助用户直观地了解模型的结构、参数和训练过程。它支持绘制网络拓扑图、绘制训练曲线、可视化权重和激活图等功能。
  4. 模型调试和优化: ConX 具有丰富的调试和优化功能,可以帮助用户分析和解决模型中的问题。它提供了可视化的网络输出和中间层输出,帮助用户理解模型的决策过程。
  5. 集成学习算法: ConX 支持集成学习算法,如 dropout 和集成平均等,可以提高模型的泛化能力和鲁棒性。
  6. 模型保存和加载: ConX 提供了方便的模型保存和加载功能,用户可以将训练好的模型保存到磁盘上,并在需要时重新加载进行预测或继续训练。
https://conx.readthedocs.io/en/latest/index.html

在这里插入图片描述

3.11 ENNUI

ENNUI 提供了以下主要功能和特点:

可视化神经网络结构:ENNUI 可以将神经网络的结构以图形化的方式呈现,展示各个层、神经元和连接之间的关系。这有助于用户更好地理解网络的整体架构。

层内神经元分布:ENNUI 可以展示每个层内神经元的分布情况,包括激活值、权重和偏差等信息。这使用户可以观察不同神经元之间的差异和分布情况。

特征可视化:ENNUI 提供了特征可视化的功能,可以显示网络中不同特征的激活图像。这对于理解网络学习到的特征和模式非常有帮助。

神经元响应可视化:用户可以通过 ENNUI 可视化神经元对输入数据的响应情况。这使用户可以观察到不同神经元对不同输入的激活情况,从而了解网络是如何对输入进行处理和提取特征的。

梯度可视化:ENNUI 可以可视化神经网络中梯度的流动情况。这对于理解梯度在网络中的传播和反向传播过程非常有帮助,有助于调试和优化网络的训练过程。

https://math.mit.edu/ennui/

在这里插入图片描述

3.12 Neataptic

Neataptic 是一个用于构建和训练神经网络的 JavaScript 库。它是一个轻量级、灵活且易于使用的库,旨在帮助开发人员实现各种类型的神经网络模型。

以下是 Neataptic 的一些特点和功能:

神经网络类型:Neataptic 支持多种类型的神经网络,包括前馈神经网络 (Feedforward Neural Networks)、循环神经网络 (Recurrent Neural Networks) 和长短期记忆网络 (Long Short-Term Memory Networks) 等。

网络拓扑:您可以使用 Neataptic 定义神经网络的拓扑结构,包括神经元的层数、每层的神经元数量、连接方式等。

神经元模型:Neataptic 提供了一系列常用的神经元模型,例如线性神经元、Sigmoid 神经元、ReLU 神经元等。您可以根据需要选择适合的激活函数。

网络训练:使用 Neataptic,您可以对神经网络进行训练,以适应特定的任务。您可以定义损失函数、选择优化器,并通过反向传播算法更新网络参数。

遗传算法:Neataptic 还提供了遗传算法的支持,以帮助进行神经网络的进化和优化。您可以定义适应度函数,并使用遗传算法自动搜索最佳网络结构和参数。

可视化工具:Neataptic 提供了一些可视化工具,可以帮助您理解和调试神经网络。您可以可视化网络拓扑、训练过程中的损失曲线等。

https://wagenaartje.github.io/neataptic/

在这里插入图片描述

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

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

相关文章

linux下Python的学习(五)用matplotlib画iostat的折线图

之前写测试脚本的时候习惯用shell来写,只不过用AWK(个人觉得awk是shell的精髓)处理表格的时候比Python复杂的多,因为Python有很多现成的库,直接调用就可以。下面用Python自带的matplotlib函数实现一下对iostat log的采样 比如有一个记录iosta…

第一章 数据可视化简介(复习)

第一章 数据可视化简介 什么是可视化 定义:通过可视表达增强人们完成某些 任务的效率 The American Heritage Dictionary: The act or process of interpreting in visual terms or of putting into visible form(用可视形式进行解释的 动作…

做性能测试必须掌握的基本概念和套路

目录 性能优化的常见概念 性能调优的思路 1.性能摸底测试 2.定义性能优化的目标 3.分析 针对内存: OOM: 针对IO: 文件IO: 总结: 经常听到人说,做个性能优化,吞吐量越高越好&#xff1…

2023 年开发者必须知道的 6 个 AI 工具

自Chat GPT发布以来,AI在各个领域都出现了令人惊艳的产品,在编程方面也是如此。这些由 AI 驱动的工具使用算法快速准确地生成代码,从而节省程序员的时间和精力。虽然目前AI写出来的代码还不能完全替代人类,但开发人员完全可以作为…

安卓开发之广播接收器

搞安全的,用到哪学到哪 广播的几个部分 1.发送广播的逻辑(需要先定义Intent方法,再进行send) 2.接收广播的逻辑(继承BroadcastReceiver方法) 3.开关控制广播,也就是注册广播的过程&#xff…

Express框架与Mongodb的结合使用

前言 如果你打开这篇文章,说明已经开始有做项目的打算了。 这里有express和mongodb的相关参考教程,遇到问题可以在里面找到答案: Express框架从入门到如土 一文入门Mongodb 这里说下为什么要express框架和mongodb结合。express框架不是指单…

【MySQL数据库】MySQL 高级SQL 语句

[TOC](MySQL 高级SQL 语句 一、MySQL 高级SQL 语句1.1select -显示表格中一个或数个字段的所有数据记录1.2distinct不显示重复的数据记录1.3where有条件查询1.4and、or且 或1.5in 显示已知的值的数据记录1.6between 显示两个值范围内的数据记录1.7通配符,通常通配符…

【图神经网络】5分钟快速了解Open Graph Benchmark

10分钟快速了解Open Graph Benchmark Open Graph Benchmark (OGB)安装OGB简单使用节点分类任务数据集链路预测任务数据集图属性预测任务数据集Large-Scale Graph ML Datasets 内容来源 Open Graph Benchmark (OGB) Open Graph Benchmark(OGB)是用于图机…

QT学习资料整理

5、QMainWindow QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个锚接部件(dock widgets)、一个状态栏(status bar)及一个中心部件(central widget),是许多应用程序的基础&…

一文带你学会Lua语言

一文带你学会Lua语言 1.第一个Lua程序2.Lua流程控制3.Lua中的循环结构while循环语句for循环语句repeat循环语句 4.Lua数据类型5.Lua字符串6.Lua文件I/O操作7.Lua协同程序8.Lua语言中的注释和虚变量 1.第一个Lua程序 在命令行中,可以使用print()来打印输出一些内容 …

【音视频播放器测试】确保卓越的媒体体验

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊 座右铭:不想…

2 python基础篇

文章目录 变量判断循环函数容器列表元组字符串set字典 函数进阶补充在linux下运行py文件shebang使用pycharm与linux进行相交互 见我的另一个专栏,有专门介绍python 链接 变量 链接 关于多行注释的补充,在函数的前方def functionname:的下面…

火山引擎 Iceberg 数据湖的应用与实践

在云原生计算时代,云存储使得海量数据能以低成本进行存储,但是这也给如何访问、管理和使用这些云上的数据提出了挑战。而 Iceberg 作为一种云原生的表格式,可以很好地应对这些挑战。本文将介绍火山引擎在云原生计算产品上使用 Iceberg 的实践…

Pytorch QAT for UNet

对UNet进行Pytorch QAT量化感知训练研究了一周,终于跑通了,中间踩了不少坑,特此把正常操作记录一下,以备后续参考。 Pytorch提供了两种量化模式:Eager Mode 和FX Graph Mode. Eager Mode需要手动指定需要融合&#x…

迪赛智慧数——饼图(环形饼图):2022年618期间各品类销售额分布

效果图 2022年“618”全网成交额达6959亿元,较2021年增加了1174.20亿元,同比增长20.30%。“618”网购狂欢节首先是由京东发起的,京东618每年6月是京东的店庆月,2022年京东“618”成交额达3793亿元,较2021年增加了355亿…

性能测试工具:Jmeter介绍

JMeter是一个开源的Java应用程序,由Apache软件基金会开发和维护,可用于性能测试、压力测试、接口测试等。 1. 原理 JMeter的基本原理是模拟多用户并发访问应用程序,通过发送HTTP请求或其他协议请求,并测量响应时间、吞吐量、并发…

VSCode远程开发入门指南

我的开发环境 我的开发主机是一台Centos7的远端云服务器,在本地的Windows电脑上使用xshell进行ssh连接,在Windows使用vscode的Remote进行远程连接,进行编写与开发,主要是C领域的开发 为什么不推荐使用vim 一个趁手的编辑器在开…

【Linux】网络编程基础包含TCP详解

目录 网络结构模式C/S结构B/S结构 MAC地址IP地址端口网络模型OSI七层模型TCP/IP四层模型 通信过程数据包封装协议以太网协议ARP协议IP数据报格式UDP协议格式TCP协议格式封装分用TCP详解TCP和UDPTCP通信流程TCP三次握手TCP滑动窗口TCP四次挥手 网络结构模式 C/S结构 客户机-服务…

03、非受控组件与受控组件、高阶函数、prop-types、生命周期、hook

总结 一、非受控组件与受控组件 非受控组件 表单项不与state数据相向关联, 需要手动读取表单元素的值 借助于 ref获取真实DOM,在通过value获得输入值,使用原生 DOM 方式来获取表单元素值 非受控组件: 表单项不与 state 数据相向关联, 需要手动读取表…

宏景eHR SQL注入漏洞复现(CNVD-2023-08743)

0x01 产品简介 宏景eHR人力资源管理软件是一款人力资源管理与数字化应用相融合,满足动态化、协同化、流程化、战略化需求的软件。 0x02 漏洞概述 宏景eHR 存在SQL注入漏洞,未经过身份认证的远程攻击者可利用此漏洞执行任意SQL指令,从而窃取数…