我有一个.txt文件,它在每一行上都包含一个不同的标签。我使用这个文件创建一个标签索引查找文件,例如:
label_index = tf.contrib.lookup.index_table_from_file(vocabulary_file = 'labels.txt'我想知道我应该如何用我的云ml引擎来打包词汇表文件?包装建议在如何设置.py文件方面非常明确,但我不完全确定应该将相关的.txt文件放在哪里。它们是否应该被存放在一个存储桶中(即。//)引擎可以访问,或者它们是否可以与培训师一起打包?
发布于 2017-08-11 19:39:54
你有多种选择。我认为最简单的方法是将labels.txt存储在GCS位置。
但是,如果您愿意,也可以将文件打包到您的setup.py中。有多种方法可以做到这一点,因此我将向您介绍官方设置工具文档。
让我举一个简单的例子:
在您的培训包下面的目录中创建一个setup.py (在CloudML Engine的示例中通常称为trainer,所以我将继续处理,就像您的代码是与示例一样的,包括使用trainer作为包)。下面是基于您引用的文档进行的一个重要更改,即package_data参数,而不是include_package_data
from setuptools import find_packages
from setuptools import setup
setup(
name='my_model',
version='0.1',
install_requires=REQUIRED_PACKAGES,
packages=find_packages(),
package_data={'trainer': ['labels.txt']},
description='My trainer application package.'
)如果运行python setup.py sdist,可以看到trainer/labels.txt被复制到tarball中。
然后,在您的代码中,您可以这样访问该文件:
from pkg_resources import Requirement, resource_filename
resource_filename(Requirement.parse('trainer'),'labels.txt')注意,要在本地运行这段代码,您必须安装包:python setup.py install [--user]。
这就是我认为将文件存储在GCS上的主要原因。
https://stackoverflow.com/questions/45641474
复制相似问题