C/C++中面向对象和面向过程的区别? 面向对象(Object Oriented Programming,OOP)编程模型首先抽象出各种对象(各种类),并专注于对象与对象之间的交互,对象涉及的方法和属性都封装在对象内部。 面向对象的编程思想是一种依赖于类和对象概念的编程方式,一个形象的例子是将大象装进冰箱: 冰箱是一个对象,大象也是一个对象。 冰箱有自己的方法,打开、存储、关闭等;大象也有自己的方法,吃、走路等。 冰箱有自己的属性:长、宽、高等;大象也有自己的属性:体重、高度、体积等。 面向过程(Procedure 阅读全文 → 2023-01-31
梯度爆炸和梯度消失产生的原因及解决方法? 梯度爆炸和梯度消失问题 一般在深层神经网络中,我们需要预防梯度爆炸和梯度消失的情况。 梯度消失(gradient vanishing problem)和梯度爆炸(gradient exploding problem)一般随着网络层数的增加会变得越来越明显。 例如下面所示的含有三个隐藏层的神经网络,梯度消失问题发生时,接近输出层的hiden layer3的权重更新比较正常,但是前面的hidden layer1的权重更新会变得很慢,导致前面的权重几乎不变,仍然接近初始化的权重,这相当于hidden 阅读全文 → 2023-01-30
Accuracy、Precision、Recall、F1 Scores的相关概念? 首先Rocky介绍一下相关名词: TP(True Positive): 预测为正,实际为正 FP(False Positive): 预测为正,实际为负 TN(True Negative):预测为负,实际为负 FN(false negative): 预测为负,实际为正 Accuracy、Precision、Recall、F1 Scores的公式如下所示: Accuracy(准确率):分类正确的样本数占样本总数的比例。 Precision(精准度/查准率):当前预测为正样本类别中被正确分类的 阅读全文 → 2023-01-30
RepVGG模型的结构和特点? RepVGG模型的基本架构由20多层卷积组成,分成5个stage,每个stage的第一层是stride=2的降采样,每个卷积层用ReLU作为激活函数。 RepVGG的主要特点: 卷积在GPU上的计算密度(理论运算量除以所用时间)可达1x1和5x5卷积的四倍. 直筒型单路结构的计算效率比多路结构高。 直筒型单路结构比起多路结构内存占用少。 单路架构灵活性更好,容易进一步进行模型压缩等操作。 RepVGG中只含有一种算子,方便芯片厂商设计专用芯片来提高端侧AI效率。 在训练阶段,训练一个多分 阅读全文 → 2023-01-30
U-Net模型的结构和特点? U-Net网络的特点: 全卷积神经网络:使用卷积完全取代了全连接层,使得模型的输入尺寸不受限制。 左半部分网络是收缩路径(contracting path):使用卷积和max pooling层,对feature map进行下采样。 右半部分网络是扩张路径(expansive path):使用转置卷积对feature map进行上采样,并将其与收缩路径对应层产生的特征图进行concat操作。上采样可以补充特征信息,加上与左半部分网络收缩路径的特征图进行concat(通过crop操作使得两个特征图尺寸一 阅读全文 → 2023-01-30
有哪些提高GAN训练稳定性的Tricks? 1.输入Normalize,将输入图片Normalize到 之间。 生成器最后一层的输出使用Tanh激活函数。 Normalize非常重要,没有处理过的图片是没办法收敛的。图片Normalize一种简单的方法是(images-127.5)/127.5,然后送到判别器去训练。同理生成的图片也要经过判别器,即生成器的输出也是-1到1之间,所以使用Tanh激活函数更加合适。 2.替换原始的GAN损失函数和标签反转 原始GAN损失函数会出现训练早期梯度消失和Mode collapse(模型 阅读全文 → 2023-01-29