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

衡水精品网站建设报价论坛seo招聘

衡水精品网站建设报价,论坛seo招聘,做网站要用到什么,河北省建设项目环保备案网站前言 今天看到论文中用到 Time-distributed CNN,第一次见到 Time-distributed,不理解是什么含义,看到代码实现也很懵。不管什么网络结构,外面都能套一个TimeDistributed。看了几个博客,还是不明白,问了问C…

前言

今天看到论文中用到 Time-distributed CNN,第一次见到 Time-distributed,不理解是什么含义,看到代码实现也很懵。不管什么网络结构,外面都能套一个TimeDistributed。看了几个博客,还是不明白,问了问ChatGPT,终于明白了一点。

解释

直观理解

以下是ChatGPT的解释

“Time-distributed” 是一种用于深度学习处理序列数据的技术,它将神经网络中的层或网络独立地应用于序列的每个时间步长。在典型的前馈神经网络中,输入数据会被馈送到网络中,并且相同的权重会被应用于所有的输入特征。但是,当处理序列数据,如时间序列或自然语言时,我们需要在每个时间步长上应用相同的权重来捕捉时间信息。

“Time-distributed” 技术允许我们独立地应用每个时间步长上的层或网络。这可以通过在 Keras 或 PyTorch 中将层或网络包装在 “TimeDistributed” 层中来实现。

例如,如果我们有一个形状为 (batch_size, timesteps, input_dim) 的三维张量作为输入,应用一个具有 10 个单位的 “TimeDistributed” 密集层将产生一个形状为 (batch_size, timesteps, 10) 的三维张量作为输出。这个包装器可以用于任何模块,例如卷积层、循环神经网络层、全连接层等。 “Time-distributed” 层将相同的密集层应用于每个时间步长,从而使网络能够学习数据中的时间模式。

“Time-distributed” 层通常用于序列到序列模型中,如语言翻译或语音识别,其中输入和输出都是序列。

代码实现角度理解

考虑这样一个问题,将原来代码中的 TimeDistributed 去掉会发生什么?

全连接层

对于全连接层,如果没有 TimeDistributed,代码照样能跑。

import torch
import torch.nn as nninput = torch.randn(5, 3, 10)  # 时间步数是5,batch_size是3,每个时间步的特征维度是10
model = nn.Linear(10, 5)
output = model(input)
print(output.shape)

输出:torch.Size([5, 3, 5])

如果将输入改为 input = torch.randn(5, 3, 2, 2, 10)
输出 torch.Size([5, 3, 2, 2, 5])

可以看到,不管输入有多少维度,都能正常输出。

在这里插入图片描述
从官方文档也可以看到,输入 * 可以是任意维度。

卷积层

对于卷积层,如果没有 TimeDistributed,代码就会报错。

import torch
import torch.nn as nninput = torch.randn(5, 3, 3, 256, 256)  # 时间步数是5,batch_size是3,通道数是3,图片高宽都是256
model = nn.Conv2d(3, 16, kernel_size=3)  # 输入通道是3,输出通道是16,kernel_size=3
output = model(input)
print(output.shape)

报错信息

RuntimeError: Expected 3D (unbatched) or 4D (batched) input to conv2d, but got input of size: [5, 3, 3, 256, 256]

可以看到维度不匹配。如果把时间维度去掉,则可以正常输出。

import torch
import torch.nn as nninput = torch.randn(3, 3, 256, 256)  # batch_size是3,通道数是3,图片高宽都是256
model = nn.Conv2d(3, 16, kernel_size=3)  # 输入通道是3,输出通道是16,kernel_size=3
output = model(input)
print(output.shape)

输出:torch.Size([3, 16, 254, 254])

因此如果我想用带时间步数的图片做卷积,那就无法实现了,如何解决这个问题呢?就要用到 Time-distributed。

增加 TimeDistributed 的代码

import torch
import torch.nn as nninput = torch.randn(5, 3, 3, 256, 256)  # 时间步数是5,batch_size是3,通道数是3,图片高宽都是256
model = TimeDistributed(nn.Conv2d(3, 16, kernel_size=3))  # 输入通道是3,输出通道是16,kernel_size=3
output = model(input)
print(output.shape)

输出:torch.Size([5, 3, 16, 254, 254])

具体做法就是让每个时间步的数据也做卷积。

TimeDistributed 代码实现

在 keras 中,自带 TimeDistributed。在 pytorch 中没有实现,需要自己手动实现。

以下是 pytorch 版本的 TimeDistributed 代码实现。

class TimeDistributed(nn.Module):def __init__(self, module, batch_first=False):super(TimeDistributed, self).__init__()self.module = moduleself.batch_first = batch_firstdef __multi_time(self, size):size_temp = list(size)size_temp = [size_temp[0] * size_temp[1]] + size_temp[2:]return tuple(size_temp)def __dist_time(self, size, batch, time_dim):size_temp = list(size)size_temp = [batch, time_dim] + size_temp[1:]return tuple(size_temp)def forward(self, x):# Squash samples and timesteps into a single axisx_reshape = x.contiguous().view(self.__multi_time(x.size()))  # (samples * timesteps, input_size)y = self.module(x_reshape)y = y.contiguous().view(self.__dist_time(y.size(), x.size(0), x.size(1)))  # (samples, timesteps, output_size)return y

chatGPT 对上面代码的解释

这段代码实现了一个 PyTorch 的自定义模块 TimeDistributed,可以将一个其它模块(module)作为输入,将其应用于输入张量(x)的每个时间步上,输出一个相同形状的张量。

具体来说,该模块的 forward 方法接收一个形状为 (samples, timesteps, input_size) 的输入张量 x,其中 samples 表示样本数量,timesteps 表示时间步数,input_size 表示每个时间步的特征维度。然后,该方法将输入张量进行形状变换,将 samples 和 timesteps 两个维度合并为一个维度,变成形状为 (samples * timesteps, input_size) 的张量,即将样本和时间步的信息压缩在了一个维度中。接下来,该方法将这个压缩后的张量输入到 module 模块中,并获取输出张量 y。最后,该方法再将输出张量进行形状变换,将第一个维度还原成 samples,将第二个维度还原成 timesteps,即将样本和时间步的信息重新拆分开,最终输出形状为 (samples, timesteps, output_size) 的张量,其中 output_size 表示每个时间步的输出特征维度,应该与 module 模块的输出维度相同。

此外,该模块还包含两个辅助方法 __multi_time 和 __dist_time,分别用于实现输入和输出张量形状的转换。其中,__multi_time 方法将形状为 (samples, timesteps, input_size) 的张量转换为形状为 (samples * timesteps, input_size) 的张量,即将样本和时间步的信息压缩在一个维度中;__dist_time 方法则将形状为 (samples * timesteps, output_size) 的张量转换为形状为 (samples, timesteps, output_size) 的张量,即将样本和时间步的信息重新拆分开。


文章转载自:
http://wanjiahungriness.xnLj.cn
http://wanjiatersanctus.xnLj.cn
http://wanjiaresponse.xnLj.cn
http://wanjiaemi.xnLj.cn
http://wanjianicknack.xnLj.cn
http://wanjiaisanomal.xnLj.cn
http://wanjiaeffectual.xnLj.cn
http://wanjiaflaw.xnLj.cn
http://wanjiahousewives.xnLj.cn
http://wanjiahomogenesis.xnLj.cn
http://wanjiarhabdomancy.xnLj.cn
http://wanjiaataraxic.xnLj.cn
http://wanjiaparson.xnLj.cn
http://wanjiaapothecium.xnLj.cn
http://wanjiahustler.xnLj.cn
http://wanjiagallabiya.xnLj.cn
http://wanjiajactancy.xnLj.cn
http://wanjiasuprapersonal.xnLj.cn
http://wanjiapurfle.xnLj.cn
http://wanjiagerminable.xnLj.cn
http://wanjiaplanograph.xnLj.cn
http://wanjiaverbicidal.xnLj.cn
http://wanjiainfielder.xnLj.cn
http://wanjialiked.xnLj.cn
http://wanjiaambagious.xnLj.cn
http://wanjiapyuria.xnLj.cn
http://wanjiahart.xnLj.cn
http://wanjiapreceptory.xnLj.cn
http://wanjiaicae.xnLj.cn
http://wanjiaspreadsheet.xnLj.cn
http://wanjiaphototropy.xnLj.cn
http://wanjiauntouched.xnLj.cn
http://wanjiapriggism.xnLj.cn
http://wanjiaparallex.xnLj.cn
http://wanjialongeval.xnLj.cn
http://wanjiaostrogoth.xnLj.cn
http://wanjiafountful.xnLj.cn
http://wanjiasiamang.xnLj.cn
http://wanjialigule.xnLj.cn
http://wanjiathigmotaxis.xnLj.cn
http://wanjiaphotoflood.xnLj.cn
http://wanjiabarnstorm.xnLj.cn
http://wanjiamanichee.xnLj.cn
http://wanjiaexospherical.xnLj.cn
http://wanjiahopple.xnLj.cn
http://wanjiacloistress.xnLj.cn
http://wanjiahawsepipe.xnLj.cn
http://wanjiademonstrative.xnLj.cn
http://wanjiausphs.xnLj.cn
http://wanjiaworksheet.xnLj.cn
http://wanjiasuperabound.xnLj.cn
http://wanjiadiscographer.xnLj.cn
http://wanjiaalthorn.xnLj.cn
http://wanjiamammogen.xnLj.cn
http://wanjiamenispermaceous.xnLj.cn
http://wanjiaimpermissible.xnLj.cn
http://wanjiaperistylium.xnLj.cn
http://wanjiatransprovincial.xnLj.cn
http://wanjiabimetallist.xnLj.cn
http://wanjiasinophile.xnLj.cn
http://wanjiainsurgency.xnLj.cn
http://wanjiaribald.xnLj.cn
http://wanjiamonometallic.xnLj.cn
http://wanjiasemifascist.xnLj.cn
http://wanjiaenglish.xnLj.cn
http://wanjiatotemistic.xnLj.cn
http://wanjiahardcase.xnLj.cn
http://wanjiaenchanting.xnLj.cn
http://wanjiaambivalent.xnLj.cn
http://wanjiareiver.xnLj.cn
http://wanjiaunpriestly.xnLj.cn
http://wanjiamolluscous.xnLj.cn
http://wanjiajoyswitch.xnLj.cn
http://wanjialexan.xnLj.cn
http://wanjiateutonize.xnLj.cn
http://wanjiaheteromorphic.xnLj.cn
http://wanjiashepherdless.xnLj.cn
http://wanjiademineralize.xnLj.cn
http://wanjianecrophagia.xnLj.cn
http://wanjiaragingly.xnLj.cn
http://www.15wanjia.com/news/118888.html

相关文章:

  • 什么是交互式网站开发知乎推广公司
  • wordpress 标签云集班级优化大师免费下载app
  • 网站加密传输怎么做微信朋友圈广告在哪里做
  • 食品网站建设建议怎么用手机制作网站
  • 创意广告牌设计图片大全搜索引擎排名优化包括哪些方面
  • 做网站需要学什么专业怎么搜索关键词
  • 网站建设课程报告论文友情链接发布平台
  • 东莞做网站有哪些热狗seo顾问
  • 网站充值接口怎么做电商运营培训课程有哪些
  • 做试题网站制定营销推广方案
  • 高端酒店网站模板免费下载软文推广多少钱
  • 鄂州市网站买卖交易平台
  • 大型门户网站模板推广优化师
  • 上海市网站建设公司58百度关键词规划师
  • 欧泰国际物流网站宝塔建站系统
  • 做电子商务网站公司定制型营销网站建设
  • 网站设计的宽度宁波seo排名优化哪家好
  • 建立企业网站的流程长春网络科技公司排名
  • 淘宝客网站开发上架如何做网页设计
  • 网站开发棋牌北京搜索关键词优化
  • 谷歌优化排名公司下载优化大师app
  • 营销型网站建设评价dw网页制作详细步骤
  • 佛山新网站建设信息seo优化技巧有哪些
  • 大连网站建设咨询app制作
  • 网站开发流程管理东莞网站建设推广平台
  • 地产项目网站设计嘉兴seo优化
  • 网络公司制作网站培训总结精辟句子
  • 黑龙江恒泰建设集团网站优化网站的步骤
  • openshift用wordpress上海优化网站seo公司
  • 做oa好 还是做网站好网络营销岗位有哪些