我试图用二维CNN对中文文章进行文本分类,并对Convolution2D
有一定的麻烦。我知道Convolution2D
处理图像的基本流程,但是我坚持使用我的数据集和keras。这是我的问题之一:
数据集
Convolution1D
神经网络进行了测试,但结果并不好。(9800, 6810, 200)
。
最长的文章有6810字,最短的文章有不到50字,需要填充所有文章到6810,200是word2vec大小(似乎有人称它为embedding_size?)格式如下:
[word2vec size=200,word2vec size=200] 2 [word2vec size=200,word2vec size=200] .[word2vec size=200,word2vec size=200]就是那篇文章。字长6810太大了?为了避免使用MemoryError
,我不得不将9800个示例减少到6500,因为6500已经吃掉了我所有的32 my内存。除了将所有的文章修剪到更短的长度之外,还有其他优化内存使用的方法吗?
发布于 2017-01-22 21:30:28
Keras常见问题已经部分地回答了这个问题。您可以使用model.fit_generator()
以块的形式加载数据。生成器在一个单独的线程中运行,并生成您的小型批处理,可能是从您的存档逐个加载它们,避免将所有内容一次性加载到RAM中。
使用它的代码大致如下所示:
def train_generator():
while True:
chunk = read_next_chunk_of_data()
x,y = extract_training_data_from_chunk(chunk)
yield (x,y)
model.fit_generator(generator=train_generator())
https://stackoverflow.com/questions/41799692
复制相似问题