深度学习与计算机视觉教程(15) | 视觉模型可视化与可解释性(CV通关指南·完结)

一维卷积神经网络的特征可视化 随着AI应用渗透到各行各业,AI的科技伦理受到广泛的关注。而科技伦理的一个核心议题就是可解释人工智能XAI。从社会科学角度,可解释性是指人对决策原因的理解程度,可解释性越高,人就越能理解为什么做出这样的决策。对应于AI领域,可解释性是指能够在一定程度上揭示AI模型内部工作机制和对模型结果的进行解释,帮助用户理解模型是如何做出预测或决策的。 阅读详情

ShowMeAI研究中心


Visualizing and Understanding; 深度学习与计算机视觉; Stanford CS231n

本系列为 斯坦福CS231n 《深度学习与计算机视觉(Deep Learning for Computer Vision)》的全套学习笔记,对应的课程视频可以在 这里 查看。更多资料获取方式见文末。


前言

深度可视化技术是深度学习中一个仍处于探索阶段的学术研究热点,它可以帮助我们更直观地理解模型做的事情。

以计算机视觉为例,CNN 中有着数以千计的卷积滤波器。深度神经网络中不同的滤波器会从输入图像中提取不同特征表示。

己有的研究表明低层的卷积核提取了图像的低级语义特性(如边缘、角点),高层的卷积滤波器提取了图像的高层语义特性(如图像类别)。

但是,由于深度神经网络会以逐层复合的方式从输入数据中提取特征,我们仍然无法像Sobel算子提取的图像边缘结果图一样直观地观察到深度神经网络中的卷积滤波器从输入图像中提取到的特征表示。

计算机视觉

计算机视觉; 不同卷积层可视化

本篇内容ShowMeAI和大家来看看对模型的理解,包括CNN 可视化与理解的方法,也包含一些有趣的应用如DeepDream、图像神经风格迁移等。

本篇重点

  • 特征/滤波器可视化
  • DeepDream
  • 图像神经风格迁移

1.特征可视化

我们在之前的课程里看到CNN的各种应用,在计算机视觉各项任务中发挥很大的作用,但我们一直把它当做黑盒应用,本节内容我们先来看看特征可视化,主要针对一些核心问题:

  • CNN工作原理是什么样的
  • CNN的中间层次都在寻找匹配哪些内容
  • 我们对模型理解和可视化有哪些方法

特征可视化; CNN的工作原理

1.1 第一个卷积层

1) 可视化卷积核

第一个卷积层相对比较简单,可以把第一层的所有卷积核可视化来描述卷积层在原始图像匹配和关注什么。

可视化卷积核的背后原理是,卷积就是卷积核与图像区域做内积的结果,当图像上的区域和卷积核很相似时,卷积结果就会最大化。我们对卷积核可视化来观察卷积层在图像上匹配寻找什么。

常见的CNN架构第一层卷积核如下:

特征可视化; 第一个卷积层 可视化卷积核

从图中可以看到,不同网络的第一层似乎都在匹配有向边和颜色,这和动物视觉系统开始部分组织的功能很接近。

1.2 中间层

第二个卷积层就相对复杂一些,不是很好观察了。

第一个卷积层使用 16 16 16 个 7 × 7 × 3 7 \times 7 \times 3 7×7×3 的卷积核,第二层使用 20 20 20 个 7 × 7 × 16 7 \times 7 \times 16 7×7×16 的卷积核。由于第二层的数据深度变成 16 16 16 维,不能直接可视化。一种处理方法是对每个卷积核画出 16 16 16 个 7 × 7 7 \times 7 7×7 的灰度图,一共画 20 20 20 组。

然而第二层卷积不和图片直接相连,卷积核可视化后并不能直接观察到有清晰物理含义的信息。

特征可视化; 中间层

1) 可视化激活图

与可视化卷积核相比,将激活图可视化更有观察意义。

特征可视化; 中间层 可视化激活图

比如可视化 AlexNet 的第五个卷积层的 128 128 128 个 13 × 13 13 \times 13 13×13 的特征图,输入一张人脸照片,画出 Conv5 的 128 128 128 个特征灰度图,发现其中有激活图似乎在寻找人脸(不过大部分都是噪声)。

2) Maximally Activating Patches(最大激活区块)

可视化输入图片中什么类型的小块可以最大程度的激活不同的神经元。

  • 比如选择 AlexNet 的 Conv5 里的第 17 17 17 个激活图(共 128 128 128 个),然后输入很多的图片通过网络,并且记录它们在 Conv5 第 17 17 17 个激活图的值。
  • 这个特征图上部分值会被输入图片集最大激活,由于每个神经元的感受野有限,我们可以画出这些被最大激活的神经元对应在原始输入图片的小块,通过这些小块观察不同的神经元在寻找哪些信息。

如下图所示,每一行都是某个神经元被最大激活对应的图片块,可以看到:

  • 有的神经元在寻找类似眼睛的东西
  • 有的在寻找弯曲的曲线等

特征可视化; 中间层 最大激活区块

如果不使用 Conv5 的激活图,而是更后面的卷积层,由于卷积核视野的扩大,寻找的特征也会更加复杂,比如人脸、相机等,对应图中的下面部分。

1.3 倒数第二个全连接层

1) 最邻近

关于最近邻算法的详细知识也可以参考ShowMeAI的下述文章

另一个有价值的观察对象是输入到最后一层用于分类的全连接层的图片向量,比如 AlexNet 每张图片会得到一个 4096 4096 4096 维的向量。

使用一些图片来收集这些特征向量,然后在特征向量空间上使用最邻近的方法找出和测试图片最相似的图片。作为对比,是找出在原像素上最接近的图片。

可以看到,在特征向量空间中,即使原像素差距很大,但却能匹配到实际很相似的图片。

比如大象站在左侧和站在右侧在特征空间是很相似的。

特征可视化; 倒数第二个全连接层 最近邻

2) 降维

关于PCA降维算法的详细知识也可以参考ShowMeAI的下述文章

另一个观察的角度是将 4096 4096 4096 维的向量压缩到二维平面的点,方法有PCA,还有更复杂的非线性降维算法比如 t-SNE(t-distributed stochastic neighbors embeddings,t-分布邻域嵌入)。我们把手写数字 0-9 的图片经过CNN提取特征降到2维画出后,发现都是按数字簇分布的,分成10簇。如下图所示:

特征可视化; 降维

同样可以把这个方法用到 AlexNet 的 4096 4096 4096 维特征向量降维中。

我们输入一些图片,得到它们的 4096 4096 4096 维特征向量,然后使用 t-SNE 降到二维,画出这些二维点的网格坐标,然后把这些坐标对应的原始图片放在这个网格里。

如果大家做这个实验,可以观察到相似内容的图片聚集在了一起,比如左下角都是一些花草,右上角聚集了蓝色的天空。

特征可视化; 降维

1.4 哪些像素对分类起作用?

1) 遮挡实验(Occlusion Experiments)

有一些方法可以判定原始图片的哪些位置(像素)对最后的结果起作用了,比如遮挡实验(Occlusion Experiments)是一种方法。

它在图片输入网络前,遮挡图片的部分区域,然后观察对预测概率的影响,可以想象得到,如果遮盖住核心部分内容,将会导致预测概率明显降低。

如下图所示,是遮挡大象的不同位置,对「大象」类别预测结果的影响。

特征可视化; 哪个像素对分类有用 遮挡实验

2) 显著图(Saliency Map)

除了前面介绍到的遮挡法,我们还有显著图(Saliency Map)方法,它从另一个角度来解决这个问题。

显著图(Saliency Map)方法是计算分类得分相对于图像像素的梯度,这将告诉我们在一阶近似意义上对于输入图片的每个像素如果我们进行小小的扰动,那么相应分类的分值会有多大的变化。

可以在下图看到,基本上找出了小狗的轮廓。

特征可视化; 哪个像素对分类有用 显著图

进行语义分割的时候也可以运用显著图的方法,可以在没有任何标签的情况下可以运用显著图进行语义分割。

3) 引导式反向传播

不像显著图那样使用分类得分对图片上的像素求导,而是使用卷积网络某一层的一个特定神经元的值对像素求导,这样就可以观察图像上的像素对特定神经元的影响。

但是这里的反向传播是引导式的,即 ReLU 函数的反向传播时,只回传大于 0 0 0 的梯度,具体如下图所示。这样的做法有点奇怪,但是效果很好,图像很清晰。

特征可视化; 哪个像素对分类有用 引导式反向传播

我们把引导式反向传播计算的梯度可视化和最大激活块进行对比,发现这两者的表现很相似。

下图左边是最大激活块,每一行代表一个神经元,右侧是该神经元计算得到的对原始像素的引导式反向传播梯度。

下图的第一行可以看到,最大激活该神经元的图像块都是一些圆形的区域,这表明该神经元可能在寻找蓝色圆形状物体,下图右侧可以看到圆形区域的像素会影响的神经元的值。

特征可视化; 哪个像素对分类有用 引导式反向传播

4) 梯度上升(Gradient Ascent)

引导式反向传播会寻找与神经元联系在一起的图像区域,另一种方法是梯度上升,合成一张使神经元最大激活或分类值最大的图片。

我们在训练神经网络时用梯度下降来使损失最小,现在我们要修正训练的卷积神经网络的权值,并且在图像的像素上执行梯度上升来合成图像,即最大化某些中间神将元和类的分值来改变像素值。

梯度上升的具体过程为:输入一张所有像素为0或者高斯分布的初始图片,训练过程中,神经网络的权重保持不变,计算神经元的值或这个类的分值相对于像素的梯度,使用梯度上升改变一些图像的像素使这个分值最大化。

同时,我们还会用正则项来阻止我们生成的图像过拟合。

总之,生成图像具备两个属性:

  • ① 使最大程度地激活分类得分或神经元的值
  • ② 使我们希望这个生成的图像看起来是自然的。

正则项强制生成的图像看起来是自然的图像,比如使用 L2 正则来约束像素,针对分类得分生成的图片如下所示:

特征可视化; 哪个像素对分类有用 梯度上升

也可以使用一些其他方法来优化正则,比如:

  • 对生成的图像进行高斯模糊处理
  • 去除像素值特别小或梯度值特别小的值

上述方法会使生成的图像更清晰。

也可以针对某个神经元进行梯度上升,层数越高,生成的结构越复杂。

特征可视化; 哪个像素对分类有用 梯度上升

添加多模态(multi-faceted)可视化可以提供更好的结果(加上更仔细的正则化,中心偏差)。通过优化 FC6 的特征而不是原始像素,会得到更加自然的图像。

一个有趣的实验是「愚弄网络」:

输入一张任意图像,比如大象,给它选择任意的分类,比如考拉,现在就通过梯度上升改变原始图像使考拉的得分变得最大,这样网络认为这是考拉以后观察修改后的图像,我们肉眼去看和原来的大象没什么区别,并没有被改变成考拉,但网络已经识别为考拉(图片在人眼看起来还是大象,然而网络分类已经把它分成考拉了)。

特征可视化; 哪个像素对分类有用 梯度上升

2.DeepDream

DeepDream是一个有趣的AI应用实验,仍然利用梯度上升的原理,不再是通过最大化神经元激活来合成图片,而是直接放大某些层的神经元激活特征。

步骤如下:

  • ① 首先选择一张输入的图像,通过神经网络运行到某一层
  • ② 接着进行反向传播并且设置该层的梯度等于激活值,然后反向传播到图像并且不断更新图像。

对于以上步骤的解释:试图放大神经网络在这张图像中检测到的特征,无论那一层上存在什么样的特征,现在我们设置梯度等于特征值,以使神经网络放大它在图像中所检测到的特征。

DeepDream; 代码

下图:输入一张天空的图片,可以把网络中学到的特征在原图像上生成:

DeepDream; 生成结果图

代码实现可以参考google官方实现 https://github.com/google/deepdream

3.图像神经风格迁移

关于图像神经网络风格迁移的讲解也可以参考ShowMeAI的下述文章

3.1 特征反演(Feature Inversion)

我们有一个查看不同层的特征向量能保留多少原始的图片信息的方法,叫做「特征反演」。

具体想法是:任选1张图片,前向传播到已经训练好的 CNN,选取其在 CNN 某一层产生的特征向量,保留这个向量。我们希望生成1张图片,尽量让它在该层产生一样的特征向量。

我们依旧使用梯度上升方法来完成,这个任务的目标函数定义为「最小化生成图片的特征向量与给定特征向量的L2距离」,当然我们会加一些正则化项保证生成图片的平滑,总体如下图所示:

图像神经风格迁移; 特征反演

通过这个方法,我们可以看到不同层的特征向量所包含的信息完整度,如下图所示:

图像神经风格迁移; 特征反演

解释讲解:

  • 在 relu2_2 层,可以根据特征向量几乎无损地恢复出原图片;
  • 从 ReLU4_3 ReLU5_1 重构图像时,可以看到图像的一般空间结构被保留了下来,仍可以分辨出大象,苹果和香蕉,但是许多低层次的细节并比如纹理、颜色在神经网路的较高层更容易损失。

3.2 纹理生成(Texture Synthesis)

下面我们聊到的是「纹理生成」,针对这个问题,传统的方法有「近邻法」:根据已经生成的像素查看当前像素周围的邻域,并在输入图像的图像块中计算近邻,然后从输入图像中复制像素。但是这类方法在面对复杂纹理时处理得并不好。

1) 格莱姆矩阵(Gram Matrix)

格莱姆矩阵计算方法:

纹理生成的神经网络做法会涉及到格莱姆矩阵(Gram Matrix),我们来介绍一下它,我们先看看格莱姆矩阵怎么得到:

① 将一张图片传入一个已经训练好的 CNN,选定其中一层激活,其大小是 C × H × W C \times H \times W C×H×W,可以看做是 H × W H \times W H×W 个 C C C 维向量。

② 从这个激活图中任意选取两个C维向量,做矩阵乘法可以得到一个 C × C C \times C C×C 的矩阵。然后对激活图中任意两个 C C C 维向量的组合,都可以求出这样一个矩阵。把这些矩阵求和并平均,就得到 Gram Matrix。

格莱姆矩阵含义:

格莱姆矩阵告诉我们两个点代表的不同特征的同现关系,矩阵中位置索引为 i j ij ij 的元素值非常大,这意味着这两个输入向量的位置索引为 i i i 和 j j j 的元素值非常大。

格莱姆矩阵捕获了一些二阶统计量,即“映射特征图中的哪些特征倾向于在空间的不同位置一起激活”。

图像神经风格迁移; 纹理生成 格莱姆矩阵

格莱姆矩阵其实是特征之间的偏心协方差矩阵(即没有减去均值的协方差矩阵)。其计算了每个通道特征之间的相关性,体现的是哪些特征此消彼长,哪些特征同时出现。

我们可以认为格莱姆矩阵度量了图片中的纹理特性,并且不包含图像的结构信息,因为我们对图像中的每一点所对应的特征向量取平均值,它只是捕获特征间的二阶同现统计量,这最终是一个很好的纹理描述符。

事实上,使用协方差矩阵代替格莱姆矩阵也能取得很好的效果,但是格莱姆矩阵有更高效的计算方法:

  • 将激活图张量 C × H × W C \times H \times W C×H×W 展开成 C × H W C \times HW C×HW 的形式,然后将其乘以其转置。

2) 神经纹理生成(Neural Texture Synthesis)

当我们有了格莱姆矩阵这一度量图像纹理特性的工具后,就可以使用类似于梯度上升算法来产生特定纹理的图像。

算法流程如下图所示:

图像神经风格迁移; 神经纹理生成

纹理生成步骤:

  • ① 首先把含有纹理的图像输入到一个预训练网络中(例如VGG),记录其每一层的激活图并计算每一层的格莱姆矩阵。
  • ② 接着随机初始化一张要生成的新的图像,同样把这张初始化图像通过预训练网络并且计算每一层的 gram 矩阵。
  • ③ 然后计算输入图像纹理矩阵和生成图像纹理矩阵之间的加权 L2 损失,进行反向传播,并计算相对于生成图像的像素的梯度。
  • ④ 最后根据梯度上升一点点更新图像的像素,不断重复这个过程,即计算两个格莱姆矩阵的 L2 范数损失和反向传播图像梯度,最终会生成与纹理图像相匹配的纹理图像。

生成的纹理效果如下图所示:

图像神经风格迁移; 神经纹理生成

上图说明,如果以更高层格莱姆矩阵的 L2 距离作为损失函数,那么生成图像就会更好地重建图像的纹理结构(这是因为更高层的神经元具有更大的感受野)。

3.3 图像神经风格迁移(Style Transfer)

如果我们结合特征反演和纹理生成,可以实现非常热门的一个网络应用「图像神经风格迁移(Style Transfer)」。它能根据指定的1张内容图片和1张风格图片,合并生成具有相似内容和风格的合成图。

具体的做法是:准备两张图像,一张图像称为内容图像,需要引导我们生成图像的主题;另一张图像称为风格图像,生成图像需要重建它的纹理结构。然后共同做特征识别,最小化内容图像的特征重构损失,以及风格图像的格莱姆矩阵损失。

使用下面的框架完成这个任务:

图像神经风格迁移; Style Transfer

上图所示的框架中,使用随机噪声初始化生成图像,同时优化特征反演和纹理生成的损失函数(生成图像与内容图像激活特征向量的 L2 距离以及与风格图像 gram 矩阵的 L2 距离的加权和),计算图像上的像素梯度,重复这些步骤,应用梯度上升对生成图像调整。

迭代完成后我们会得到风格迁移后的图像:它既有内容图像的空间结构,又有风格图像的纹理结构。

因为网络总损失是「特征反演」和「纹理生成」的两部分损失的加权和,我们调整损失中两者的权重可以得到不同倾向的输出,如下图所示:

图像神经风格迁移; 内容与风格相似度权重

也可以改变风格图像的尺寸:

图像神经风格迁移; 图像风格尺度

我们甚至可以使用不同风格的格莱姆矩阵的加权和,来生成多风格图:

图像神经风格迁移; 多风格合并

代码实现可以参考这里:https://github.com/jcjohnson/neural-style

3.4 快速图像风格迁移(Fast style Transfer)

上面的风格迁移框架,每生成一张新的图像都需要迭代数次,计算量非常大。因此有研究提出了下面的 Fast style Transfer 的框架:

快速图像风格迁移; Fast style Transfer

快速图像风格迁移方法,会在一开始训练好想要迁移的风格,得到一个可以输入内容图像的网络,直接前向运算,最终输出风格迁移后的结果。

训练前馈神经网络的方法是在训练期间计算相同内容图像和风格图像的损失,然后使用相同梯度来更新前馈神经网络的权重,一旦训练完成,只需在训练好的网络上进行一次前向传播。

代码实现可以参考这里:https://github.com/jcjohnson/fast-neural-style

4.拓展学习

可以点击 B站 查看视频的【双语字幕】版本

【字幕+资料下载】斯坦福CS231n | 面向视觉识别的卷积神经网络 (2017·全16讲)

5.参考资料

6.要点总结

  • 理解CNN:
    • 激活值:在激活值的基础上理解这些神经元在寻找什么特征,方法有最邻近、降维、最大化图像块、遮挡;
  • 梯度:使用梯度上升合成新图像来理解特征的意义,比如显著图、类可视化、愚弄图像、特征反演。
  • 风格迁移:特征反演+纹理生成。

ShowMeAI 斯坦福 CS231n 全套解读

ShowMeAI 系列教程推荐

showmeai用知识加速每一次技术成长

深度学习与计算机视觉教程:斯坦福CS231n · 全套笔记 本篇内容是组织的系列教程入口,本教程依托于斯坦福Stanford出品的【】方向专业课程,根据课程视频内容与课程笔记,结合补充资料,针对深度学习与计算机视觉方向的主题做了全面梳理与制作,希望给大家提供专业细致而直观易懂的学习教程。等主题。 阅读详情

相关推荐

计算机视觉:如何用Colab免费训练视觉模型?

计算机视觉:如何用Colab免费训练视觉模型?​ ,人工智能,计算机视觉,大模型,AI,在计算机视觉领域,训练一个高精度的视觉模型往往需要大量的计算资源,而这对于许多个人开发者和研究人员来说是一个巨大的挑战。幸运的是,Google Colab 提供了免费的云端计算资源,包括 GPU 和 TPU,使得我们能够在不花费大量资金购买硬件的情况下,训练复杂的视觉模型。本文将详细介绍如何使用 Colab 免费训练视觉模型,涵盖从基础环境搭建到模型训练和评估的全流程,并通过丰富的代码示例和详细的概念解释,帮助读者轻松上

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 12万+

【计算机视觉】CNN 可视化算法

【计算机视觉】CNN 可视化算法

wzk4869的博客 2314

计算机视觉阶段三&四:深度学习 + CV 模型训练及部署实战

从零掌握深度学习在 CV 中的核心应用:图像分类、目标检测、图像分割等,并掌握训练、评估、部署全过程。

moton2017的博客 852

【翻译】【ZFNet】Visualizing and Understanding Convolutional Networks

大型卷积网络模型最近在ImageNet基准测试中表现出令人印象深刻的分类性能,如Krizhevsky等人(AlexNet)[18]。然而,对于它们为何表现如此出色,或如何改进它们,还没有明确的认识。在本文中,我们探讨了这两个问题。我们引入了一种新的可视化技术,使人们能够深入了解中间特征层的功能和分类器的运作。在诊断的作用下,这些可视化技术使我们能够找到在ImageNet分类基准上表现优于Krizhevsky等人的模型架构。我们还进行了一项消融研究,以发现不同模型层的性能贡献。

jokerwu192的博客 414

SCAN和JTAG分别是什么?它们之间有什么联系与区别?

SCAN(扫描)技术是集成电路测试领域的一种方法,主要用于边界扫描测试(Boundary Scan)。它是在集成电路设计中引入的一种测试结构,允许测试人员通过在芯片的输入/输出引脚上设置和读取特殊寄存器(边界扫描寄存器,BSR)的内容,来间接测试电路板上的互联和芯片内部功能块。这种方式可以在不接触其他内部节点的情况下测试整个电路板的连接性,极大地提高了测试覆盖率和可诊断性。JTAG(Joint Test Action Group,联合测试行动小组)则是开发并推广边界扫描测试标准的一个组织。

初心不忘产学研的博客 2543

用数据分析优化彩票决策:放弃预测,专注理性投入

彩票本质上是负和博弈的概率系统,其核心并非号码预测,而是对玩法规则、返奖率(RTP)、投入策略与心理约束的量化决策。基于组合数学与二项分布的分析方法,可精确计算各奖项概率、评估不同玩法的实际回报效率,并构建个人资金-风险-目标模型。数据的价值不在于打破随机性,而在于识别非随机环节——如奖池跃升期的RTP波动、固定奖的保底收益、冷热号背后的分奖博弈结构。这种以决策优化为导向的数据实践,适用于将彩票视为受控实验的理性参与者,而非追求玄学中奖的投机者。

frank1998819 641

【学习打卡02】可解释机器学习笔记之ZFNet

首先简单介绍一下ZFNet吧,ZFNet来源于2013的Matthew D. Zeiler和Rob Fergus的Visualizing and Understanding Convolutional Networks论文,为什么叫ZFNet也很简单,作者的两个名的首字母加起来就是啦,这里也给出论文地址,有兴趣可以看看论文在 2013 年 ImageNet 大规模视觉识别挑战赛 (ILSVRC) 中,ZFNet 比 AlexNet 有了显着改进,成为众人瞩目的焦点。

风信子的猫Redamancy的快乐星球 1155

FPGA实战:SRIO接口数据流控制与回环测试详解

本文详细解析了FPGA中SRIO接口的数据流控制机制与回环测试实战。通过剖析SRIO IP核的AXI4-Stream接口握手时序(tvalid/tready/tlast),重点阐述了HELLO数据包格式与状态机设计,并提供了完整的Verilog代码示例。文章以回环测试为核心验证手段,指导开发者排查常见问题,为FPGA高速互连通信设计提供实用指南。

weixin_29173777的博客 425

【论文翻译】Visualizing and Understanding Convolutional Networks ECCV 2014

Visualizing andUnderstanding Convolutional Networks卷积神经网络的可视化理解Matthew D. Zeiler zeiler@cs.nyu.edu 纽约大学计算机科学系Courant研究所Rob Fergus fergus@cs.nyu.edu 纽约大学计算机科学系Courant研究所 摘要(Abstract)近来,大型的卷积神经网络模型在Imag...

stu_sun的博客 1660

注意力机制详解

注意力机制详解Attention机制由来Attention定义Encoder-Decoder框架存在问题:Attenion机制的引入Attention机制的类别Hard AttentionSoft AttentionGlobal AttentionLocal AttentionSelf AttentionMulti-head Attention附录—Transformer全局视角Tensor视角Encoder部分Self-AttentionSelf-Attention向量计算Self-Attention的矩

weixin_43236310的博客 1万+

LSF实践专题(15):LSF队列优先级以及抢占功能初探

在LSF暂停作业时,会向作业发送一个SIGTSTP信号,并且将作业状态变成SSUSP(system suspend),表示被系统暂停,这时,最好是作业的应用能够捕获和处理SIGTSTP信号,否则,即使在LSF中,作业会被认为暂停了,并且释放了slots资源,但是在实际OS中,作业进程仍然在继续,并且不会释放CPU等计算资源。是指LSF自动将低优先级作业暂停(suspend),将空余出来的资源交给高优先级队列中的作业使用,等到高优先级队列的作业结束后,再将被暂停的作业恢复(resume)并继续运行。

richycn的博客 1919

深度学习与计算机视觉教程:斯坦福CS231n · 全套笔记解读

本教程依托于 Stanford 斯坦福大学的《CS231n:深度学习与计算机视觉》,对深度学习与计算机视觉方向的图像分类、CNN、RNN、目标检测、图像分割、生成模型等各个主题做了体系化的梳理

ShowMeAI研究中心 1万+

如何用Deep OC-SORT提升多目标跟踪精度?实战配置与性能优化指南

本文是一份针对开发者的Deep OC-SORT多目标跟踪实战指南。详细解析了如何通过部署其核心的“动态外观记忆”与“相机防抖”模块来有效应对遮挡与抖动,从而显著提升跟踪精度与连续性。内容涵盖从环境搭建、参数调优到性能压榨的全流程,并提供针对不同场景的配置建议与工程落地技巧。

f9g0h的博客 670

计算机视觉 vs 机器视觉 | 机器学习 vs 深度学习:核心差异与行业启示

目标是赋予计算机类似人类的视觉理解能力,通过算法对图像或视频中的目标进行识别、跟踪和语义理解。其核心是研究如何从二维图像反推三维世界的结构和规律。例如,自动驾驶中通过多摄像头融合实现道路场景理解,属于典型的CV任务。

懒人的技术笔记 2429

实战篇| app爬虫不用真机

之前写过一篇基于真机app爬虫《App爬虫实战篇-以华为真机手机爬取集换社的app为例》,如果大家有用真机爬虫的经历,会深刻认识到真的不方便,一是自己的手机,经常会被电话、微信等打断,二是闲置手机,面对小批量数据还能勉强,大批量爬虫,会导致成本指数级上升,并且控制起来相对麻烦。以下就是常见的模拟器。emulator -avd my_avd -no-snapshot-save # 启动时不保存 snapshot。emulator -avd my_avd -wipe-data # 清除数据(恢复到出厂)

youbingchen的博客 597

STM32芯片解锁读写保护:更改Option Byte [Error已解决]

解锁读保护:STLink更改Option Byte 变Level从1变为0,点击Apply即可。(程序执行读保护,其实是将Level从0变为1) 默认情况下该保护功能是不开启的,若要开启该功能,需要改写内部FLASH选项字节(Option Bytes)中的配置。 RDP读保护级别 级别0,无保护, 级别1,使能读保护, 这种保护下,若使用调试功能(使用下载器、仿真器)或者从内部SRAM自举时都不能对内部FLASH及备份SRAM作任何访问(读写、擦除都被禁止); 当芯片处于级别1的时候,可以把选项字节

HowieXue 薛永浩的博客 2万+

深度学习与计算机视觉教程(1) | 引言与知识基础(CV通关指南·完结)

本文讲解了斯坦福大学 CS231n 课程的内容框架(深度学习 + 卷积神经网络 + 计算机视觉应用)和学习基础,帮助了解计算机视觉的历史和技术发展【对应 CS231n Lecture 1】

ShowMeAI研究中心 8791

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【下载】1200页CV经典《计算机视觉:算法与应用》第二版开放下载

(给机器学习算法与Python学习加星标,提升AI技能)本文整理自机器之心提到计算机视觉领域的入门书,不少人会推荐 Facebook 研究科学家 Richard Szeliski 的《计...

机器学习算法与Python学习 8654

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

2025年小白入行计算机视觉,超详细学习路线!

入门计算机视觉(Computer Vision, CV)是一个系统化的过程,需要结合数学基础、编程技能、算法理解和项目实践。

yyyyyybw的博客 8436

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

计算机视觉入门与调优

大家好啊,我是董董灿。在 优快云 上写文章写了有一段时间了,期间不少小伙伴私信我,咨询如何自学入门AI,或者咨询一些AI算法。90%的问题我都回复了,但有时确实因为太忙,没顾得过来。在这个过程中,我发现很多小伙伴问的问题都类似:比如如何入门计算机视觉,某某算法是做什么的,有什么作用。之前写的文章由于过于分散,不成体系,很多知识点没有串联起来。然后依托Resnet50这一经典图像分类网络,将涉及到的算法都剖析和实现一遍,最后亲自完成该神经网络的搭建,并带你完成任意图像的识别。

通俗易懂的 AI 技术 2357

全球名校AI课程库(44)| 慕尼黑工大 · 计算机视觉深度学习进阶课『Advanced Deep Learning for Computer Vision』

进阶课程,覆盖深度学习与CV更深入的研究方向:神经网络可解释性、相似度与度量学习、自注意力与transformer、图神经网络、生成模型与GAN等。

ShowMeAI研究中心 1万+

研究生零基础,想学CV,计算机视觉正确学习路线是什么?

对于没有基础的研究生而言,计算机视觉(CV)的学习需系统规划,分阶段推进。以下是结合数学、编程、理论、实践的完整路线:从零到实战上岸AI算法工程师—机器学习、计算机视觉、深度学习、神经网络。

Java_rich的博客 1896

PyTorch 框架 CV 开发:从数据处理到模型部署与可视化

PyTorch 中的数据处理是模型训练的基础,包提供了一系列用于数据加载和处理的工具。其中,Dataset是一个数据抽象类,它支持两种风格的数据表示:Map-style 和 Iterable-style。Map-style 数据集:需实现和__len__方法。方法根据索引idx获取数据集中的样本,通过访问即可获取对应的数据样本;__len__方法则返回数据集的大小。这种风格适用于可以通过索引快速访问的数据,如图片数据集,每个图片都有对应的索引,方便获取。Iterable-style 数据集。

weixin_52603404的博客 1107

《计算机视觉》学习

《计算机视觉》学习

青少年趣味编程 1479

Continue的计算机视觉:CV项目开发的AI编码助手

你是否曾在计算机视觉(Computer Vision,CV)项目开发中遇到这些困境:在复杂的OpenCV函数参数中迷失方向,为PyTorch模型调试耗费数小时,或是在处理图像预处理管道时反复修改代码?Continue作为一款开源的AI编码助手,专为解决这些痛点而生。本文将详细介绍如何利用Continue提升CV项目开发效率,从环境配置到模型部署,全方位展示AI辅助编码的实战价值。 读完本文,你将...

gitblog_00302的博客 922
上一篇: 人工智能 | ShowMeAI资讯日报 #2022.06.12
下一篇: 人工智能可以做点什么?唐山事件的视频AI识别检测项目 <附代码与动图> | 万物AI
ShowMeAI
博客等级 码龄5年 6514粉丝 672原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShowMeAI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值