使用gcloud ML引擎时如何设置环境变量?

2024-04-27 03:37:46 发布

您现在位置:Python中文网/ 问答频道 /正文

所有人

(环境:Windows7、Python3.6、Keras和tensorflow libs、gcloud ml引擎)

我使用gcloudml引擎运行某些kerasml模型示例,如介绍的here。一切都很好,但我只是在多次运行中得到了不同的结果,尽管我使用的是相同的训练和验证数据。我的目标是使生殖训练从多次跑步中产生效果。在

我在google上搜索了一段时间,在这个Keras Q&A中找到了一些关于产生生殖结果的解决方案。基本上,他们首先建议:

First, you need to set the PYTHONHASHSEED environment variable to 0 before the program starts (not within the program itself).

我知道我可以在自己的机器上本地设置变量,也可以在部署gcloud函数时设置它。在

但是,当我使用gcloud ML引擎时,我不知道如何设置环境变量(在服务器端,而不是在本地)。因此,当我的模型程序在gcloud服务器上运行时,我无法在gcloud服务器上设置“PYTHONHASHSEED=0”。在

顺便说一句,总的来说,我知道随机性在ML领域是一个有用的性质,但是我对如何产生生殖结果这个话题还不是很熟悉,所以任何关于这个话题的想法都是受欢迎的。谢谢!在

大齐

附言: 我尝试在运行时间中设置以下环境变量:

import os
os.environ["PYTHONHASHSEED"] = "0" 
print(hash("keras"))

但它不能起到“在程序启动前设置变量”的效果。所以有了这段代码,我仍然无法从多次运行中得到相同的哈希结果。另一方面,在本地,如果我在运行代码之前设置“PYTHONHASHSEED=0”,我可能会得到相同的哈希结果。在


Tags: theto模型引擎程序服务器os环境变量
1条回答
网友
1楼 · 发布于 2024-04-27 03:37:46

我不相信cloudml引擎API提供了一种设置环境变量的机制。但是,您可以通过编写包装器脚本(NB:未测试代码)来解决此问题:

import os
import subprocess

env = os.environ.copy()
env["PYTHONHASHSEED"] = "0"

subprocess.check_call(['python', 'main.py'], env=env)

相关问题 更多 >