我正在研究一个多类别分类问题,包括对简历进行分类.
我使用了sklearn及其TfIdfVectorizer来获得一个大的scipy稀疏矩阵,我在酸洗后用Tensorflow模型提供.在我的本地机器上,我加载它,将一小批转换为密集的numpy数组并填充一个feed字典.一切都很好.
现在我想在ML云上做同样的事情.我的pickle存储在gs://my-bucket/path/to/pickle但是当我运行我的教练时,在这个URI(IOError: [Errno 2] No such file or directory)中找不到pickle文件.我pickle.load(open('gs://my-bucket/path/to/pickle), 'rb')用来提取我的数据.我怀疑这不是在GCS上打开文件的好方法,但我对Google Cloud完全不熟悉,而且我找不到正确的方法.
另外,我读到必须使用TFRecords或CSV格式输入数据,但我不明白为什么我的方法无法工作.由于矩阵的密集表示太大而无法放入内存,因此不包括CSV.TFRecords可以有效地编码稀疏数据吗?是否可以从pickle文件中读取数据?
你是对的,Python的"开放"不适用于开箱即用的GCS.鉴于您正在使用TensorFlow,您可以使用file_io库,它既可以使用本地文件,也可以使用GCS上的文件.
from tensorflow.python.lib.io import file_io
pickle.loads(file_io.read_file_to_string('gs://my-bucket/path/to/pickle'))
Run Code Online (Sandbox Code Playgroud)
注意:pickle.load(file_io.FileIO('gs://..', 'r'))似乎不起作用.
欢迎您使用任何适用于您的数据格式,并且不限于CSV或TFRecord(您是否介意指向提出该声明的文档中的位置?).如果数据适合内存,那么您的方法是明智的.
如果数据不适合内存,您可能希望使用TensorFlow的读取器框架,其中最方便的是CSV或TFRecords.TFRecord只是字节串的容器.最常见的是,它包含序列化的tf.Example数据,它支持稀疏数据(它本质上是一个映射).有关解析tf.Example数据的更多信息,请参阅tf.parse_example.
| 归档时间: |
|
| 查看次数: |
459 次 |
| 最近记录: |