标签: ray-tune

尝试超参数搜索时,Raytune 抛出错误:“模块‘pickle’没有属性‘PickleBuffer’”

我或多或少地遵循这个示例,使用我自己的数据集将光线调整超参数库与 Huggingface 变压器库集成。

这是我的脚本:

import ray
from ray import tune
from ray.tune import CLIReporter
from ray.tune.examples.pbt_transformers.utils import download_data, \
    build_compute_metrics_fn
from ray.tune.schedulers import PopulationBasedTraining
from transformers import glue_tasks_num_labels, AutoConfig, \
    AutoModelForSequenceClassification, AutoTokenizer, Trainer, TrainingArguments

def get_model():
    # tokenizer = AutoTokenizer.from_pretrained(model_name, additional_special_tokens = ['[CHARACTER]'])
    model = ElectraForSequenceClassification.from_pretrained('google/electra-small-discriminator', num_labels=2)
    model.resize_token_embeddings(len(tokenizer))
    return model

from sklearn.metrics import accuracy_score, precision_recall_fscore_support
def compute_metrics(pred):
    labels = pred.label_ids
    preds = pred.predictions.argmax(-1)
    precision, recall, f1, _ = precision_recall_fscore_support(labels, preds, average='weighted')
    acc = accuracy_score(labels, preds)
    return {
        'accuracy': …
Run Code Online (Sandbox Code Playgroud)

python pickle huggingface-transformers ray-tune

9
推荐指数
1
解决办法
1952
查看次数

更改 Ray RLlib Training 的 Logdir 而不是 ~/ray_results

我正在使用 Ray & RLlib 在 Ubuntu 系统上训练 RL 代理。Tensorboard 用于通过将其指向~/ray_results所有运行的所有日志文件的存储位置来监控训练进度。未使用 Ray Tune。

例如,在开始新的 Ray/RLlib 训练运行时,将在以下位置创建一个新目录

~/ray_results/DQN_ray_custom_env_2020-06-07_05-26-32djwxfdu1
Run Code Online (Sandbox Code Playgroud)

为了可视化训练进度,我们需要使用以下命令启动 Tensorboard

tensorboard --logdir=~/ray_results
Run Code Online (Sandbox Code Playgroud)

问题:是否可以配置 Ray/RLlib 以将日志文件的输出目录从~/ray_results其他位置更改?

另外,不是登录到一个名为类似的目录DQN_ray_custom_env_2020-06-07_05-26-32djwxfdu1,这个目录名称可以由我们自己设置吗?


尝试失败:尝试设置

os.environ['TUNE_RESULT_DIR'] = '~/another_dir`
Run Code Online (Sandbox Code Playgroud)

在运行之前ray.init(),但结果日志文件仍在写入~/ray_results

python reinforcement-learning ray rllib ray-tune

7
推荐指数
2
解决办法
2028
查看次数

检查点射线调谐试验的最佳模型

所以我刚刚进行了一个tune实验并得到了以下输出:

+--------------------+------------+-------+-------------+----------------+--------+------------+
| Trial name         | status     | loc   |          lr |   weight_decay |   loss |   accuracy |
|--------------------+------------+-------+-------------+----------------+--------+------------|
| trainable_13720f86 | TERMINATED |       | 0.00116961  |     0.00371219 | 0.673  |     0.7977 |
| trainable_13792744 | TERMINATED |       | 0.109529    |     0.0862344  | 0.373  |     0.8427 |
| trainable_137ecd98 | TERMINATED |       | 4.35062e-06 |     0.0261442  | 0.6993 |     0.7837 |
| trainable_1383f9d0 | TERMINATED |       | 1.37858e-05 |     0.0974182  | 0.4538 |     0.8428 |
| trainable_13892f72 | …
Run Code Online (Sandbox Code Playgroud)

ray ray-tune

7
推荐指数
1
解决办法
3218
查看次数

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

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

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

内存使用图

ray tensorflow ray-tune

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