WuJie1010 / Facial-Expression-Recognition.Pytorch

A CNN based pytorch implementation on facial expression recognition (FER2013 and CK+), achieving 73.112% (state-of-the-art) in FER2013 and 94.64% in CK+ dataset
MIT License
1.78k stars 545 forks source link

关于模型 #47

Closed strivehub closed 4 years ago

strivehub commented 5 years ago

大佬,你好,看到你的模型师是VGG19,但是fer2013是灰度图像,单通道的,怎么在Input的时候,是设置的3呢??

WuJie1010 commented 5 years ago

在输入数据预处理的时候,将灰度图图像复制三份到各个通道中。

strivehub commented 5 years ago

小弟还有一个问题就是,输入图片是48*48的,如果用VGG19的话,有5个池化层,那特征图最后只有1个像素了,请问大佬是这样吗??

WuJie1010 commented 5 years ago

不是的,这里的设计和VGG19还不太一样,最后的池化层的kernel只有1,而VGG是7

strivehub commented 5 years ago

谢谢您的解释,但是我看了源码还是有点没有明白,在源码中 if x == 'M': layers += [nn.MaxPool2d(kernel_size=2, stride=2)] else: layers += [nn.Conv2d(in_channels, x, kernel_size=3, padding=1), nn.BatchNorm2d(x), nn.ReLU(inplace=True)] in_channels = x 进行MaxPool2d的时候,不是大小为(2*2),步长为2,计算过后的特征图大小就减少为原来的额一半,经过五次'M'过后,那特征图就没有了,不知道我是哪里理解错了,还请大神指点。谢谢

WuJie1010 commented 4 years ago

最后的特征图不是没有了,而是1,1,512,然后接上全连接层去分类~