【发布时间】:2018-09-08 06:42:51
【问题描述】:
我发现 Google NMT 使用编解码器来读取输入数据文件。
import codecs
import tensorflow as tf
with codecs.getreader("utf-8")(tf.gfile.GFile(input_file, mode="rb")) as f:
return f.read().splitlines()
我有两个问题。
- 以上是否支持在使用
tf.gfile.GFile的16GB RAM 的个人计算机中读取size more than 5 GB左右的巨大数据集而不会出现内存错误?我真的很感激能帮助我阅读大量语言语料库的解决方案
没有出现内存错误
。
2. 我在代码中导入了编解码器,为什么会出现这个错误"NameError: name 'codecs' is not defined"?
编辑 1:
对于2.获取
OutOfRangeError Traceback (most recent call last) <ipython-input-7-e78786c1f151> in <module>() 6 input_file = os.path.join(source_path) 7 with codecs.getreader("utf-8")(tf.gfile.GFile(input_file, mode="rb")) as f: ----> 8 source_text = f.read().splitlines()
当操作迭代超过有效输入范围时引发OutOfRangeError。我怎样才能解决这个问题 ?
【问题讨论】:
-
你能输入你的导入行吗
-
已在问题中更新!!
-
你想对文件做什么?由于这似乎是一个基于行的文本文件,因此您可以只阅读它而不会在内存中超过一行。另外,当您只想读取文件时,为什么在这里使用
tensorflow.gfile.GFile?为什么不来自 Python 标准库的io.open? -
你用的是什么版本的 Python,我刚刚测试了一个简单的两行代码
Type "help", "copyright", "credits" or "license" for more information. >>> import codecs >>> codecs.open("Sample.csv") <_io.TextIOWrapper name='Sample.csv' mode='r' encoding='cp1252'> >>>它工作正常 -
编解码器导入工作。那应该是我的错。您对我的问题 1 和问题 2 的最新更新有答案吗?非常感谢您的帮助
标签: python-3.x tensorflow nlp bigdata machine-translation