当前位置: 首页 > news >正文

网站开发 动易重庆专业seo

网站开发 动易,重庆专业seo,dedecms做手机网站,前端开发培训机构排名🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 📌你需要解决的疑问:这个代码是否有错?对错与否都请给出你的思考 📌打卡要求:请查找相关资料、逐步…
  • 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
  • 🍖 原作者:K同学啊

📌你需要解决的疑问:这个代码是否有错?对错与否都请给出你的思考
📌打卡要求:请查找相关资料、逐步推理模型、详细写下你的思考过程

代码如下

# 定义残差单元  
def block(x, filters, strides=1, groups=32, conv_shortcut=True):  if conv_shortcut:  shortcut = Conv2D(filters * 2, kernel_size=(1, 1), strides=strides, padding='same', use_bias=False)(x)  # epsilon为BN公式中防止分母为零的值  shortcut = BatchNormalization(epsilon=1.001e-5)(shortcut)  else:  # identity_shortcut  shortcut = x  # 三层卷积层  x = Conv2D(filters=filters, kernel_size=(1, 1), strides=1, padding='same', use_bias=False)(x)  x = BatchNormalization(epsilon=1.001e-5)(x)  x = ReLU()(x)  # 计算每组的通道数  g_channels = int(filters / groups)  # 进行分组卷积  x = grouped_convolution_block(x, strides, groups, g_channels)  x = Conv2D(filters=filters * 2, kernel_size=(1, 1), strides=1, padding='same', use_bias=False)(x)  x = BatchNormalization(epsilon=1.001e-5)(x)  x = Add()([x, shortcut])  x = ReLU()(x)  return x

如果conv_shortcut=False,那么执行“x=Add()…”语句时,通道数不一致的,为什么不会报错呢?

思考

关键点分析:

  1. conv_shortcut=False 时的 shortcut

    • conv_shortcut=False 时,shortcut 直接等于 x,没有经过卷积层处理。也就是说,在 x = Add()([x, shortcut]) 这一行之前,shortcutx 是相同的张量。因此,它们的通道数和空间尺寸应该是相同的,直接相加是没有问题的。
    • 因此,执行 Add() 时,xshortcut 的维度是匹配的。
  2. conv_shortcut=True 时的 shortcut

    • conv_shortcut=True 时,shortcut 会通过一个 1x1 卷积进行通道数调整:
      shortcut = Conv2D(filters * 2, kernel_size=(1, 1), strides=strides, padding='same', use_bias=False)(x)
      
      • 这里 shortcut 的通道数被修改为 filters * 2,使其与主路径输出的通道数一致。
      • 如果步长 strides 是大于1的值(例如2),则 shortcut 的空间尺寸(高度和宽度)也会发生变化,因此需要保证它们的空间尺寸与主路径的输出相匹配。为此,使用 Conv2DBatchNormalization 来调整通道数,并保持 padding='same' 来避免空间尺寸的变化。
  3. Add() 层的作用

    • Add() 层要求输入张量的维度一致。如果 conv_shortcut=Falseshortcutx 在通道数和空间尺寸上已经是相同的,因此直接相加是不会出现维度不匹配的错误的。
    • 但是,如果通道数或空间尺寸不一致,Keras 会抛出错误,提示“维度不匹配”或类似错误。

为什么没有报错:

  • conv_shortcut=False 时,shortcutx 的维度是一样的,因为 shortcut = x,它们在通道数、空间尺寸等维度上都相同,因此 Add() 操作没有问题。
  • Add() 操作本身不会对维度进行任何变换,它只是简单地将两个张量逐元素相加。如果两个张量的维度不一致,Keras 会报错。

结论:

  • conv_shortcut=False 的情况下,shortcut 直接等于 x,因此它们的维度是相同的,Add() 操作能够成功执行。
  • 只有当 conv_shortcut=True 时,shortcut 会通过卷积进行维度调整,这样就确保了通道数和空间尺寸与主路径的输出一致,避免了维度不匹配的问题。

测试:

为了验证,可以在代码中添加调试语句,打印出 x.shapeshortcut.shape,看看它们在执行 Add() 之前是否匹配。例如:

print("x shape:", x.shape)
print("shortcut shape:", shortcut.shape)

这可以帮助进一步确认 xshortcut 在执行加法之前是否一致。

http://www.ds6.com.cn/news/6250.html

相关文章:

  • 关于建设网站的请示报告seo自媒体培训
  • 郑州手机端建站模板广丰网站seo
  • 网上兼职做效果图网站有哪些百度网盘下载
  • ipad做电影网站希爱力双效片副作用
  • 单页导航网站模板今日头条站长平台
  • 青岛网站定做在线生成个人网站源码
  • 服装网站设计公司凡科网建站系统源码
  • 做网站菏泽网络销售推广公司
  • 滁州做网站朋友圈广告
  • 人民法院网站建设背景百度推广登录网址
  • 做微信的网站叫什么软件免费b站推广网站详情
  • 网站建设背景和目标广州私人做网站
  • 江苏省质量建设厅网站宁波网络推广优化公司
  • 临沂企业自助建站系统湖人最新消息
  • 深圳 网站建设培训学校网站管理系统
  • 网站 只收录首页打开免费百度啊
  • 湖南株洲网网站优化推广
  • 博彩网站开发不存储数据犯法吗芜湖网络营销公司
  • 门业网站 源码免费外链生成器
  • 西安网站建设全包徐州百度快照优化
  • 网站改版的好处seo整站优化外包公司
  • java开发网站开发费用义乌最好的电商培训学校
  • 阿里云部署一个自己做的网站保定网站推广公司
  • 建设公司网站开发方案关键词搜索工具有哪些
  • 深圳做网站推荐哪家公司阳山网站seo
  • 南阳网站推广公司提高工作效率心得体会
  • 天水企业网站建设seo排名点击手机
  • php网站项目网页搜索快捷键
  • 网站301跳转怎么做青岛seo软件
  • 网站制作方案相信乐云seosemantics