ShusenTang / Dive-into-DL-PyTorch

本项目将《动手学深度学习》(Dive into Deep Learning)原书中的MXNet实现改为PyTorch实现。
http://tangshusen.me/Dive-into-DL-PyTorch
Apache License 2.0
18.17k stars 5.38k forks source link

5.12 DenseNet的实现 #123

Closed nnniuzy closed 4 years ago

nnniuzy commented 4 years ago

bug描述 DenseNet中稠密连接的实现方式

版本信息 pytorch: torchvision: torchtext: ...

def forward(self, X):
    for blk in self.net:
        Y = blk(X)
        X = torch.cat((X, Y), dim=1)  # 在通道维上将输入和输出连结
    return X

下面是torch官方的实现方法,我觉得这两者有些区别,下放这个更像是直观的稠密连接,features中的数值没有变过,书中的代码好像X的值一直在改变。(还是说,我理解错了)

def forward(self,X):
    features = [X]
    for blk in self.net:
        Y = blk(torch.cat(features, dim=1))
        features.append(Y)
    return features
ShusenTang commented 4 years ago

我认为本质没啥区别,最终返回结果都是[X1,X2,X3,...],其中Xn = blk([X1,X2,...,X(n-1)])

nnniuzy commented 4 years ago

好吧,我想了一下,的确是我一开始考虑错了[捂脸],多谢回复