Google ML Engine中的環境配置

2021-08-27 08:09:29 字數 2626 閱讀 6089

在使用ml engine進行神經網路的訓練時,需要先要對雲伺服器的環境進行配置。配置的方法總體有兩種,一種是手動上傳打包檔案(tarballs),並將其路徑作為訓練輸入新增;另外一種是將pypi包新增進訓練的包中,詳細可以檢視官方文件。ml engine預設使用pip install安裝所有依賴,因此首先需要確認需要新增的依賴是否在pypi庫裡面。

將預先準備好的包放在專案(project)路徑下,在提交訓練任務時,使用–packages引數指明需要安裝的包。

gcloud ml-engine jobs submit training my_job \

--staging-bucket gs://my-bucket \

--package-path /path/to/my/project/trainer \

--module-name

trainer.task \

--packages dep1.tar.gz,dep2.whl

在訓練專案的頂級目錄下建立setup.py檔案,呼叫setuptools.setup函式並宣告所需的包及其版本,即可實現對ml engine環境中包的安裝和更新。setup.py檔案的內容例如:

from setuptools import find_packages

from setuptools import setup

required_packages = ['some_pypi_package>=1.5',

'another_package==2.6']

setup(

name='trainer',

version='0.1',

install_requires=required_packages,

packages=find_packages(),

include_package_data=true,

description='generic example trainer package with dependencies.')

有時候,pypi庫中沒有我們所需的包,例如在python3.5中,使用matplotlib時缺少python3-tk,而這個包在pypi中是沒有的,可以通過apt-get install來安裝。這時就需要對setup.py檔案進行修改,通過subprocess建立子程序進行安裝。

# -*- coding: utf-8 -*-

"""created on mon jun 11 14:39:14 2018

@author: wz

"""from setuptools import find_packages

from setuptools import setup

import logging

import subprocess

from setuptools.command.install import install

class

customcommands

(install):

"""a setuptools command class able to run arbitrary commands."""

defruncustomcommand

(self, command_list):

print ('running command: %s' % command_list)

p = subprocess.popen(

command_list,

stdin=subprocess.pipe,

stdout=subprocess.pipe,

stderr=subprocess.stdout)

stdout_data, _ = p.communicate()

print ('command output: %s' % stdout_data)

logging.info('log command output: %s', stdout_data)

if p.returncode != 0:

raise runtimeerror('command %s failed: exit code: %s' %

(command_list, p.returncode))

defrun(self):

self.runcustomcommand(['apt-get', 'update'])

self.runcustomcommand(

['apt-get', 'install', '-y', 'python3-tk'])

install.run(self)

setup(

name='trainer',

version='0.1',

packages=find_packages(),

include_package_data=true,

install_requires=[

'keras',

'h5py',

'pandas',

'numpy',

'opencv-python',

'matplotlib',

'tqdm',

'sklearn'

],cmdclass=

)

linux中 中括號 中的判斷引數

源自 http www.diybl.com course 6 system linux linuxjs 20081117 151774.html b file 若檔案存在且是乙個塊特殊檔案,則為真 c file 若檔案存在且是乙個字元特殊檔案,則為真 d file 若檔案存在且是乙個目錄,則為真 e...

從HIVE中中查詢

從hive資料庫查詢文件 by ymd 拼接sql語句 string sql select from doc file where contains name wildcard 拼接名稱查詢語句 if stringutils.isnoneempty unstructuredbean.getname ...

Spring中classpath中萬用字元號的使用

說明 無萬用字元,必須完全匹配 classpath user base beans.xml 說明 匹配零個或多個字串 只針對名稱,不匹配目錄分隔符等 例如 user a base beans.xml user b base beans.xml 但是不匹配 user base beans.xml cl...