我正在尝试在Amazon Reviews DataSet上训练一个神经网络,以便我可以教它在正面和负面情绪之间正确分类。我尝试使用的方法是首先使用Google的Word2Vec模型对每个评论进行矢量化,方法是从模型中对矢量进行采样。然后,我将它们送入卷积神经网络进行训练。
我从here获得了Google预训练的Word2Vec模型,它给了我一个长度为300维的Vector,并且通过将每个评论截断为80个单词,我为每次评论获得了一个80 x 300的Vector。 / p>
卷积神经网络I训练具有以下结构:
Layer (type) Output Shape
- conv2d_1 (Conv2D) (None, 1, 300, 128)
- conv2d_2 (Conv2D) (None, 1, 300, 64)
- conv2d_3 (Conv2D) (None, 1, 300, 32)
- conv2d_4 (Conv2D) (None, 1, 300, 16)
- flatten_1 (Flatten) (None, 4800)
- dropout_1 (Dropout 0.5) (None, 4800)
- dense_1 (Dense) (None, 256)
- batch_normalization_1 (Batch (None, 256)
- activation_1 (Relu) (None, 256)
- dropout_2 (Dropout 0.5) (None, 256)
- dense_2 (Dense) (None, 1)
我使用大型网络和神经元来减少训练数据的过度拟合。
然而,我的主要问题是我无法训练大部分数据,因为我无法将所有数据加载到内存中,并且由于特征化向量包含大多数高精度小数,因此它们会占用很多内存和磁盘空间,如果我序列化它们。
我是否可以使用转移学习解决不训练足够数据的问题?我计划使用的方法是:
这是培训大型模型的有效方法吗?因为我在相同的数据集上重新训练模型,所以我假设我不必冻结任何图层吗?
此外,Stochastic Gradient Descent是否是这个问题的一个很好的优化器,因为我将接受大量数据的培训?
答案 0 :(得分:0)
如果您使用数据生成器,我认为更合适,而不是您提出的方法。