如何使RAY并行计算多个试验



我的代码是:

config = {
"num_workers" : 19,
#"num_gpus": 1,
"gamma" : tune.grid_search([0, 0.2, 0.4, 0.6, 0.8, 1]),       
"lr" : tune.grid_search([1, 0.1, 0.01, 0.001, 0.0001, 0.00001, 0.000001])}

和:

analysis = tune.run(config=config)

当我运行这个时,我有:

Number of trials: 23/42 (22 PENDING, 1 RUNNING)
+----------------------------+----------+------------------------+---------+-------+--------+------------------+--------+----------+----------------------+----------------------+--------------------+
| Trial name                 | status   | loc                    |   gamma |    lr |   iter |   total time (s) |     ts |   reward |   episode_reward_max |   episode_reward_min |   episode_len_mean |
|----------------------------+----------+------------------------+---------+-------+--------+------------------+--------+----------+----------------------+----------------------+--------------------|
| A2C_TradingEnv_b9572_00000 | RUNNING  | 192.168.252.130:361637 |     0   | 1     |     33 |          326.923 | 335920 |      nan |                  nan |                  nan |                nan |
| A2C_TradingEnv_b9572_00001 | PENDING  |                        |     0.2 | 1     |        |                  |        |          |                      |                      |                    |
| A2C_TradingEnv_b9572_00002 | PENDING  |                        |     0.4 | 1     |        |                  |        |          |                      |                      |                    |
| A2C_TradingEnv_b9572_00003 | PENDING  |                        |     0.6 | 1     |        |                  |        |          |                      |                      |                    |
| A2C_TradingEnv_b9572_00004 | PENDING  |                        |     0.8 | 1     |        |                  |        |          |                      |                      |                    |
| A2C_TradingEnv_b9572_00005 | PENDING  |                        |     1   | 1     |        |                  |        |          |                      |                      |                    |
| A2C_TradingEnv_b9572_00006 | PENDING  |                        |     0   | 0.1   |        |                  |        |          |                      |                      |                    |
| A2C_TradingEnv_b9572_00007 | PENDING  |                        |     0.2 | 0.1   |        |                  |        |          |                      |                      |                    |
| A2C_TradingEnv_b9572_00008 | PENDING  |                        |     0.4 | 0.1   |        |                  |        |          |                      |                      |                    |
| A2C_TradingEnv_b9572_00009 | PENDING  |                        |     0.6 | 0.1   |        |                  |        |          |                      |                      |                    |
| A2C_TradingEnv_b9572_00010 | PENDING  |                        |     0.8 | 0.1   |        |                  |        |          |                      |                      |                    |
| A2C_TradingEnv_b9572_00011 | PENDING  |                        |     1   | 0.1   |        |                  |        |          |                      |                      |                    |
| A2C_TradingEnv_b9572_00012 | PENDING  |                        |     0   | 0.01  |        |                  |        |          |                      |                      |                    |
| A2C_TradingEnv_b9572_00013 | PENDING  |                        |     0.2 | 0.01  |        |                  |        |          |                      |                      |                    |
| A2C_TradingEnv_b9572_00014 | PENDING  |                        |     0.4 | 0.01  |        |                  |        |          |                      |                      |                    |
| A2C_TradingEnv_b9572_00015 | PENDING  |                        |     0.6 | 0.01  |        |                  |        |          |                      |                      |                    |
| A2C_TradingEnv_b9572_00016 | PENDING  |                        |     0.8 | 0.01  |        |                  |        |          |                      |                      |                    |
| A2C_TradingEnv_b9572_00017 | PENDING  |                        |     1   | 0.01  |        |                  |        |          |                      |                      |                    |
| A2C_TradingEnv_b9572_00018 | PENDING  |                        |     0   | 0.001 |        |                  |        |          |                      |                      |                    |
| A2C_TradingEnv_b9572_00019 | PENDING  |                        |     0.2 | 0.001 |        |                  |        |          |                      |                      |                    |
+----------------------------+----------+------------------------+---------+-------+--------+------------------+--------+----------+----------------------+----------------------+--------------------+
... 3 more trials not shown (3 PENDING)

所以只有一个试验在进行。我想同时进行多项试验。当我想用在单个CPU上运行每个试用版时

analysis = tune.run(
config=config,
resources_per_trial = {"cpu": 1, "gpu": 0})

我有错误:

Exception has occurred: ValueError
Resources for <class 'ray.rllib.agents.trainer_template.A2C'> have been automatically set to <ray.tune.utils.placement_groups.PlacementGroupFactory object at 0x7fe119c3f7c0> by its `default_resource_request()` method. Please clear the `resources_per_trial` option.

我应该如何进行多个并行试运行,每个试运行有1个CPU?

我现在面临着同样的问题,但在我更改了{ ..., "num_workers": 1, ... }之后,试验仍然是一个。

config_train = {
"train_batch_size":   args.batch_size,
"horizon":            args.horizon,
"model":           { "fcnet_hiddens":  model_structure },
"num_workers":        args.num_workers,
"env_config":      { "generalize":     True,
"run_valid":      False,
"env":            args.env,
"mid_range_init": args.mid_range_init },
"framework":          args.framework,
"episodes_per_batch": args.episodes_per_batch,
"seed" :              args.seed,
"lr" :                args.lr,
"num_gpus":           4,
"num_workers":        1
}
trials = tune.run_experiments( { args.experiment: {
"run":                  args.algo,
"checkpoint_freq":      5,
"keep_checkpoints_num": 1,
"local_dir":            args.output_path,
"env":                  env,
"stop":              { "episode_reward_mean": -0.02 },
"checkpoint_at_end":    True,
"config":               config_train
}
}
#progress_reporter=reporter
)
Resources requested: 2.0/40 CPUs, 4.0/4 GPUs, 0.0/73.24 GiB heap, 0.0/35.38 GiB objects (0.0/1.0 accelerator_type:GTX)

我应该怎么做才能进行多次平行试验?

Number of trials: 1/1 (1 RUNNING)

最新更新