簡體   English   中英

如何打包Cloud ML Engine的詞匯表文件

[英]How to package vocabulary file for Cloud ML Engine

我有一個.txt文件,每行包含一個不同的標簽。 我使用此文件來創建標簽索引查找文件,例如:

label_index = tf.contrib.lookup.index_table_from_file(vocabulary_file = 'labels.txt'

我想知道如何將詞匯文件與雲ml-engine打包在一起? 打包建議在如何設置.py文件中是明確的,但我不確定要在哪里放置相關的.txt文件。 應該將它們托管在引擎可以訪問的存儲桶(即gs://)中,還是可以將其與教練打包在一起?

您有多種選擇。 我認為最直接的方法是將labels.txt存儲在GCS位置。

但是,如果您願意,也可以將文件打包在setup.py 有多種方法可以執行此操作,因此,我將為您提供正式的setuptools文檔

讓我來看一個簡單的例子:

創建一個setup.py在你的訓練包下面的目錄(通常被稱為trainer CloudML引擎的樣品中,所以我將繼續進行,如果你的代碼的結構一樣的樣品,包括使用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已復制到壓縮包中。

然后在您的代碼中,您可以像這樣訪問文件:

from pkg_resources import Requirement, resource_filename
resource_filename(Requirement.parse('trainer'),'labels.txt')

請注意,要在本地運行此代碼,必須安裝軟件包: python setup.py install [--user]

這就是我認為將文件存儲在GCS上可能更容易的主要原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM