news 2026/6/9 1:06:38

深度学习打卡第J2周:ResNet50V2算法实战与解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深度学习打卡第J2周:ResNet50V2算法实战与解析
  • 🍨本文为🔗365天深度学习训练营中的学习记录博客
  • 🍖原作者:K同学啊
import tensorflow as tf import tensorflow.keras.layers as layers from tensorflow.keras.models import Model def block2(x, filters, kernel_size=3, stride=1, conv_shortcut=False, name=None): preact = layers.BatchNormalization(name=name + '_preact_bn')(x) preact = layers.Activation('relu', name=name + '_preact_relu')(preact) if conv_shortcut: shortcut = layers.Conv2D(4 * filters, 1, strides=stride, name=name + '_0_conv')(preact) else: shortcut = layers.MaxPooling2D(1, strides=stride)(x) if stride > 1 else x x = layers.Conv2D(filters, 1, strides=1, use_bias=False, name=name + '_1_conv')(preact) x = layers.BatchNormalization(name=name + '_1_bn')(x) x = layers.Activation('relu', name=name + '_1_relu')(x) x = layers.ZeroPadding2D(padding=((1, 1), (1, 1)), name=name + '_2_pad')(x) x = layers.Conv2D(filters, kernel_size, strides=stride, use_bias=False, name=name + '_2_conv')(x) x = layers.BatchNormalization(name=name + '_2_bn')(x) x = layers.Activation('relu', name=name + '_2_relu')(x) x = layers.Conv2D(4 * filters, 1, name=name + '_3_conv')(x) x = layers.Add(name=name + '_out')([shortcut, x]) return x def stack2(x, filters, blocks, stride1=2, name=None): x = block2(x, filters, conv_shortcut=True, name=name + '_block1') for i in range(2, blocks): x = block2(x, filters, name=name + '_block' + str(i)) x = block2(x, filters, stride=stride1, name=name + '_block' + str(blocks)) return x def ResNet50V2(include_top=True, # 是否包含位于网络顶部的全连接层 preact=True, # 是否使用预激活 use_bias=True, # 是否对卷积层使用偏置 weights='imagenet', input_tensor=None, # 可选的keras张量,用作模型的图像输入 input_shape=None, pooling=None, classes=1000, # 用于分类图像的可选类数 classifier_activation='softmax'): # 分类层激活函数 img_input = layers.Input(shape=input_shape) x = layers.ZeroPadding2D(padding=((3, 3), (3, 3)), name='conv1_pad')(img_input) x = layers.Conv2D(64, 7, strides=2, use_bias=use_bias, name='conv1_conv')(x) if not preact: x = layers.BatchNormalization(name='conv1_bn')(x) x = layers.Activation('relu', name='conv1_relu')(x) x = layers.ZeroPadding2D(padding=((1, 1), (1, 1)), name='pool1_pad')(x) x = layers.MaxPooling2D(3, strides=2, name='pool1_pool')(x) x = stack2(x, 64, 3, name='conv2') x = stack2(x, 128, 4, name='conv3') x = stack2(x, 256, 6, name='conv4') x = stack2(x, 512, 3, stride1=1, name='conv5') if preact: x = layers.BatchNormalization(name='post_bn')(x) x = layers.Activation('relu', name='post_relu')(x) if include_top: x = layers.GlobalAveragePooling2D(name='avg_pool')(x) x = layers.Dense(classes, activation=classifier_activation, name='predictions')(x) else: if pooling == 'avg': # GlobalAveragePooling2D就是将每张图片的每个通道值各自加起来再求平均, # 最后结果是没有了宽高维度,只剩下个数与平均值两个维度。 # 可以理解为变成了多张单像素图片。 x = layers.GlobalAveragePooling2D(name='avg_pool')(x) elif pooling == 'max': x = layers.GlobalMaxPooling2D(name='max_pool')(x) model = Model(img_input, x) return model if __name__ == '__main__': model = ResNet50V2(input_shape=(224, 224, 3)) model.summary()

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 5:44:58

搜维尔科技:MANUS数据手套实现远程虚拟现实神经外科手术训练

理工学院纳米沉浸式实验室沉浸式实验室是理工学院的多学科空间,旨在可视化复杂数据并开发沉浸式技术原型。它为科学、工程和艺术领域的用户提供增强现实和虚拟现实研究、动作捕捉以及数字物理交互方面的支持。外科手术训练挑战现代神经外科技术对精准度要求极高&…

作者头像 李华
网站建设 2026/6/9 17:23:59

端侧多模态新纪元:MiniCPM-V 2.6重新定义移动端AI交互体验

在人工智能技术迅猛发展的今天,多模态理解能力已成为衡量AI模型智能化水平的核心指标。近日,由OpenBMB团队推出的MiniCPM-V 2.6模型在该领域取得显著进展,尤其在资源受限的端侧设备上展现出令人瞩目的性能表现。这款融合视觉与语言理解能力的…

作者头像 李华
网站建设 2026/6/9 17:25:43

LeetCode 49. 字母异位词分组 | 从排序到计数的哈希表优化之路

在 LeetCode 的字符串类题目中,「字母异位词分组」是一道经典的中等难度题,它不仅考察字符串处理的基础能力,更是对哈希表键值设计思路的深度检验。这道题的核心是找到字母异位词的 共性特征,并通过这个特征实现分组。今天我们就从…

作者头像 李华
网站建设 2026/6/9 17:25:50

亲测!高性价比AI数字员工租赁公司分享

亲测!高性价比AI数字员工租赁公司分享行业痛点分析当前AI数字员工领域面临着诸多技术挑战。一方面,技术的通用性不足,不同行业的业务流程和需求差异巨大,现有的AI数字员工难以实现全行业的深度适配。测试显示,在一些复…

作者头像 李华
网站建设 2026/6/9 17:25:52

LLM本地推理全流程:基于LMDeploy的pipeline实战指南

在大语言模型(LLM)应用落地过程中,本地环境的高效推理部署是开发者面临的核心挑战之一。LMDeploy作为一款轻量级推理框架,通过其pipeline API为开发者提供了便捷的模型调用接口。本文将系统梳理LMDeploy pipeline的配置方法与高级…

作者头像 李华
网站建设 2026/6/9 2:08:30

如何用哔哩下载姬实现B站视频高效保存?5个技巧让你效率提升150%

如何用哔哩下载姬实现B站视频高效保存?5个技巧让你效率提升150% 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印…

作者头像 李华