Source code for tuners.loggers.neptune

import as neptune
import os
from .base import BaseTunerObserver

[docs]def get_proxies(): proxies = {} http_proxy = os.getenv("http_proxy") or os.getenv("HTTP_PROXY") if http_proxy: proxies["http"] = http_proxy https_proxy = os.getenv("https_proxy") or os.getenv("HTTPS_PROXY") if https_proxy: proxies["https"] = https_proxy return proxies
[docs]class NeptuneLogger(BaseTunerObserver): """ Reports DPGTuner statistics to Neptune """ def __init__(self, tuner, project, name=None, api_token=None, **kwargs): """Constructor of a NeptuneLogger object Parameters ---------- tuner: DPGTuner The tuner object whose statistics we want to report project: string The Neptune project to which we want to report the statistics api_token: string The Neptune API token """ super(NeptuneLogger, self).__init__(tuner) if not 'proxies' in kwargs: kwargs['proxies'] = get_proxies() = neptune.init(project=project, name=name, api_token=api_token, **kwargs) def __setitem__(self, k, v): """ Report arbitrary parameter/value combinations """[k] = v def __exit__(self, *exc):
[docs] def on_parameters_updated(self, params):["parameters"] = params
[docs] def on_metric_updated(self, name, value):[name].log(value)
[docs] def on_eval_samples_updated(self, context, samples, proposal_log_scores, model_log_scores, target_log_scores):["samples"].log([s.text for s in samples[:10]])
[docs] def on_step_idx_updated(self, s):["steps"].log(s)
[docs] def on_ministep_idx_updated(self, s):["ministeps"].log(s)