API reference: PyTorch Ignite integration#
The NeptuneLogger
class provided by the PyTorch Ignite library captures metadata that is generated when training and validating models with Ignite.
NeptuneLogger
#
Creates a Neptune handler to log metrics, model and optimizer parameters, and gradients during the training and validation. It can also log model checkpoints to Neptune.
Parameters
Name | Type | Default | Description |
---|---|---|---|
api_token |
str , optional |
None |
User's Neptune API token. If None , the value of the NEPTUNE_API_TOKEN environment variable is used.To keep your token secure, avoid placing it in the source code. Instead, save it as an environment variable. |
project |
str , optional |
None |
Name of a project in the form workspace-name/project-name . If None , the value of the NEPTUNE_PROJECT environment variable is used. |
**neptune_run_kwargs |
str , optional |
- | Additional keyword arguments to be passed directly to the init_run() function, such as description and tags . |
Examples
If you have your Neptune credentials saved as environment variables, the following starts the Neptune logger with default settings:
from ignite.contrib.handlers.neptune_logger import *
neptune_logger = NeptuneLogger()
neptune_logger.attach_output_handler(
trainer,
...,
)
trainer.run()
You can also pass more options to the run created by the logger:
neptune_logger = NeptuneLogger(
project="workspace-name/project-name", # (1)!
name="My first Ignite run",
description="Quick training run with Ignite",
tags=["training", "low LR"],
)
-
The full project name. For example,
"ml-team/classification"
.- You can copy the name from the project details ( → Details & privacy)
- You can also find a pre-filled
project
string in Experiments → Create a new run.
To log metadata to the Neptune run, access the neptune_logger.experiment
attribute. You can then use any logging methods from the Neptune client library to track your metadata, such as append()
, assign()
(=
), and upload()
.
metadata = ...
neptune_logger.experiment["your/metadata/structure"] = metadata
...
neptune_logger.close()
NeptuneSaver
#
Handler that saves an input checkpoint to the Neptune server.
Windows note
NeptuneSaver
is not supported on Windows.
Parameters
Name | Type | Default | Description |
---|---|---|---|
neptune_logger |
NeptuneLogger |
- | An instance of the NeptuneLogger class. |
Example
Set up the logger:
from ignite.contrib.handlers.neptune_logger import *
neptune_logger = NeptuneLogger()
...
evaluator = create_supervised_evaluator(model, metrics=metrics, ...)
...
def score_function(engine):
return engine.state.metrics["accuracy"]
to_save = {"model": model}
Pass the Neptune logger to the saver:
from ignite.handlers import Checkpoint
handler = Checkpoint(
to_save,
NeptuneSaver(neptune_logger), n_saved=2,
filename_prefix="best", score_function=score_function,
score_name="validation_accuracy",
global_step_transform=global_step_from_engine(trainer),
)
evaluator.add_event_handler(Events.COMPLETED, handler)
Close the logger when done:
You can access example checkpoints and download them from this example run.
See also
NeptuneLogger
reference in Ignite API docs