Skip to content

Commit 602f17b

Browse files
committed
add docstring
1 parent 4ff8ff7 commit 602f17b

File tree

1 file changed

+29
-2
lines changed

1 file changed

+29
-2
lines changed

src/lightning/pytorch/loggers/tensorboard.py

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@
1818

1919
import os
2020
from argparse import Namespace
21-
from typing import Any, Optional, Union
21+
from typing import TYPE_CHECKING, Any, Optional, Union
2222

23+
from lightning_utilities.core.imports import RequirementCache
2324
from torch import Tensor
2425
from typing_extensions import override
2526

2627
import lightning.pytorch as pl
27-
from lightning.fabric.loggers.tensorboard import _TENSORBOARD_AVAILABLE
2828
from lightning.fabric.loggers.tensorboard import TensorBoardLogger as FabricTensorBoardLogger
2929
from lightning.fabric.utilities.cloud_io import _is_dir
3030
from lightning.fabric.utilities.logger import _convert_params
@@ -35,6 +35,14 @@
3535
from lightning.pytorch.utilities.imports import _OMEGACONF_AVAILABLE
3636
from lightning.pytorch.utilities.rank_zero import rank_zero_only, rank_zero_warn
3737

38+
_TENSORBOARD_AVAILABLE = RequirementCache("tensorboard")
39+
if TYPE_CHECKING:
40+
# assumes at least one will be installed when type checking
41+
if _TENSORBOARD_AVAILABLE:
42+
from torch.utils.tensorboard import SummaryWriter
43+
else:
44+
from tensorboardX import SummaryWriter # type: ignore[no-redef]
45+
3846

3947
class TensorBoardLogger(Logger, FabricTensorBoardLogger):
4048
r"""Log to local or remote file system in `TensorBoard <https://www.tensorflow.org/tensorboard>`_ format.
@@ -260,3 +268,22 @@ def _get_next_version(self) -> int:
260268
return 0
261269

262270
return max(existing_versions) + 1
271+
272+
@property
273+
@override
274+
@rank_zero_only
275+
def experiment(self) -> "SummaryWriter":
276+
"""Returns the underlying TensorBoard summary writer object. To use TensorBoard features anywhere in your code,
277+
do the following.
278+
279+
Example::
280+
281+
class LitModel(LightningModule):
282+
def training_step(self, batch, batch_idx):
283+
# log a image
284+
self.logger.experiment.add_image('my_image', batch['image'], self.global_step)
285+
# log a histogram
286+
self.logger.experiment.add_histogram('my_histogram', batch['data'], self.global
287+
288+
"""
289+
return super().experiment

0 commit comments

Comments
 (0)