我正在使用 Ray Tune 来调整 pytorch 模型的超参数。 默认的ray session 目录(/tmp/ray)所在的存储容量是有限的,因此我想在使用tune.Tuner()时指定 session 目录(即/tmp/ray→/my_directory)。 我found 我可以指定一个参数 --temp-dir 或以某种方式将其传递给 ray.init()。
但是,我既不调用 ray 也不调用 ray.init(),并且根本不知道在哪里设置 session 目录。有什么简单的技巧吗? 为了调整超参数,我基本上将tune.trainable的对象传递给tune.Tuner()并调用tuner.fit()。
感谢您的建议! 斯蒂尔森
到目前为止,我发现错误“设备上没有剩余空间”连接到/tmp 上的有限容量。 我发现有一个默认的射线 session 目录,将其设置到不同的位置可以解决问题。但我现在只是不知道如何以及在哪里将其传递给tune.Tuner()
最佳答案
如果您在脚本中运行 Ray Tune 而不调用 ray.init()
您自己,它将使用默认设置为您调用(它将仅启动本地射线集群)。
你能做的就是在运行tuner.fit()
之前自己调用它并通过 _temp_dir
论据:
import ray
from ray import tune
# ...
ray.init(_temp_dir="/path/to/tmp/ray")
tune = tune.Tuner(
# ...
)
或者,您可以从命令行启动 Ray。那么你必须使用 ray.init("auto")
在你的脚本中:
终端:
ray start --head --temp-dir /path/to/tmp/ray
脚本:
import ray
from ray import tune
# ...
ray.init("auto")
tune = tune.Tuner(
# ...
)
最后,您也可以仅符号链接(symbolic link)您的 /tmp/ray
目录到其他地方
终端:
ln -s /tmp/ray /path/to/tmp/ray
关于performance - Ray Tune 用于使用指定 session 目录 (!=/tmp/ray/) 进行超参数调整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75029247/