标签: ray

用于超参数优化的 Tune of Ray 包中“num_samples”的目的

我正在尝试使用Tune为 LSTM(纯 Tensorflow)执行超参数优化任务。我在hyperopt算法上遵循了他们的示例。在示例中,他们在“配置”部分中使用了以下行。

“num_samples”:10 如果 args.smoke_test 其他 1000,

文档没有解释这是什么。我无法确定这是否是一段有用的代码,或者我应该如何为我的场景更改它。所以如果我能知道这行代码的含义就太好了。

可以通过此链接找到示例 hyperopt 代码

python-3.x ray deep-learning hyperparameters tensorflow

5
推荐指数
2
解决办法
1244
查看次数

Ray 比 Python 和 .multiprocessing 慢得多

我上传了 130k json 文件。

我用以下方法做到这一点Python

import os
import json
import pandas as pd

path = "/my_path/"

filename_ending = '.json'


json_list = []

json_files = [file for file in os.listdir(f"{path}") if file.endswith(filename_ending)]

import time
start = time.time()

for jf in json_files:
    with open(f"{path}/{jf}", 'r') as f:

        json_data = json.load(f)

        json_list.append(json_data)

end = time.time()
Run Code Online (Sandbox Code Playgroud)

需要 60 秒。

我用以下方法做到这一点multiprocessing

import os
import json
import pandas as pd
from multiprocessing import Pool
import time

path = "/my_path/"

filename_ending = '.json' …
Run Code Online (Sandbox Code Playgroud)

python ray

5
推荐指数
1
解决办法
6160
查看次数

RAY Python 框架内存不足

我用 ray 创建了一个简单的远程函数,它占用的内存很少。但是,运行一小段时间后,内存稳步增加,并且出现 RayOutOfMemoryError 异常。

下面的代码是这个问题的一个非常简单的例子。“result_transformed” numpy 数组被发送给工作人员,每个工作人员都可以在其中进行工作。我的简化 calc_similarity 函数什么也不做,但它仍然耗尽内存。我为该方法添加了更长的睡眠时间来模拟做更多的工作,但它最终会耗尽内存。

我在 8 核 Intel 9900K 上运行,32GB RAM 和 Ubuntu 19.10 Python 是:Intel Python Distribution 3.7.4 numpy is 1.17.4 (with intel mkl)

import numpy as np
from time import sleep
import ray
import psutil

@ray.remote
def calc_similarity(sims, offset):
    # Fake some work for 100 ms.
    sleep(0.10)
    return True

if __name__ == "__main__":
    # Initialize RAY to use all of the processors.
    num_cpus = psutil.cpu_count(logical=False)
    ray.init(num_cpus=num_cpus)

    num_docs = 1000000
    num_dimensions = 300 …
Run Code Online (Sandbox Code Playgroud)

memory-management numpy multiprocessing ray python-3.7

5
推荐指数
1
解决办法
3113
查看次数

如何在 k 重 CV 设置中组织 Ray Tune 可训练类计算?

看起来 Ray Tune 文档促使您使用一种方法编写一个可训练类,_train该方法可以进行增量训练并将指标报告为字典。通过 _load _restore 方法可以保持一定的状态。

太长了;没有明确的好方法来基于配置运行嵌套并行运行并记录结果等。这种模式是否会破坏调整流程?

如果您想在不同的训练/测试对(具有不同的模型)上使用聚合分数,那么您在方法内的训练/测试对和模型上映射(并行)的预期模式是什么_train

如果有关 Tune 使用的问题有更好的地方,请告诉我。

ray cross-validation hyperparameters

5
推荐指数
0
解决办法
1109
查看次数

RLlib 训练一次迭代中的时间步数

我是强化学习的新手,我正在使用 RLlib 在 OpenAI 健身房中研究自定义环境的 RL。创建自定义环境时,是否需要在__init__()方法中指定剧集数?另外,当我用

for _ in range(10):
     trainer.train()
Run Code Online (Sandbox Code Playgroud)

在一次迭代中采取了多少时间步?它是否等于自定义环境中定义的剧集数?谢谢你。

python reinforcement-learning ray rllib

5
推荐指数
1
解决办法
707
查看次数

如何在使用“ray.put”创建对象后显式释放对象?

我正在尝试使用 摆脱固定在共享内存中的对象ray.put。这是代码示例:

import ray
<create obj>

for ...:
  obj_id = ray.put(obj)

  <do stuff with obj_id on ray Actors using ray.get(obj_id)>
  del obj_id
Run Code Online (Sandbox Code Playgroud)

完成后,我查看 ray 仪表板,发现所有内容obj_id仍然位于具有引用类型的 ray 共享内存中LOCAL_REFERENCE

官方文档没有详细说明是否有任何方法可以显式控制对象的生存期。据我了解,它基本上建议等到所有内存都用完,然后依靠光线来清理东西。

问题:如何从光线共享内存中显式清除对象?

注意:我正在使用 Jupyter,这个对象是否会因此而仍然存在?

python-3.x ray

5
推荐指数
1
解决办法
1489
查看次数

使用 Ray Tune 的每两次尝试都会出现内存不足的情况

我正在使用射线调整调整超参数。该模型是在tensorflow库中构建的,它占用了很大一部分可用的GPU内存。我注意到每秒一次的调用都会报告内存不足的错误。看起来内存正在被释放,您可以在 GPU 内存使用图表中看到,这是连续试验的调用之间的时刻,在这之间发生了 OOM 错误。我补充说,在较小的模型上我不会遇到此错误,并且图表看起来相同。

如何处理每次第二次尝试时出现的内存不足错误?

内存使用图

ray tensorflow ray-tune

5
推荐指数
1
解决办法
2624
查看次数

如何从 ray 中的对象存储中清除对象?

我正在尝试有前途的多处理包ray。我有一个似乎无法解决的问题。我的程序第一次运行良好,但第二次运行时出现此异常ray.put()

ObjectStoreFullError: Failed to put object ffffffffffffffffffffffffffffffffffffffff010000000c000000 in object store because it is full. Object size is 2151680255 bytes.
The local object store is full of objects that are still in scope and cannot be evicted. Tip: Use the `ray memory` command to list active objects in the cluster.
Run Code Online (Sandbox Code Playgroud)

我想做什么: 在我的实际代码(我打算编写)中,我需要按big_data_objects顺序处理许多代码。我想big_data_object一次在内存中保存一个,并对大数据对象进行多次繁重(独立)计算。我想并行执行这些计算。完成这些后,我必须将big_data_object对象存储中的这些替换为新的,并再次开始计算(并行)。

使用我的测试脚本,我通过再次启动脚本来模拟这一点,而无需ray.shutdown(). 如果我关闭ray使用ray.shutdown()对象存储被清除,但重新初始化需要很长时间,并且我无法big_data_object按我想要的顺序处理多个。

我研究了哪些信息来源: 我研究了这篇文档《Ray Design Patterns》,并研究了“反模式:大型/不可序列化对象的闭包捕获”部分以及正确的模式应该是什么样子。我还研究了导致以下测试脚本的入门指南。

重现问题的最小示例: 我创建了一个测试脚本来测试它。它是这个:

#%% …
Run Code Online (Sandbox Code Playgroud)

python windows python-3.x ray

5
推荐指数
1
解决办法
5851
查看次数

GCS 服务器的作用是什么?缩写词代表什么?

在 Ray Core 的文档中找到了这个缩写词,用于其主要 API 服务器:

[..] the head node needs to open several more ports:
    --port: Port of Ray (GCS server). The head node will start a GCS server listening on this port. Default: 6379.

Run Code Online (Sandbox Code Playgroud)

api client-server distributed-computing cluster-computing ray

5
推荐指数
1
解决办法
1591
查看次数

Ray 无法在 docker 容器 (linux) 中工作

我有一个使用 ray 的 python 代码。它在我的 Mac 上本地运行,但是一旦我尝试在本地 docker 容器中运行它,我会得到以下信息:

一个警告:

WARNING services.py:1922 -- WARNING: The object store is using /tmp instead of /dev/shm
because /dev/shm has only 67108864 bytes available. This will harm performance! You may
be able to free up space by deleting files in /dev/shm. If you are inside a Docker
container, you can increase /dev/shm size by passing '--shm-size=2.39gb' to 'docker run'
(or add it to the run_options list in a Ray cluster config). Make sure to …
Run Code Online (Sandbox Code Playgroud)

python ray docker dockerfile

5
推荐指数
0
解决办法
1154
查看次数