Tensorflow 我可以使用转移学习对不同数据子集的神经网络进行再训练以解决记忆问题吗?
我正在尝试训练一个神经网络,这样我就可以教它正确区分积极情绪和消极情绪。我尝试使用的方法是首先使用Google的Word2Vec模型,通过从模型中抽取向量,对每个评论进行向量化。然后,我把它们输入一个卷积神经网络进行训练 我从中获得了Google预先训练好的Word2Vec模型,它给了我一个长度为300维的向量,通过将每个评论截短到80个单词,我为每个评论获得了一个80 x 300的向量 卷积神经网络I训练具有以下结构:Tensorflow 我可以使用转移学习对不同数据子集的神经网络进行再训练以解决记忆问题吗?,tensorflow,neural-network,deep-learning,keras,conv-neural-network,Tensorflow,Neural Network,Deep Learning,Keras,Conv Neural Network,我正在尝试训练一个神经网络,这样我就可以教它正确区分积极情绪和消极情绪。我尝试使用的方法是首先使用Google的Word2Vec模型,通过从模型中抽取向量,对每个评论进行向量化。然后,我把它们输入一个卷积神经网络进行训练 我从中获得了Google预先训练好的Word2Vec模型,它给了我一个长度为300维的向量,通过将每个评论截短到80个单词,我为每个评论获得了一个80 x 300的向量 卷积神经网络I训练具有以下结构: Layer (type) Output S
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)
我使用了一个包含大量辍学和神经元的大型网络来减少训练数据的过度拟合
但是,我的主要问题是,我无法对大多数数据进行训练,因为我无法将所有数据加载到内存中,而且由于特征化向量包含的大部分是高精度小数,因此如果我序列化它们,它们会占用大量内存和磁盘空间
我是否可以使用迁移学习来解决数据不足的问题?我计划使用的方法是:
- 加载可放入内存的数据集子集
- 使用谷歌的Word2Vec模型对其进行矢量化(这部分大约需要5-10分钟)
- 培训50-100个时代的模型
- 加载数据集的第二个子集并重复
另外,随机梯度下降法是解决这个问题的一个很好的优化器吗?因为我将在大量数据上进行训练?我认为使用数据生成器会更合适,而不是使用数据生成器。我认为使用数据生成器会更合适