Python Tensorflow使内存崩溃google colab
在预处理数据的同时,我正在为阿拉伯语方言(比如某个地区的俚语)进行单词嵌入:Python Tensorflow使内存崩溃google colab,python,memory-management,tokenize,tensorflow2.0,Python,Memory Management,Tokenize,Tensorflow2.0,在预处理数据的同时,我正在为阿拉伯语方言(比如某个地区的俚语)进行单词嵌入: 加载json 提取线条 清除URL、表情符号和其他 删除至少有2个单词的列表 创建上下文,目标窗口为2 使用tf.keras.preprocessing.text.Tokenizer在文本上匹配 问题:从文本创建到矩阵 我想从第7步开始做一个热编码,这样我就可以把它传送到网络上 def loadJson(file): import json lines=[] with open(file) as f:
def loadJson(file):
import json
lines=[]
with open(file) as f:
for line in f:
lines.append(json.loads(line))
return lines
def extractSentences(lines,language):
posts=[]
comments=[]
for line in lines:
if line['language']==language:
posts.append(line['message'])
for j in line['comments']:
if j['language']==language:
comments.append(j['message'])
return posts, comments
def removeSpecialChar(posts):
import re
def remov(p):
l=re.sub(' {2,}',' ',re.sub('[^ـابتةثجحخدذرزىسشصضطظعغفقكلمنهويءآأؤإئّّّّّ:ّّّّّ]',' ',re.sub('َ|ً|ُ|ٌ|ِ|ٍ|ْ','',r""+p.strip())))
myre = re.compile(u'['
u'\U0001F300-\U0001F64F'
u'\U0001F680-\U0001F6FF'
u'\u2600-\u26FF\u2700-\u27BF]+',
re.UNICODE)
return myre.sub('',l)
return list(map(remov,posts))
def delEmpty(posts,size=2):
while True:
p=len(posts)
for j,i in enumerate(posts):
if len(i.split(' '))<2:
#print(i.split(' '))
del posts[j]
if p-len(posts)==0:
return
def contextAndTarget(posts,k=2):
import numpy as np
context = []
target = []
for j,i in enumerate(posts):
ul = [ k for k in i.split(' ') if len(k)>2]
for handel in range(len(ul)-1):
for e in range(k):
if e+handel<len(ul):
context.append(ul[handel])
target.append(ul[e+handel])
X = []
X.extend(target)
X.extend(context)
Y = []
Y.extend(context)
Y.extend(target)
return X,Y
您的数据集和相应的矩阵有多大?不久前,我试图用numpy构建一个巨大的图像,但它只是在大于80.000 x 80.000的矩阵上崩溃,因为float64超出了范围。如果您有一个多维数组,您可以在其中传递更多的值,可能是75.000x75.000x75.000,但它会消耗大量内存。也许可以考虑通过RAM在本地保存的矩阵上传输值。用于图像的PyVIP(示例)[link]()好的,那么问题出在哪里?
lines=loadJson('data.json')
posts,comments=extractSentences(lines,'ARABIC')
posts=removeSpecialChar(posts)
delEmpty(posts)
X,Y=contextAndTarget(posts)
tokenPosts=preprocessing.text.Tokenizer()
tokenPosts.fit_on_texts(X)
vocab_size=len(tokenPosts.word_counts)+1
#just right here it crashes nd the RAM increase suddenly
xLines,yLines=tokenPosts.texts_to_matrix (X),tokenPosts.texts_to_matrix (Y)