我试着在亚马逊评论DataSet上训练一个神经网络,这样我就可以教它正确地区分积极情绪和消极情绪。我尝试使用的方法是首先使用Google的Word2Vec模型对每个评审进行矢量化,方法是从模型中抽取向量。然后,我把它们输入卷积神经网络来训练它。
我从这里那里获得了Google的预训练过的这里模型,它给了我一个长度为300维的向量,通过将每个评论截断为80个单词,我得到了一个80x300Vectorfor每个评论。
卷积神经网络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) 我使用一个大的网络,具有较大的辍学率和神经元,以减少过度拟合的训练数据。
然而,我的主要问题是我无法对大部分数据进行训练,因为我无法将所有的数据加载到内存中,而且由于特征化的向量大多包含高精度的小数,它们占用了大量的内存和磁盘空间,如果我序列化它们。
对于我来说,是否有可能用转移学习来解决数据不足的问题?我计划使用的方法是:
这是训练大型模型的有效方法吗?因为我是在同一数据集中重新训练模型,我是否正确地假设我不需要冻结任何层?
另外,随机梯度下降是这个问题的一个很好的优化器,因为我将对大量的数据进行培训吗?
发布于 2017-11-06 19:03:00
与建议的方法不同,我认为使用数据生成器更合适。
https://stackoverflow.com/questions/47140767
复制相似问题