因为要用到CNN, 大概了解其意思,而不太明白具体工作原理,趁着元旦放假,集中心思了解它.
下面这个博客给出了非常具体明白的解释.再结合读的这篇文章.大概知道了其原理
http://blog.csdn.net/u013082989/article/details/53673602
https://www.zybuluo.com/hanbingtao/note/485480 (非常详细明白)
首先了解CNN的概念:
卷积:在CNN模型中,卷积就是拿kernel在图像上到处移动,每移动一次提取一次特征,组成feature map, 这个提取特征的过程就是卷积
卷积核(Convolution kernel)也叫过滤器filter, 由对应的权值和偏置提现.
宽卷积:句子长度为S,kernel的大小是K,则卷积后的长度是S+K-1, 其实是句子的前后各padding了(k-1)个零
窄卷积:句子没有进行pad, 卷积后的长度是S-K+1
关于这篇文章比较好的code:
https://github.com/xiayandi/Pytorch_text_classification/blob/master/cnn.py
https://github.com/junwang4/CNN-sentence-classification-pytorch-2017/blob/master/cnn_pytorch.py
代码注释非常好的CNN
https://github.com/MorvanZhou/PyTorch-Tutorial/blob/master/tutorial-contents/401_CNN.py
https://github.com/xiayandi/Pytorch_text_classification/blob/master/cnn.py