【发布时间】:2019-03-08 01:11:12
【问题描述】:
全部,
(环境:Windows 7、Python 3.6、Keras 和 tensorflow 库、gcloud ml 引擎)
我正在使用here 介绍的 gcloud ml 引擎运行某些 Keras ML 模型示例。一切都很好,但我在多次运行中得到了不同的结果,尽管我使用的是相同的训练和验证数据。我的目标是通过多次运行获得生殖训练结果。
我用谷歌搜索了一段时间,并在这个Keras Q&A 中找到了一些关于产生生殖结果的解决方案。基本上他们首先提出了这个建议:
首先,您需要在程序启动之前将 PYTHONHASHSEED 环境变量设置为 0(而不是在程序本身内)。
我知道我可以在我自己的机器上本地设置变量,或者我可以在部署 gcloud 功能时设置它,正如 here 介绍的那样。
但是,当我使用 gcloud ML 引擎(在服务器端但不在本地)时,我只是不知道如何设置环境变量。因此,当我的模型程序在那里运行时,我无法在 gcloud 服务器上设置“PYTHONHASHSEED=0”。
顺便说一句,总的来说,我知道随机性在 ML 领域是一种有用的性质,但我对生成结果的主题还不是很熟悉,所以也欢迎任何关于这个主题的想法。谢谢!
大旗
PS: 我尝试在下面的运行时设置环境变量:
import os
os.environ["PYTHONHASHSEED"] = "0"
print(hash("keras"))
但它不能产生“在程序启动之前设置变量”的效果。因此,通过拥有此代码,我仍然无法从多次运行中获得相同的哈希结果。另一方面,在本地,如果我在运行代码之前设置“PYTHONHASHSEED=0”,我可能会得到相同的哈希结果。
【问题讨论】:
标签: python machine-learning keras gcloud google-cloud-ml