我有一个.txt文件,每行包含一个不同的标签 . 我使用此文件来创建标签索引查找文件,例如:
label_index = tf.contrib.lookup.index_table_from_file(vocabulary_file = 'labels.txt'
我想知道我应该如何使用我的cloud ml-engine打包词汇表文件? packaging suggestions在如何设置.py文件方面是明确的,但我不完全确定在哪里放置相关的.txt文件 . 它们应该只托管在引擎可以访问的存储桶(即gs://)中,还是可以以某种方式与培训师一起打包?
1 回答
你有多种选择 . 我认为最直接的方法是将
labels.txt
存储在GCS位置 .但是,如果您愿意,也可以在
setup.py
中打包文件 . 有多种方法可以做到这一点,所以我会把你推荐给official setuptools documentation .让我来看一个简单的例子:
在训练包下面的目录中创建
setup.py
(在CloudML Engine中通常称为trainer
's samples, so I will proceed as if you' re代码的结构与样本相同,包括使用trainer
作为包) . 以下是基于您引用的docs的一个重要更改,即package_data
参数而不是include_package_data
:如果运行
python setup.py sdist
,则可以看到trainer/labels.txt
已复制到tarball中 .然后在您的代码中,您可以像这样访问文件:
请注意,要在本地运行此代码,您必须安装软件包:
python setup.py install [--user]
.这就是我认为在GCS上存储文件可能更容易的主要原因 .