Shortcuts

torchtraining.callbacks.neptune module

Integrate torchtraining with neptune.ai experiment management tool.

Note

IMPORTANT: This module is experimental and may not be working correctly. Use at your own risk and report any issues you find.

Note

IMPORTANT: This module needs neptune-client Python package to be available. You can install it with pip install -U torchtraining[neptune]

Usage is similar to torchtraining.callbacks.Tensorboard, except creating project instead of torch.utils.tensorboard.SummaryWriter.

Example:

import torchtraining as tt
import torchtraining.callbacks.neptune as neptune


class TrainStep(tt.steps.Train):
    def forward(self, module, sample):
        # Dummy step
        images, labels = sample
        return images


project = neptune.project()
experiment = neptune.experiment(project)

step = TrainStep(criterion, device)

# Experiment is optional
# You have to split `tensor` as only single image can be logged
# Also you need to cast to `numpy`
step ** tt.OnSplittedTensor(tt.cast.Numpy() ** neptune.Image(experiment))
class torchtraining.callbacks.neptune.Artifact(destination=None, experiment=None)[source]

Bases: torchtraining.callbacks.neptune._NeptuneOperation

Save an artifact (file) in experiment storage.

Parameters
  • destination (str, optional) – Destination path to save artifact. If None artifact name will be used. Default: None

  • experiment (neptune.experiments.Experiment, optional) – Instance of experiment to use. If None, global experiment will be used. Default: None

Returns

Data without any modification

Return type

data

forward(data)[source]
Parameters

data (str | IO.Object) – A path to the file in local filesystem or IO object. It can be open file descriptor or in-memory buffer like io.StringIO or io.BytesIO.

class torchtraining.callbacks.neptune.Image(log_name: str, image_name: str = None, description: str = None, timestamp=None, experiment=None)[source]

Bases: torchtraining.callbacks.neptune._NeptuneOperation

Log image data in Neptune.

See original documentation.

Example:

import torchtraining as tt
import torchtraining.callbacks.neptune as neptune


class TrainStep(tt.steps.Train):
    def forward(self, module, sample):
        # Dummy step
        images, labels = sample
        # Images is of shape [batch, 1, 28, 28], say MNIST
        return images


project = neptune.project()
experiment = neptune.experiment(project)

step = TrainStep(criterion, device)

# Experiment is optional
# You have to split `tensor` as only single image can be logged
# Also you need to cast to `numpy`
step ** tt.OnSplittedTensor(tt.cast.Numpy() ** neptune.Image(experiment))
Parameters
  • log_name (str) – Name of log (group of images), e.g. “generated images”.

  • image_name (str, optional) – Name of this specific image received in data. If None consecutive numbers will be used. Default: None

  • description (str, optional) – Textual description of image. If None no description. Default: None

  • timestamp (time, optional) – Timestamp to be associated with log entry. Must be Unix time. If None is passed, time.time() (Python 3.6 example) is invoked to obtain timestamp. Default None

  • experiment (neptune.experiments.Experiment, optional) –

    Instance of experiment to use. If None, global experiment will be used. Default: None

    Returns

  • -------

  • data – Data without any modification

forward(data)[source]
Parameters

data (PIL image | matplotlib.figure.Figure | str | np.array) –

Can be one of: * PIL image

  • matplotlib.figure.Figure Matplotlib 3.1.1 docs

  • str - path to image file

  • 2-dimensional numpy.array - interpreted as grayscale image

  • 3-dimensional numpy.array - behavior depends on last dimension

    • if last dimension is 1 - interpreted as grayscale image

    • if last dimension is 3 - interpreted as RGB image

    • if last dimension is 4 - interpreted as RGBA image

You may need to transpose and transform PyTorch tensors to fit the above format.

class torchtraining.callbacks.neptune.Reset(log_name: str, experiment=None)[source]

Bases: torchtraining.callbacks.neptune._NeptuneOperation

Resets the log.

Removes all data from the log and enables it to be reused from scratch. See original documentation.

Example:

import torchtraining as tt
import torchtraining.callbacks.neptune as neptune


class TrainStep(tt.steps.Train):
    def forward(self, module, sample):
        ...
        # You returning text for some reason...
        return loss, text


project = neptune.project()
neptune.experiment(project)

step = TrainStep(criterion, device)

# Experiment is optional
# You have to split `tensor` as only single image can be logged
# Also you need to cast to `numpy`
step ** tt.Select(text=1) ** neptune.Text())
Parameters

log_name (str) – Name of log (group of images), e.g. “generated images”. If log does not exist, error ChannelDoesNotExist will be raised.

Returns

Anything which was passed into it.

Return type

data

forward(data)[source]
Parameters

data (Any) – Anything as data will be forwarded

class torchtraining.callbacks.neptune.Scalar(log_name: str, timestamp=None, experiment=None)[source]

Bases: torchtraining.callbacks.neptune._NeptuneOperation

Log scalar data in Neptune.

Calls experiment.log_metric under the hood. See original documentation.

Example:

import torchtraining as tt
import torchtraining.callbacks.neptune as neptune


class TrainStep(tt.steps.Train):
    def forward(self, module, sample):
        # Dummy step
        # Calculate loss
        ...
        return loss


project = neptune.project()
experiment = neptune.experiment(project)

step = TrainStep(criterion, device)

# Experiment is optional
# You have to split `tensor` as only single image can be logged
# Also you need to cast to `numpy`
step ** tt.cast.Item() ** neptune.Image(experiment))
Parameters
  • log_name (str) – Name of log (group of images), e.g. “generated images”.

  • timestamp (time, optional) – Timestamp to be associated with log entry. Must be Unix time. If None is passed, time.time() (Python 3.6 example) is invoked to obtain timestamp. Default None

  • experiment (neptune.experiments.Experiment, optional) – Instance of experiment to use. If None, global experiment will be used. Default: None

Returns

Data without any modification

Return type

data

forward(data)[source]
Parameters

data (double) – Single element Python double type

class torchtraining.callbacks.neptune.Text(log_name: str, timestamp=None, experiment=None)[source]

Bases: torchtraining.callbacks.neptune._NeptuneOperation

Log text data in Neptune.

See original documentation.

Example:

import torchtraining as tt
import torchtraining.callbacks.neptune as neptune


class TrainStep(tt.steps.Train):
    def forward(self, module, sample):
        ...
        # You returning text for some reason...
        return loss, text


project = neptune.project()
neptune.experiment(project)

step = TrainStep(criterion, device)

# Experiment is optional
# You have to split `tensor` as only single image can be logged
# Also you need to cast to `numpy`
step ** tt.Select(text=1) ** neptune.Text())
Parameters
  • log_name (str) – Name of log (group of images), e.g. “generated images”.

  • timestamp (time, optional) – Timestamp to be associated with log entry. Must be Unix time. If None is passed, time.time() (Python 3.6 example) is invoked to obtain timestamp. Default None

  • experiment (neptune.experiments.Experiment, optional) – Instance of experiment to use. If None, global experiment will be used. Default: None

Returns

Data without any modification

Return type

data

forward(data)[source]
Parameters

data (str) – Text to be logged

torchtraining.callbacks.neptune.experiment(self, project=None, name=None, description=None, params=None, properties=None, tags=None, upload_source_files=None, abort_callback=None, logger=None, upload_stdout=True, upload_stderr=True, send_hardware_metrics=True, run_monitoring_thread=True, handle_uncaught_exceptions=True, git_info=None, hostname=None, notebook_id=None, notebook_path=None)[source]

Create and start Neptune experiment.

Create experiment, set its status to running and append it to the top of the experiments view. All parameters are optional.

Extensive documentation (explained optional parameters) is located here

neptune.experiments.Experiment object that is used to manage experiment and log data to it. See original documentation)

ExperimentValidationError: When provided arguments are invalid. ExperimentLimitReached: When experiment limit in the project has been reached.

torchtraining.callbacks.neptune.project(project_qualified_name=None, api_token=None, proxies=None, backend=None)[source]

Initialize Neptune client library to work with specific project.

Authorize user, sets value of global variable project to Project object that can be used to create or list experiments, notebooks, etc.

Extensive documentation (explained optional parameters) is located here .

Returns

Object that is used to create or list experiments, notebooks, etc.

Return type

neptune.Project