3

I'm using a custom environment to run a Ray's run_experiment function.

My observation_space is

spaces.Box(low=-np.finfo(np.float32).max,
           high=np.finfo(np.float32).max,
           shape=(3, 76),
           dtype=np.float16)

The input is an array with three arrays inside, each one containing 76 items. Something like this:

[[0. 0. 0. ... 0.],
 [0. 0. 0. ... 0.],
 [0. 0. 0. ... 0.]]

When I try to run my train script without specifying the conv_filters I receive this error:

ValueError: No default configuration for obs shape [3, 76], you must specify `conv_filters` manually as a model option. Default configurations are only available for inputs of shape [42, 42, K] and [84, 84, K]. You may alternatively want to use a custom model or preprocessor.

So I'm configuring this in my train script:

"model": {
    "dim": 3,
    "conv_filters": [[3, [1, 1], 1]]
}

But when doing so I receive this one:

ValueError: Convolution expects input with rank 4, got 3

btw my input is not an image, it is actually 3 rows of a time series, each row has 76 items.

I think I'm wrong in this line "conv_filters": [[3, [1, 1], 1]] but idk how to fix it, so I need help...

Is there some way to not do convolution? because I don't wanna lose information here, it is a time-series, every little info worth.

I made a test to see if the custom env works without ray and it does.

I appreciate any help

1 Answers1

3

You can force RLlib to use a fully connected network by using a custom model option. Here's an example in code: https://github.com/ray-project/ray/blob/master/rllib/examples/custom_env.py

MLu
  • 1,218
  • 2
  • 15
  • 28
Eric
  • 101
  • 1
  • 1
    The link is dead. Here's the new [link](https://github.com/ray-project/ray/blob/master/rllib/examples/custom_env.py) – Huan Sep 03 '19 at 13:31