当PAI-TF自带的第三方库不能满足需求时,您可以自定义第三方库。本文为您介绍如何在PAI-TF中自定义第三方库及已经支持的第三方库列表。

自定义第三方库

PAI-TF支持自定义第三方库,方法如下:
  1. 在源代码的根目录下,添加文本文件requirements.txt ,并按照 pip requirement file 格式修改文件内容,示例如下。
    Keras==2.0.8
    gensim
    torchvision
    opencv-python >= 3.2.0.8
    ffmpeg-python < 0.1.9
    该示例指定安装了Keras 2.0.8版本、Gensim和PyTorch的最新版、CV2 3.2.0.8及以上版本、FFmpeg 0.1.9以下版本。
  2. requirements.txt与其他源代码一起打包上传,增加到tar.gz文件中。

FAQ

  • 使用的Python第三方库仓库是什么?

    PAI-TF会从Pypi 中下载第三方库,该Repository会定期与官方Pypi进行同步。

  • 如果代码中的requirements.txt不是第三方库列表,PAI-TF会如何处理?

    对于格式不合法的requirements.txt,PAI-TF会将解析错误打印至stderr中并报错退出。

  • requirements.txt的大小有限制吗?

    requirements.txt文件必须小于4 KB,总行数必须小于16,否则退出并报错。

  • 如果需要安装的第三方库依赖于rpm包,应该如何处理?

    为安全性和稳定性考虑,PAI-TF暂不支持自定义安装rpm包。依赖于rpm包的三方库非常少,如果确实有这样的需求,请联系值班工程师。

已经支持的第三方库列表

appdirs (1.4.3)
backports-abc (0.5)
backports.shutil-get-terminal-size (1.0.0)
backports.ssl-match-hostname (3.5.0.1)
backports.weakref (1.0rc1)
bleach (1.5.0)
boto (2.48.0)
bz2file (0.98)
certifi (2017.7.27.1)
chardet (3.0.4)
configparser (3.5.0)
cycler (0.10.0)
decorator (4.1.2)
docutils (0.14)
easygui (0.98.1)
entrypoints (0.2.3)
enum34 (1.1.6)
funcsigs (1.0.2)
functools32 (3.2.3.post2)
gensim (2.3.0)
h5py (2.7.1)
html5lib (0.9999999)
idna (2.6)
iniparse (0.4)
ipykernel (4.6.1)
ipython (5.4.1)
ipython-genutils (0.2.0)
ipywidgets (7.0.0)
Jinja2 (2.9.6)
jsonschema (2.6.0)
jupyter (1.0.0)
jupyter-client (5.1.0)
jupyter-console (5.2.0)
jupyter-core (4.3.0)
jupyter-tensorboard (0.1.1)
Keras (2.0.8)
kitchen (1.1.1)
langtable (0.0.31)
Markdown (2.6.9)
MarkupSafe (1.0)
matplotlib (2.0.2)
mistune (0.7.4)
mock (2.0.0)
nbconvert (5.3.0)
nbformat (4.4.0)
networkx (1.11)
nose (1.3.7)
notebook (4.4.1)
numpy (1.13.1)
olefile (0.44)
pandas (0.20.3)
pandocfilters (1.4.2)
pathlib2 (2.3.0)
pbr (3.1.1)
pexpect (4.2.1)
pickleshare (0.7.4)
Pillow (4.2.1)
pip (9.0.1)
prompt-toolkit (1.0.15)
protobuf (3.1.0)
ptyprocess (0.5.2)
pycrypto (2.6.1)
pycurl (7.19.0)
Pygments (2.2.0)
pygobject (3.14.0)
pygpgme (0.3)
pyliblzma (0.5.3)
pyparsing (2.2.0)
python-dateutil (2.6.1)
pytz (2017.2)
PyWavelets (0.5.2)
pyxattr (0.5.1)
PyYAML (3.12)
pyzmq (16.0.2)
qtconsole (4.3.1)
requests (2.18.4)
scandir (1.5)
scikit-image (0.13.0)
scikit-learn (0.19.0)
scikit-sound (0.1.8)
scikit-stack (3.0)
scikit-surprise (1.0.3)
scikit-tensor (0.1)
scikit-video (0.1.2)
scipy (0.19.1)
setuptools (36.4.0)
simplegeneric (0.8.1)
singledispatch (3.4.0.3)
six (1.10.0)
slip (0.4.0)
slip.dbus (0.4.0)
smart-open (1.5.3)
subprocess32 (3.2.7)
tensorflow (1.2.1)
terminado (0.6)
testpath (0.3.1)
tflearn (0.3.2)
Theano (0.9.0)
torch (0.1.12.post2)
tornado (4.5.2)
traitlets (4.3.2)
urlgrabber (3.10)
urllib3 (1.22)
wcwidth (0.1.7)
webencodings (0.5.1)
Werkzeug (0.12.2)
wheel (0.29.0)
widgetsnbextension (3.0.2)
yum-langpacks (0.4.2)
yum-metadata-parser (1.1.4)
opencv-python