Storages¶
-
class
optuna.storages.
RDBStorage
(url, engine_kwargs=None, skip_compatibility_check=False)[源代码]¶ Storage class for RDB backend.
请注意,用户可以实例化该对象,但是该对象的属性不应被用户直接获取。
示例
用定制的
pool_size
和timeout
创建一个RDBStorage
实例import optuna def objective(trial): x = trial.suggest_uniform('x', -100, 100) return x ** 2 storage = optuna.storages.RDBStorage( url='sqlite:///:memory:', engine_kwargs={ 'pool_size': 20, 'connect_args': { 'timeout': 10 } } ) study = optuna.create_study(storage=storage) study.optimize(objective, n_trials=10)
- 参数
url -- 存储位置URL
engine_kwargs -- 一个包含了 keyword 参数的字典,它会被传入 sqlalchemy.engine.create_engine .
skip_compatibility_check -- 如果该选项为真,那么 schema 兼容性检测将被跳过。
注解
如果你用 MySQL 的话,在默认情况下,pool_pre_ping 将为
True
. 这样可以防止连接超时。 你可以通过engine_kwargs['pool_pre_ping']=False
来关掉这个设置。但我们推荐打开它,因为有时候目标函数执行时间会超过 MYSQL 的 wait_timeout.
-
class
optuna.storages.
RedisStorage
(url)[源代码]¶ Storage class for Redis backend.
请注意,用户可以实例化该对象,但是该对象的属性不应被用户直接获取。
示例
利用 redis 的 URL 这里创建了一个
RedisStorage
的实例。>>> import optuna >>> >>> def objective(trial): >>> ... >>> >>> storage = optuna.storages.RedisStorage( >>> url='redis://passwd@localhost:port/db', >>> ) >>> >>> study = optuna.create_study(storage=storage) >>> study.optimize(objective)
- 参数
url -- URL of the redis storage, password and db are optional. (ie: redis://localhost:6379)
注解
如果你准备用 redis 来做 optuna 的存储后端的话,请确认 redis 已经安装好并且正在运行中。请用
$ pip install -U redis
来安装 redis 的 Python 库。注解
v1.4.0 版本中新加入的试验性特性。在未来的版本中,该接口可能在没有预先告知的情况下改变。 具体参见 https://github.com/optuna/optuna/releases/tag/v1.4.0.