CNN似乎主要针对固定大小的输入实施。现在我想用CNN来训练一些不同大小的句子,有哪些常用的方法?如何使用CNN来训练不同大小的输入数据?
回答
以下建议主要与CNN有关的计算机视觉(特别是用于识别),但也可能对您的域有所帮助:我会看看"Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition" by He et al.提出一个空间金字塔池图层。
总体思路:CNN的卷积层(以及相关层,如池,本地响应规范化等)能够处理可变大小的输入。因此,可变尺寸输入的问题向下传播到需要具有固定尺寸的矢量的第一完全连接/内积层。他等人。建议在第一个完全连接层之前添加Spatial Pyramid Pooling Layer(本文详细内容)。该层本身通过将最后一个卷积层(或随后的池化或响应规范化层)的特征映射分层划分为固定数量的分箱来工作。在这些垃圾箱内,通常会收集响应,创建一个固定大小的输出(其大小取决于垃圾箱的层次和数量)。请参阅纸张的插图。
该图层已经基于Caffe实现,可在GitHub上获得:ShaoqingRen/SPP_net。
这是关于可变大小输入的一般概念的一个很好的答案,但它是关于计算机视觉,而问题是关于句子 – dvb
是的,的确如此。这就是为什么我的意思是一个建议。自然地,递归神经网络将是处理不同长度的句子/单词的好模型。但是这个问题明确地询问CNN。 CNN确实主要用于固定大小的输入 - 独立于应用程序域。在计算机视觉中,SPP图层和类似的池化方法非常流行。这些想法是通用的,并不局限于计算机视觉,只是发生在计算机视觉领域。 –
DynamicCNN - for Theano/Lasagne by Fréderic Godin是一种可能对句子建模更好的方法。它是基于一个由Nal Kalchbrenner,爱德华Grefenstette,菲尔Blunsom从2014年
引述提到论文的摘要命名"A Convolutional Neural Network for Modelling Sentences"纸:
的网络使用动态K-最大池,一个全球性的池操作 超过线性序列。网络处理长度不等的输入句子,并且在能够明确捕获短期和长期关系的句子上诱导特征图。网络 不依赖分析树,并且很容易适用于任何 语言。我们在四个实验中测试了DCNN:小规模二进制和 多级情感预测,六方问题分类和 远程监控的Twitter情绪预测。网络 在前三个任务中获得了优异的性能,在最后一个任务中相对于最强基准的错误减少了25%,因此获得了更好的性能。
我自己并没有使用它,但它解决了SO上的另一个类似的sentences modeling problem。
- 1. CNN给定训练数据的理想输入大小
- 2. NaN的Tensorflow熵在训练时的大输入CNN
- 3. 如何处理CNN模型中的不同输入大小
- 4. 如何使用附加的分类/数字特征来训练CNN模型?
- 5. 大数据中的CNN培训方法
- 6. 如何制作多尺度图像来训练CNN
- 7. 如何使用Tensorflow在CNN中训练图像
- 8. 如何在不同的输入上使用训练好的模型
- 9. validation_batch_size等于训练CNN中的train_batch_size?
- 10. 机器学习的非平衡训练数据(CNN/RNN)
- 11. 如何训练Keras LTSM多维输入?
- 12. 培训多输入Keras NN与批处理训练数据
- 13. 在spaCy中使用不同的word2vec训练数据
- 14. 在Keras中使用预先训练的CNN进行传输学习的输入维数
- 15. CNN负面训练图片示例
- 16. 试图训练区域CNN(R-CNN)的ImageNet模型
- 17. 如何有效分离不同大小的数据输入?
- 18. 使用Theano的简单CNN训练的准确性非常低
- 19. 使用预先训练的(Tensorflow)CNN的分类图像
- 20. 如何使用相同的StringToWordVector过滤器来训练数据和看不见的数据
- 21. Tensorflow Layers API CNN参数在训练过程中不会改变
- 22. 1)从整个训练集中训练CNN和2)训练集中的训练集,然后是整个训练集之间的区别是什么?
- 23. 如何训练RBM并使用DeepLearning4J重建输入?
- 24. 如何在更快的R-CNN中训练RPN?
- 25. Tensorflow为不同的训练输入参数返回相同的结果
- 26. 如何格式化Keras上的训练输入和输出数据
- 27. 如何使用数组数组来训练分类器?
- 28. 简单的CNN的不平衡训练和测试准确性
- 29. 训练任意长度的输入和目标的数据
- 30. 如何在使用Caffe训练时获得训练错误?
始终将输入掩盖到数据集中的最大尺寸。 – alvas
但我正在尝试处理一些文章,其长度范围从500到40,000 ...可能填充有点低效? –