深度学习
文章平均质量分 65
PPHT-H
不定期更新人工智能博客,欢迎关注!!!有问题请私信我!!!
展开
-
【人工智能笔记】第四十五节:TF2实现VITGAN对抗生成网络,VITGAN主体 实现
【人工智能笔记】第四十五节:TF2实现VITGAN对抗生成网络,VITGAN主体 实现原创 2022-05-29 02:30:00 · 467 阅读 · 0 评论 -
【人工智能笔记】第四十四节:TF2实现VITGAN对抗生成网络,Discriminator鉴别器 实现
【人工智能笔记】第四十四节:TF2实现VITGAN对抗生成网络,Discriminator鉴别器 实现原创 2022-05-29 01:45:00 · 310 阅读 · 0 评论 -
【人工智能笔记】第四十三节:TF2实现VITGAN对抗生成网络,ISN 实现
【人工智能笔记】第四十三节:TF2实现VITGAN对抗生成网络,ISN 实现原创 2022-05-26 16:32:48 · 254 阅读 · 0 评论 -
【人工智能笔记】第四十二节:TF2实现VITGAN对抗生成网络,PatchEmbedding 实现
【人工智能笔记】第四十二节:TF2实现VITGAN对抗生成网络,PatchEmbedding 实现原创 2022-05-26 16:32:15 · 474 阅读 · 0 评论 -
【人工智能笔记】第四十一节:TF2实现VITGAN对抗生成网络,Generator生成器 实现
【人工智能笔记】第四十一节:TF2实现VITGAN对抗生成网络,Generator生成器 实现原创 2022-05-26 16:31:43 · 220 阅读 · 0 评论 -
【人工智能笔记】第四十节:TF2实现VITGAN对抗生成网络,Siren网络 实现
【人工智能笔记】第四十节:TF2实现VITGAN对抗生成网络,Siren网络 实现原创 2022-05-29 10:30:00 · 282 阅读 · 1 评论 -
【人工智能笔记】第三十九节:TF2实现VITGAN对抗生成网络,ModulatedLinear调制模块 实现
【人工智能笔记】第三十九节:TF2实现VITGAN对抗生成网络,ModulatedLinear调制模块 实现原创 2022-05-29 10:15:00 · 190 阅读 · 0 评论 -
【人工智能笔记】第三十八节:TF2实现VITGAN对抗生成网络,CoordinatesPositionalEmbedding博里叶位置编码 实现
【人工智能笔记】第三十八节:TF2实现VITGAN对抗生成网络,CoordinatesPositionalEmbedding博里叶位置编码 实现原创 2022-05-29 10:00:00 · 301 阅读 · 0 评论 -
【人工智能笔记】第三十七节:TF2实现VITGAN对抗生成网络,SLN自调制 实现
【人工智能笔记】第三十七节:TF2实现VITGAN对抗生成网络,SLN自调制 实现原创 2022-05-29 09:15:00 · 178 阅读 · 0 评论 -
【人工智能笔记】第三十六节:TF2实现VITGAN对抗生成网络,MSA多头注意力 实现
【人工智能笔记】第三十六节:TF2实现VITGAN对抗生成网络,MSA多头注意力 实现原创 2022-05-28 21:15:00 · 418 阅读 · 0 评论 -
【人工智能笔记】第三十五节:TF2实现VITGAN对抗生成网络,MLP 实现
【人工智能笔记】第三十五节:TF2实现VITGAN对抗生成网络,MLP 实现原创 2022-05-27 21:00:00 · 189 阅读 · 0 评论 -
【人工智能笔记】第三十四节:TF2实现VITGAN对抗生成网络,PositionalEmbedding 实现
【人工智能笔记】第三十四节:TF2实现VITGAN对抗生成网络,PositionalEmbedding 实现原创 2022-05-26 20:45:00 · 309 阅读 · 0 评论 -
【人工智能笔记】第三十三节:TF2实现VITGAN对抗生成网络,Mapping NetWork 实现
该章节介绍VITGAN对抗生成网络中,Mapping NetWork 部分的代码实现。原创 2022-05-21 21:45:00 · 538 阅读 · 0 评论 -
【人工智能笔记】第三十二节:TF2实现VITGAN对抗生成网络,网络结构简介
该系列一共分成N篇文章,对照论文实现每个细节,并附上源码,该系列完成最后会附上github地址。原创 2022-05-18 22:04:50 · 600 阅读 · 0 评论 -
【人工智能笔记】第三十一节:AutoML系列,用NNI框架进行神经网络架构搜索与超参调优(一)
本章节介绍AutoML框架NNI的安装及使用方法。NNI为微软开发的AutoML框架,支持多种模型的自动调参及架构搜索等功能。原创 2022-01-03 19:32:01 · 1271 阅读 · 3 评论 -
【人工智能笔记】第三十节:注意力原理分析,及tensorflow 2.0 实现
【人工智能笔记】第三十节:注意力原理,及tensorflow 2.0 实现原创 2021-09-25 13:48:35 · 584 阅读 · 3 评论 -
【人工智能笔记】第二十九节 tensorflow 2.0 实现Facebook的无监督图像表示模型MoCo
作者提出动量对比度(MoCo)用于无监督的视觉表示学习。从作为字典查找的对比学习[29]的角度来看,作者构建了一个带有队列和移动平均编码器的动态字典。这样就可以动态地构建大型且一致的词典,从而促进对比性的无监督学习。MoCo在ImageNet分类的通用线性协议下提供了竞争性的结果。更重要的是,MoCo学习到的表示将转移到下游任务。 MoCo可以胜过在PASCAL VOC,COCO和其他数据集上进行监督的预训练对等任务中的7个检测/细分任务,有时会大大超过它。这表明,在许多视觉任务中,无监督和有监督的表征学习原创 2021-03-26 15:09:20 · 450 阅读 · 0 评论 -
【人工智能笔记】第二十八节 tensorflow 2.0 实现YoloV3与YoloV4
基于tensorflow2的YoloV3与YoloV4实现yolov3源码地址:https://github.com/tfwcn/tensorflow2-machine-vision/tree/master/AIServer/ai_api/ai_models/yolo_v3yolov4源码地址:https://github.com/tfwcn/tensorflow2-machine-vision/tree/master/AIServer/ai_api/ai_models/yolo_v4实现内容原创 2021-03-16 14:38:00 · 185 阅读 · 0 评论 -
【人工智能笔记】第二十七节 tensorflow 2.0 中保存模型的方式及注意事项
在 tensorflow2 中,保存模型有多种方法,方法都在tf.keras.models下面:保存模型:save_model 或 model.save,读取模型:load_model。这里可保存成TensorFlow格式或者HDF5 文件。 只保存模型权重:model.save_weights,读取模型权重:model.load_weights。这里同样可以保存成TensorFlow格式或者HDF5 文件。 从配置读取模型结构:model.from_config(model.get_c...原创 2021-03-12 09:08:51 · 1923 阅读 · 0 评论 -
【人工智能笔记】第二十六节 tensorflow 2.0 实现 RepVGG 高效卷积
该版本基于PyTouch版本改写。作者提出了一个简单但功能强大的卷积神经网络架构,该架构具有类似于VGG的推理时间主体,该主体仅由3x3卷积和ReLU的堆栈组成,而训练时间模型具有多分支拓扑。训练时间和推理时间架构的这种解耦是通过结构性重新参数化技术实现的,因此该模型称为RepVGG。在ImageNet上,据我们所知,RepVGG的top-1准确性达到80%以上,这是纯模型首次实现该精度。在NVIDIA 1080Ti GPU上,RepVGG模型的运行速度比ResNet-50快83%,比ResNet-10原创 2021-01-28 15:09:47 · 1225 阅读 · 8 评论 -
【人工智能笔记】第二十五节 tensorflow 2.0 实现卷积注意力模块
卷积注意力有两种:平面注意力,通过对单通道,同一平面内的特征,进行注意力权重的计算与应用。能实现平面内的特征动态权重分配。 通道注意力,通过所有通道,同一位置的单个特征点,进行注意力权重的计算与应用。能实现跨纬度的特征动态权重分配。下面把两种注意力模式结合起来,实现代码如下:import tensorflow as tffrom typing import Tuple, Unionclass AttentionConv2D(tf.keras.layers.Layer): def原创 2021-01-07 09:51:05 · 605 阅读 · 0 评论 -
【人工智能笔记】第二十四节 tensorflow 2.0 自定义模型训练流程,采用动态学习速率加快训练过程
本节介绍如何在tenserflow2.0下自定义模型训练流程。首先我们先实现一个正常的训练流程,然后再改变训练流程,加快训练收敛速度。下面分开两部分讲解。一、正常训练流程通过重构模型里train_step(self,data)方法,可自定义训练流程。同理重构test_step(self,data)方法,可自定义测试流程。正常训练流程:拆分数据,根据dataset将输入x与label拆分开。 将x输入model,正向传播,获得结果y_pred。 label与结果计算loss。 通过l..原创 2020-12-25 14:18:01 · 1475 阅读 · 0 评论 -
【人工智能笔记】第二十三节 efficientdet 目标检测模型,官方源码分析系列,Optimizer梯度计算分析(五)
本章继续分析Efficientdet源码的Optimizer梯度计算部分。模型计算梯度使用了SGD Optimizer和tfa.optimizers.MovingAverage,tfa.optimizers.MovingAverage是一个梯度均值,按一定比例保留上一次的梯度值,减少前期梯度波动范围,防止梯度爆炸。Optimizer定义代码如下,训练时直接使用该方法返回的Optimizer计算梯度:def get_optimizer(params): """Get optimizer."原创 2020-11-02 10:48:44 · 345 阅读 · 0 评论 -
【人工智能笔记】第二十二节 efficientdet 目标检测模型,官方源码分析系列,loss计算分析(四)
本章继续分析Efficientdet源码的loss计算部分。loss计算部分,是整个训练过程的关键所在。正确的计算能让训练加快收敛,与提高模型精度。训练过程包括:素材预处理,将标签转换成模型输出对应形状。 传入模型进行前向传播,计算出预测结果。 将预测结果与实际结果进行loss计算。 根据梯度将loss进行反向传播,更新各层的权重变量。要计算loss,首先,从标签预处理开始。标签处理代码在efficientdet\dataloader.py文件,InputReader类中实现。官方源码因原创 2020-11-02 10:48:36 · 954 阅读 · 0 评论 -
【人工智能笔记】第二十一节 efficientdet 目标检测模型,官方源码分析系列,Box与Class回归细节分析(三)
本章继续分析Efficientdet模型,Box与Class回归网络部分。Box与Class实现代码一样,共5层共用一个卷积层,然后链接单独的BN,接激活函数swish,drop_connect方法用于drop部分卷积。Box与Class主要区别是在最后一层通道数不同,Box通道数为num_anchors*4,Class通道数为num_anchors*(num_classes+1),这里的1为背景。结构图如下:代码如下:class ClassNet(tf.keras.layers.La原创 2020-10-27 20:42:30 · 397 阅读 · 0 评论 -
【人工智能笔记】第二十节 efficientdet 目标检测模型,官方源码分析系列,BiFPN实现细节分析(二)
本章继续分析,BiFPN的实现部分。各种FPN结构如下:如图,单个BiFPN有8个Node。在Efficientdet模型中,由如下类组成: FPNCells:按fpn_cell_repeats参数生成重复多个BiFPN。 FPNCell:代表单个BiFPN,包含8个Node。 FNode:将当前Node的多个输入融合,产生一个输出。 代码结构如下:FPNCells代码如下:class FPNCells(tf.keras.layers.Layer): .原创 2020-10-22 23:31:26 · 3642 阅读 · 3 评论 -
【人工智能笔记】第十九节 efficientdet 目标检测模型,官方源码分析系列,Backbone实现细节(一)
这次是根据官方源码,分析efficientdet模型实现细节。因官方代码基于谷歌的automl框架实现,有很多选项配置,该系列基于默认配置,只关注一些实现细节,一些简单的层会粗略带过,计划分为如下章节:Backbone实现细节分析 BiFPN实现细节分析 Box与Class回归细节分析 Loss计算分析 Optimizer梯度计算分析efficientdet模型结构如下:代码结构如下:对应代码位于efficientdet/keras/efficientdet_keras.py:原创 2020-10-20 10:51:59 · 1746 阅读 · 1 评论 -
【人工智能笔记】第十八节 tensorflow 2.0 分布式训练之多服务器的实现方式
多服务器分布式训练,使用tf.distribute.experimental.MultiWorkerMirroredStrategy,在调用前需要先配置包含各个服务器信息的全局变量,全局变量格式如下:# 设置全局变量,定义多个workeros.environ['TF_CONFIG'] = json.dumps({ 'cluster': { 'worker': ["localhost:12345", "localhost:12346"] # 这里有两个worker },原创 2020-09-01 11:00:43 · 762 阅读 · 0 评论 -
【人工智能笔记】第十七节 tensorflow 2.0 分布式训练之单机多显卡的实现方式
单机多显卡,关键使用tf.distribute.MirroredStrategy,对模型进行分布式创建与编译。其余Keras代码不用改变。该分布式训练是采用多个相同模型,在不同显卡中计算梯度,然后合并求平均,再更新所有权重,同步到所有模型中。另外可以在构建时,手动指定哪些操作使用的设备,如下:# 显示当前操作运行的硬件信息tf.debugging.set_log_device_placement(True)# 在CPU下运行with tf.device('/CPU:0'): a原创 2020-09-01 10:56:58 · 447 阅读 · 0 评论 -
【人工智能笔记】第十六节 目标检测算法mAP分数计算方式,及代码实现
现在各个目标检测比赛中,都采用mAP分数来作为评分标准。下面我们分析一下mAP计算涉及到哪些数据,以及如何计算的。首先说一下TP(True Positive)计算,对应目标结果,有4种情况:True Positive (TP)、False Positive (FP)、False Negative (FN)、True Negative (TN),如下面:计算预测框与实际框(Groud Truth)的IoU(Intersection over Union)值,对应每个实际框选,IoU大于阈值(通常为原创 2020-08-27 22:31:53 · 1075 阅读 · 0 评论 -
【人工智能笔记】第十五节 通过K-means聚类算法,找到Yolo最佳anchors
K-means聚类算法,是通过随机选择N个聚类中心,找到所有点距离最近的中心,计算属于每个中心的点的平均值,用平均值更新中心位置。重复上述步骤不断更新中心位置,直到中心位置不变为止。如图:下面是实现方式:素材便签文件如下:<?xml version='1.0' encoding='utf-8'?><annotation> <folder>VOC2007</folder> <filename>domain1/10000原创 2020-08-15 22:36:30 · 530 阅读 · 0 评论 -
【人工智能笔记】第十四节 Tensorflow 2.0 实现Disout,防止过拟合
华为诺亚实验室开源Disout算法,tensorflow 2.0 的实现。算法通过增加扰动,而不是屏蔽某些特征,来解决过拟合问题。论文:https://arxiv.org/abs/2002.11022实现代码:import tensorflow as tfclass Disout(tf.keras.layers.Layer): ''' disout 论文:https://arxiv.org/abs/2002.11022 ''' def _原创 2020-05-23 18:09:02 · 854 阅读 · 7 评论 -
【人工智能笔记】第十三节 Tensorflow 2.0 下自定义Optimizer,实现 AdaX Optimizer
关键方法_create_slots:为每个待更新变量创建用于计算的关联变量。 _resource_apply_dense与_resource_apply_sparse:每层梯度更新都会调用该方法,返回更新变量操作。Adax Optimizer实现代码如下:import tensorflow as tfclass AdaX(tf.keras.optimizers.Optimizer): r"""Implements AdaX algorithm. Arguments: .原创 2020-05-11 15:55:13 · 988 阅读 · 0 评论 -
【人工智能笔记】第十二节 Tensorflow 2.0 实现指针仪表方向纠正及指针识别(下)
相关资料:【人工智能笔记】第十节 Tensorflow 2.0 实现指针仪表方向纠正及指针识别(上)【人工智能笔记】第十一节 Tensorflow 2.0 实现指针仪表方向纠正及指针识别(中)这一节,会介绍如何使用现实素材继续训练模型,来完成真正的仪表识别。首先我们会使用标注工具对素材进行标注,然后使用实际标注素材进行训练,编写相应的训练代码。下面,我会逐步介绍如何实现。一、使用标...原创 2020-05-02 00:13:10 · 1434 阅读 · 0 评论 -
【人工智能笔记】第十一节 Tensorflow 2.0 实现指针仪表方向纠正及指针识别(中)
相关资料:【人工智能笔记】第十节 Tensorflow 2.0 实现指针仪表方向纠正及指针识别(上)这次创建预测模型,用于预测仪表指针值,与用于方向纠正4个点坐标。预测坐标点采用预测4个基准点偏移值的方式,而不是直接预测实际坐标值。训练前会对图片做数据增强,进行随机颜色、透视变换、增加噪点等操作,防止模型过拟合。一、创建模型1.特征提取模型使用Darknet-53,最后接(9*1...原创 2020-04-06 12:03:42 · 1324 阅读 · 0 评论 -
【人工智能笔记】第十节 Tensorflow 2.0 实现指针仪表方向纠正及指针识别(上)
这次目标是实现指针仪表方向纠正及指针识别。这现实情况下,要做指针仪表识别,因为各种拍摄角度、光线与指针值的不同,通常需要标注大量素材,而且这种标注相对复制。因此为解决该问题,我使用了迁移学习的方法,下面将详细讲解。这次将由三部分讲解整个过程:搭建Django服务,利用ECharts报表生成虚拟仪表图,作为第一阶段的训练素材。 编写模型训练与识别代码,并利用虚拟图做预训练。 人手标注现实...原创 2020-03-26 11:24:02 · 1531 阅读 · 5 评论 -
【人工智能笔记】第九节:Windows下编译python OpenCV 4.2.0,SIFT特征提取,及透视变换纠正物体方向
编译并安装OpenCV0-1.安装前需先卸载pip或conda安装的opencv与opencv_contrib:pip uninstall opencv-contrib-pythonpip uninstall opencv-python0-2.python环境先安装NumPYpip install numpy1.下载OpenCV源码:https://github.com/o...原创 2020-03-07 12:29:58 · 1278 阅读 · 0 评论 -
【人工智能笔记】第八节:强化学习算法简介及DQN人工智能算法Tensorflow 2.0实现
强化学习算法主要应用在游戏AI、自动驾驶、仿生机器人等场景。如在某个环境(游戏、驾驶路上),执行特定动作后,导致状态发生改变,产生不同结果(对应不同激励值,有正负),这种类型的场景都能使用强化学习。其中 DQN 算法是由 Google 提出的,不久前 Google 的 AlphaGo (围棋机器人)就是由该算法演变产生。传统强化学习方法Q-learningQ-learning 属于 of...原创 2020-01-22 23:14:20 · 1913 阅读 · 0 评论 -
【人工智能笔记】第七节:Tensorflow 2.0 自定义Layer
自定义Layer:继承 tf.keras.layers.Layer。 在__init__构造函数里调用父类构造函数,并把参数传到父类。 build方法里初始化权重变量。 call方法里编写计算图。构造函数参数:trainable:布尔值,层的变量是否可训练。name:图层的字符串名称。dtype:图层的计算和权重的dtype(在TensorFlow 2中None使用均值的默...原创 2019-12-05 09:34:09 · 581 阅读 · 0 评论 -
【人工智能笔记】第六节:YOLO 目标检测算法进化史
YOLO 工作原理YOLO 的工作原理是,将图片输入到多层卷积以提取图片特征。然后直接在输出层回归目标框坐标及其所属的类别。最后通过NMS处理去掉重叠的目标框。 与 Faster-RCNN 不同,Faster-RCNN 是在提取特征图后,使用候选框去扫描特征图的方式去寻找目标。然后通过两个子网络进行回归分类。一个用于将候选框加上偏移缩放,以回归目标坐标。一个用来做目标分类。最后通过NMS处理...原创 2019-11-13 14:45:03 · 614 阅读 · 0 评论