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.