![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Tensorflow 2.0
文章平均质量分 77
基于 Tensorflow2.0 的各种网络结构解析、一些小项目及报错解决等。
cofisher
这个作者很懒,什么都没留下…
展开
-
联邦学习(七):Tensorflow + Socket 实现联邦迁移学习
文章目录项目说明代码实现客户端1、导入需要的库2、为每个客户端制作数据集2.1 导入并处理 MNIST 数据2.2 定义相关变量2.3 为每个客户端制作训练集和测试集3、建立模型3.1 建立服务器模型3.2 建立客户端模型4、定义训练过程5、建立客户端和服务器的连接6、模型训练服务器1、导入需要的库2、建立服务器模型3、接收特征进行训练项目说明在联邦学习(六):Tensorflow 实现联邦迁移学习一文中,我们已经实现了在一台设备上模拟实现联邦迁移学习,在本文中,我们将仿照联邦学习(五):Tensorf原创 2021-04-23 16:24:31 · 1352 阅读 · 2 评论 -
联邦学习(六):Tensorflow 实现联邦迁移学习
项目说明本项目旨在使用 Tensorflow2.0 模拟实现论文 Federated Transfer Learning for Intelligent Fault Diagnostics Using Deep Adversarial Networks with Data Privacy 中所提出的部分方法。方法说明文中使用网络如下图所示(不包含文中所提出的 LpL_pLp 损失):在本文中,客户端共 11 个,包括 10 个源域客户端和 1 个目标域客户端。并且:代码说明1、导入需要的库原创 2021-04-23 15:36:29 · 1898 阅读 · 7 评论 -
联邦学习(五):Tensorflow + Socket 实现真正的联邦学习
项目说明此文章旨在将联邦学习(三):Tensorflow2.0 实现联邦学习和联邦学习(四):Python Socket 实现两台电脑之间文件传输这两篇文章中的内容结合起来,实现真正的联邦学习。代码实现客户端客户端的代码和联邦学习(三):Tensorflow2.0 实现联邦学习中所给出的几乎一致,这里只做简要介绍,只对设计与服务器交互的代码进行详细解释。1、导入需要的库import tensorflow as tffrom tensorflow import kerasfrom keras.原创 2021-04-22 22:08:10 · 1616 阅读 · 23 评论 -
联邦学习(三):Tensorflow2.0 实现联邦学习
文章目录项目说明代码实现1、导入需要的库2、定义相关的类2.1 Data2.2 Aggregator2.3 Model2.4 Bank3、导入并处理原始数据4、联邦学习4.1 划分数据并重采样4.2 模型训练4.2.1 仅使用 Data_Global 训练服务器模型4.2.2 联邦学习训练服务器模型4.3 模型测试5、非联邦学习模型对比5.1 建立模型5.2 模型训练5.2.1 使用不平衡数据训练5.2.2 使用平衡数据训练5.3 非联邦学习模型效果5.4 联邦学习模型效果项目说明数据集:creditc原创 2021-04-21 15:30:49 · 3890 阅读 · 29 评论 -
联邦学习(一):通过卷积神经网络对 emnist 数据集分类
文章目录项目介绍代码说明1、导入需要的库2、导入数据集3、处理数据集4、创建模型5、定义初始化模型函数6、定义迭代函数6.1 客户端更新权重函数6.2 服务端更新权重函数6.3 使用 tff.tf_computation 修饰以上两个更新函数6.4 使用 tff.federated_computation 修饰 next_fn() 函数7、将算法封装到 tff.templates.IterativeProcess 中8、处理测试集数据9、测试集准确率9.1 测试函数9.2 模型初始化9.3 模型训练项目介原创 2021-04-19 13:38:22 · 1922 阅读 · 4 评论 -
Tensorflow2.0 实现DAN和JAN中的损失函数
项目说明在 2015 年的文章 Learning Transferable Features with Deep Adaptation Networks (DAN) 和 2016 年的文章 Deep Transfer Learning with Joint Adaptation Networks (JAN) 中作者利用 MK-MMD 分别提出了两种损失函数(以下简称为 DAN_loss 和 JAN_loss)。在开源的源代码中,作者使用 Pytorch 编写了这两个函数,这里我们将使用 Tensorflo原创 2021-04-06 09:10:51 · 1286 阅读 · 2 评论 -
Tensorflow2.0 求梯度返回None(WARNING:tensorflow:Gradients do not exist for variables)
问题说明利用梯度带计算梯度时发现有些层的梯度返回None。解决方法将正向传播中所有的操作都用tensorflow中的API执行,不能使用numpy等其他库中的API,比如np.concatenate需要被换成tf.concat。原创 2021-02-05 23:42:22 · 3981 阅读 · 0 评论 -
Tensorflow2.0 用 tf.keras.applacations 迁移学习时如何在导入 imagenet 权重的同时保留分类层
项目说明在 Tensorflow2.0之tf.keras.applacations迁移学习 一文中,我们演示了如何将迁移学习层和自定义的分类层结合起来使用,但这里有个问题,就是当你再次打印结合后的模型的每层的名称时,会出现如下情况:import tensorflow as tfmobile = tf.keras.applications.MobileNet(include_top=False, weights='imagenet', input_shape=(224, 224, 3))mobile原创 2021-02-03 12:49:24 · 595 阅读 · 0 评论 -
Tensorflow2.0 梯度反转层(GRL)的实现
项目介绍在对抗学习中,我们常常需要将某一层的梯度乘上-1再进行梯度下降的操作(即梯度上升),就像【深度域适配】一、DANN与梯度反转层(GRL)详解一文中所介绍的那样。代码实现@tf.custom_gradientdef grad_reverse(x): y = tf.identity(x) def custom_grad(dy): return -dy return y, custom_gradclass GradReverse(tf.keras.la原创 2020-12-10 16:03:39 · 2129 阅读 · 0 评论 -
Tensorflow2.0 自定义余弦退火学习率衰减策略
项目说明余弦退火学习率衰减的学习率曲线如下图所示:除了在训练过程中进行学习率衰减以防止求得的最优解不断震荡之外,余弦退火衰减策略规定,学习率每次衰减到0之后,会迅速回升至初始值,这样可以避免陷入局部最优解。关于余弦退火学习率衰减策略的详细介绍可以参考文章:学习率衰减之余弦退火(CosineAnnealing)。代码实现在 Tensorflow2.0 中自定义学习率衰减策略其实很简单,可以参考文章:Tensorflow2.0学习率衰减详细汇总。import tensorflow as tfimp原创 2020-12-10 14:25:51 · 2667 阅读 · 1 评论 -
Tensorflow2.0 之深度残差收缩网络 (DRSN)
文章目录DRSN 原理残差网络自注意力网络软阈值化代码实现DRSN 原理DRSN 由三部分组成:残差网络、自注意力网络和软阈值化。残差网络残差网络(或称深度残差网络、深度残差学习,英文ResNet)属于一种卷积神经网络。相较于普通的卷积神经网络,残差网络采用了跨层恒等连接,以减轻卷积神经网络的训练难度。其具体说明可以参考文章:Tensorflow2.0之自定义ResNet。自注意力网络在 DRSN 中,SE 模块被选用作为自注意力机制中的主要部分。它可以通过一个小型的子网络,自动学习得到一组权重原创 2020-11-02 17:11:34 · 6527 阅读 · 18 评论 -
将大量图片或其数组导入 TFRecord 文件
文章目录项目介绍实例一:现有图片1、写入 TFRecord 文件1.1 导入需要的库1.2 导入图片1.3 写入2、读取 TFRecord 文件2.1 初步读取 TFRecord 文件2.2 生成描述文件2.3 定义解码器2.4 展示图片实例二:图片数组1、写入 TFRecord 文件1.1 导入需要的库1.2 定义文件位置1.3 写入2、读取 TFRecord 文件2.1 初步读取 TFRecord 文件2.2 生成描述文件2.3 定义解码器2.4 查看数据项目介绍在做深度学习项目时往往涉及到大量图片原创 2020-09-05 17:55:45 · 361 阅读 · 0 评论 -
Tensorflow2.0:CNN 解决凯斯西储大学轴承数据集的分类问题
文章目录项目介绍代码实现1、导入需要的库2、参数设置3、归一化4、定义滑窗函数5、取样本6、划分训练集和测试集7、得到 Dataset 类型数据集8、建立模型9、初始化优化器10、定义损失函数11、定义梯度下降函数12、模型训练项目介绍在此文章中,主要是对分类凯斯西储大学轴承数据的代码进行讲解,关于数据集的介绍可以参考:美国西储大学轴承数据解读,在此文章中,我们只对 12K 采样频率下的驱动端轴承故障数据进行分类。另外,当提及外圈故障时,我们只考虑中心方向 @6:00 的外圈故障,且因为故障直径为 0原创 2020-08-14 11:28:52 · 8055 阅读 · 55 评论 -
Tensorflow2.0:基于循环卷积网络预测剩余寿命
文章目录项目介绍RCNN 网络介绍RCNN 优点RCNN 结构循环结构总体框架变分推理量化 RCNN 的预测不确定性1、假设变分分布2、最小化 KL 散度3、将 L 分成两项分别处理3.1 第一项:蒙特卡洛积分3.2 第二项:L2L^2L2 正则化4、得到目标函数项目代码实现1、导入需要的库2、DDL3、优化器4、损失函数5、梯度下降6、模型训练项目介绍在 Multi-Scale Convolutional Attention Network for Predicting Remaining Usefu原创 2020-08-11 14:10:39 · 6892 阅读 · 77 评论 -
Tensorflow2.0:基于多尺度卷积注意力网络预测剩余寿命
文章目录项目介绍MSCAN 网络介绍1、Representation learning subnetwork1.1 卷积块(Block)1.2 自注意力模块1.3 多尺度卷积2、RUL estimation subnetwork2.1 动态高斯失活2.2 Maxout 激活函数MSCAN 网络实现1、Representation learning subnetwork2、DDLMSCAN 网络训练1、优化器2、损失函数3、梯度下降4、模型训练项目介绍在 Multi-Scale Convolutional原创 2020-08-07 23:33:38 · 4684 阅读 · 82 评论 -
Tensorflow2.0:实现 C-MAPSS 数据集的剩余寿命预测
文章目录项目介绍数据集介绍代码实现1、导入需要的库2、导入训练集、测试集与测试集剩余寿命3、计算训练集中每个发动机的剩余寿命3.1 计算训练集中每个发动机的最大寿命3.2 根据最大寿命和运行时间计算剩余寿命4、训练集归一化5、测试集归一化6、计算测试集标签(剩余寿命)6.1 计算训练集中每个发动机的最大寿命6.2 根据训练集中每个发动机的最大寿命和运行时间计算剩余寿命7、提取网络输入7.1 定义滑窗函数取特征7.2 选择要输入神经网络的特征7.3 滑窗提取训练集的输入7.4 滑窗提取测试集的输入8、提取标签原创 2020-08-06 10:52:15 · 8939 阅读 · 53 评论 -
Tensorflow2.0:多分类评价指标 ROC、PRC 绘图、AUC 计算以及混淆矩阵绘制
文章目录项目准备python 代码1、导入需要的库2、建立 Dataset 测试集3、模型导入4、定义测试函数5、将多分类问题转化为单分类问题6、得到每个正例的置信度7、将上面两个函数结合起来8、将测试集输入模型进行测试9、定义 PRC 计算函数10、定义 ROC 计算函数11、计算图片标签和置信度12、计算精确率和召回率13、绘制 P-R 图14、计算 FPR 和 TPR15、绘制 ROC 图项目准备在绘图前,我们只需要有测试集以及训练好的网络模型(.h5 文件)即可。最终得到的图如下所示:py原创 2020-08-03 16:09:47 · 5611 阅读 · 12 评论 -
Tensorflow2.0 保存模型时出现 NotImplementedError 的解决方法
错误描述如果保存用类定义的模型,那么很有可能会出现以下错误:NotImplementedError: Saving the model to HDF5 format requires the model to be a Functional model or a Sequential model. It does not work for subclassed models, because such models are defined via the body of a Python method,原创 2020-07-27 15:29:03 · 3744 阅读 · 0 评论 -
GhostNet 网络原理与 Tensorflow2.0 实现
介绍在 GhostNet: More Features from Cheap Operations 一文中,作者发现,在一个训练好的深度神经网络中,通常会包含一些相似的特征图,以保证对输入数据有更全面的理解。如下图所示,在 ResNet-50 中,将经过第一个残差块处理后的特征图拿出来,三对相似的特征图示例用相同颜色的框注释。 因此,作者提出:将用于获得这张特征图的卷积核数量减少一半(则得到的特征图的通道数会减少一半),然后将得到的特征图进行线性运算(在下图中用扳手表示),得到缺少的另一半特征图,最后将这原创 2020-07-22 15:05:16 · 2373 阅读 · 7 评论 -
Tensorflow2.0 定义模型的三种方法
1、API通过直接使用 tf.keras.Sequential() 函数可以轻松地构建网络,如:mobile = tf.keras.applications.MobileNetV2(include_top=False, weights='imagenet', input_shape=(224, 224, 3)) mobile.trainable = Falsemodel = tf.keras.Sequential([ simplified_mobile, tf.keras.layers.Dr原创 2020-07-22 10:43:59 · 1631 阅读 · 0 评论 -
Tensorflow2.0 读取保存的模型时, 产生错误 [ValueError: Unknown activation function:relu6]
查看在建立模型过程中,定义 relu6 激活函数时是否使用了 tf.keras.layers.Activation(tf.nn.relu6),如果有的话,将其更改为:tf.keras.layers.ReLU(6.)原创 2020-07-22 10:30:58 · 1799 阅读 · 0 评论 -
Tensorflow2.0 用遗传算法进行网络架构搜索
本文将基于 Tensorflow2.0 使用遗传算法对网络结构寻优来对 cifar10 数据集进行分类。此项目共包含两个文件,一个是用于导入数据集、构建网络以及训练网络的文件 main.py,另一个是实现遗传算法的文件 GA.py。原创 2020-07-18 11:58:08 · 1784 阅读 · 6 评论 -
Tensorflow2.0 查看网络中每层的名称、权重及特征图绘制
Tensorflow2.0 查看网络中每层的名称、权重及特征图绘制原创 2020-07-08 20:04:32 · 5693 阅读 · 0 评论 -
Tensorflow2.0 在迁移学习到的模型中间添加新层
这是一个尝试用 Tensorflow2.0 在迁移学习到的模型中间添加新层的记录。原创 2020-07-08 12:13:09 · 1385 阅读 · 0 评论 -
Tensorflow2.0 之开启 GPU 模式
GPU 的使用以及与 CPU 的对比原创 2020-07-06 11:40:52 · 16214 阅读 · 4 评论 -
TensorRT 加速 Tensorflow 实现 Mnist 数据集分类详解
文章目录项目介绍版本介绍model.py 代码说明将 .pb 文件转换为 .uff 文件sample.py 代码说明项目介绍在 Jetson Nano 上使用 TensorRT 为 Mnist 数据集的推理过程进行加速。使用的 .py 文件可以在下面这个路径中找到。cd /usr/src/tensorrt/python/end_to_end_tensorflow_mnist版本介绍在 Jetson Nano 上安装完 Jetpack 之后,发现它自带了 TensorRT,这里给出我使用的版本:原创 2020-07-03 13:11:26 · 941 阅读 · 8 评论 -
EfficientNet 网络原理与 Tensorflow2.0 实现
EfficientNet 网络原理与 Tensorflow2.0 实现原创 2020-06-30 21:45:34 · 1422 阅读 · 2 评论 -
RuntimeError: iter() is only supported inside of tf.function or when eager execution is enabled.
这是由于程序中用到了动态图机制,允许不创建静态图的情况下执行程序,对于 Tensorflow 2.0 以下的版本,需要在 import tensorflow 后,调用 tf.enable_eager_execution() 来启动动态图机制;对于 2.0 以上的版本来说,动态图机制是默认打开的,但如果仍出现这个错误,也可以调用 tf.enable_eager_execution() 来解决。...原创 2020-06-28 15:08:26 · 4952 阅读 · 1 评论 -
ShuffleNet V2 网络结构的原理与 Tensorflow2.0 实现
ShuffleNet V2 网络结构的原理与 Tensorflow2.0 实现原创 2020-06-28 00:41:46 · 2749 阅读 · 2 评论 -
ShuffleNet V1 网络结构的原理与 Tensorflow2.0 实现
介绍在论文 ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices 中,作者提出了 Group convolution 帮助降低计算复杂度;但是使用 Group convolution 会有副作用,故在此基础上,论文提出 Channel shuffle 帮助信息流通。基于这两种技术,论文构建了一个名为 ShuffleNet 的高效架构,相比于其他先进模型,对于给定的计算复杂度预算,ShuffleN原创 2020-06-27 00:17:28 · 1140 阅读 · 5 评论 -
MobileNet V3 网络结构的原理与 Tensorflow2.0 实现
MobileNet V2 网络结构的原理与 Tensorflow2.0 实现原创 2020-06-24 00:09:29 · 4672 阅读 · 1 评论 -
MnasNet 网络原理与 Tensorflow2.0 实现(with SE module)
文章目录介绍网络介绍总体流程Mnasnet 结构含有 SE 模块的 Mnasnet 结构代码实现参考资料介绍设计移动设备上的 CNN 模型具有挑战性,需要保证模型小速度快且准确率高,人为地权衡这三方面很困难,有太多种可能结构需要考虑。Google 大脑 AutoML 组提出了一种用于设计资源受限的移动 CNN 模型的神经网络结构搜索方法,将时间延迟信息明确地整合到主要目标中,这样搜索模型可以识别一个网络是否很好地平衡了准确率和时间延迟。在《MnasNet: Platform-Aware Neural原创 2020-06-23 19:10:30 · 1308 阅读 · 3 评论 -
SENet 网络结构的原理与 Tensorflow2.0 实现
文章目录介绍SE 模块SE 模块在其他网络上的应用模型效果SE 模块代码实现SE 模块应用到 ResNet 代码实现介绍SENet 是 ImageNet 2017(ImageNet 收官赛)的冠军模型,具有复杂度低,参数少和计算量小的优点。另外,SENet 思路很简单,很其中的 SE 模块很容易扩展在已有网络结构如 Inception 和 ResNet 中。SE 模块已经有很多工作在空间维度上来提升网络的性能,如 Inception 等,而 SENet 将关注点放在了特征通道之间的关系上。其具体策略原创 2020-06-23 13:24:35 · 7831 阅读 · 8 评论 -
MobileNet V2 网络结构的原理与 Tensorflow2.0 实现
MobileNet V2 网络结构的原理与 Tensorflow2.0 实现原创 2020-06-22 23:36:20 · 7820 阅读 · 13 评论 -
Xception 网络结构的原理与 Tensorflow2.0 实现
Xception 网络结构的原理与 Tensorflow2.0 实现原创 2020-06-22 13:48:53 · 3042 阅读 · 2 评论 -
MobileNet V1 网络结构的原理与 Tensorflow2.0 实现
对 MobileNet 网络的介绍与 Tensorflow2.0 实现。原创 2020-06-21 17:35:50 · 1062 阅读 · 0 评论 -
用 OpenCV+TensorFlow 和 AI 玩石头剪刀布
用 OpenCV 和 TensorFlow 实现石头剪刀布游戏。原创 2020-06-17 22:21:55 · 1006 阅读 · 0 评论 -
Tensorflow2.0 之 SSD 网络结构
文章目录引言网络结构搭建 SSD 网络空洞卷积参考资料引言SSD 目标检测算法在 2016 年被提出,它的速度要快于 Faster-RCNN,其精度要高于 YOLO(YOLOv3 除外),在本文中,我们主要针对其网络结构进行说明。网络结构其实 SSD 的网络是基于 VGG 网络来建立的,VGG 网络如下图所示:SSD 网络将 VGG 中的全连接层去掉后又在后面接了十层卷积层,将 VGG 中的 Conv4_3,新加的 Conv7,Conv8_2,Conv9_2,Conv10_2,Conv11_2 的原创 2020-05-17 11:26:44 · 2517 阅读 · 0 评论 -
Tensorflow2.0之TensorBoard:训练过程可视化
文章目录使用 TensorBoard 流程具体流程Step 1Step 2Step 3Step 4查看 Graph 和 Profile 信息使用 TensorBoard 流程1、建立文件夹存放 TensorBoard 的记录文件;2、实例化记录器;3、将参数(一般是标量)记录到指定的记录器中;4、访问 TensorBoard 的可视界面。具体流程Step 1在代码目录下建立一个文件夹(如 ./tensorboard )。Step 2实例化记录器:summary_writer = t原创 2020-05-12 21:04:20 · 4070 阅读 · 3 评论 -
Tensorflow2.0之模型权值的保存与恢复(Checkpoint)
文章目录介绍保存变量恢复变量有限制地保留 Checkpoint 文件实例1、定义模型及训练过程2、保存模型参数2.1 不限制 checkpoint 文件个数2.2 限制 checkpoint 文件个数3、加载模型参数参考资料介绍很多时候,我们希望在模型训练完成后能将训练好的参数(变量)保存起来。在需要使用模型的其他地方载入模型和参数,就能直接得到训练好的模型。TensorFlow 提供了 tf.train.Checkpoint 这一强大的变量保存与恢复类,可以使用其 save() 和 restore(原创 2020-05-12 15:03:13 · 9664 阅读 · 7 评论