TensorFlow2的ResNet实现,满满干货!
TensorFlow2
TensorFlow2是2019去年10月由Google发布的TensorFlow升级版。这可以算是TensorFlow的历史性改革,相比1.X版本增加了许多新内容。由于更新了TF的版本,许多小伙伴在原有基于1.X版本的程序就会出现许多警告和报错。由于去年年底课业繁忙,考试也一堆一堆,很遗憾没有在第一时间了解TF2的新内容。
放假在家好好研究了一下TF2,拿几个经典的卷积神经网络——LeNet5、AlexNet、VGG16、GoogLeNet(Inception v1)和ResNet练了练手。
ResNet
先介绍一下ResNet,深度学习和目标检测领域的小伙伴们应该对此都比较熟悉了,即便不知道具体结构和原理,对这个名字也应该听过无数回了。ResNet是一个应用十分广泛的卷积神经网络的特征提取网络,在2016年由大名鼎鼎的何恺明(He-Kaiming)及其团队提出,他曾以第一作者身份拿过2次CVPR最佳论文奖(2009年和2016年),其中2016年CVPR最佳论文就是这个深度残差网络。
论文:《Deep Residual Learning for Image Recognition》arxiv.org残差网络是致力于使用多个有参网络层来学习输入、输出之间的残差函数即
以下是实现残差学习的一个版块(block)示意图(摘自论文):
程序实现的思路也是通过先构建一个block然后根据ResNet的结构实现整个网络的构建。关于ResNet的有关概念这里不做过多的介绍。
环境
CPU: Intel i5 9400F
GPU: GTX 1660
RAM: 16G
CUDA: 10.1
TF Version:2.1
使用的是
数据集
使用了fashion数据集。fashion数据集出自论文:
DeepFashion: Powering Robust Clothes Recognition and Retrieval with Rich Annotationwww.ee.cuhk.edu.hk这是2016年CVPR上的一篇论文。该数据集中包含:
- 289,222 张服装图片 clothes images;
- 50 个服装类别 clothing categories
- 1,000 个服装属性 clothing attributes。
代码实现与结果
结果展示
loss和acc曲线:
参数量:
代码
# -*- coding: utf-8 -*-
联系我
- 如果有什么想法与建议可以在评论区评论,或者与我私信。
- 更多内容请关注我的CSDN账号:@我什么也不会TwT。或者扫描下方二维码:
感谢阅读,如果你喜欢或者觉得对你有所帮助的话,欢迎“喜欢”和“收藏”,也可以分享给你的小伙伴们~