|
20 | 20 | from argparse import Namespace
|
21 | 21 | from collections import defaultdict
|
22 | 22 | from functools import wraps
|
23 |
| -from typing import Any, Callable, Dict, Generator, Iterable, List, Mapping, Optional, Sequence, Union |
| 23 | +from typing import Any, Callable, Dict, List, Mapping, Optional, Sequence, Union |
24 | 24 | from weakref import ReferenceType
|
25 | 25 |
|
26 | 26 | import numpy as np
|
@@ -212,97 +212,6 @@ def version(self) -> Optional[Union[int, str]]:
|
212 | 212 | """Return the experiment version."""
|
213 | 213 |
|
214 | 214 |
|
215 |
| -class LoggerCollection(Logger): |
216 |
| - """The :class:`LoggerCollection` class is used to iterate all logging actions over the given `logger_iterable`. |
217 |
| -
|
218 |
| - .. deprecated:: v1.6 |
219 |
| - `LoggerCollection` is deprecated in v1.6 and will be removed in v1.8. |
220 |
| - Directly pass a list of loggers to the Trainer and access the list via the `trainer.loggers` attribute. |
221 |
| -
|
222 |
| - Args: |
223 |
| - logger_iterable: An iterable collection of loggers |
224 |
| - """ |
225 |
| - |
226 |
| - def __init__(self, logger_iterable: Iterable[Logger]): |
227 |
| - super().__init__() |
228 |
| - self._logger_iterable = logger_iterable |
229 |
| - rank_zero_deprecation( |
230 |
| - "`LoggerCollection` is deprecated in v1.6 and will be removed in v1.8. Directly pass a list of loggers" |
231 |
| - " to the Trainer and access the list via the `trainer.loggers` attribute." |
232 |
| - ) |
233 |
| - |
234 |
| - def __getitem__(self, index: int) -> Logger: |
235 |
| - return list(self._logger_iterable)[index] |
236 |
| - |
237 |
| - def after_save_checkpoint(self, checkpoint_callback: "ReferenceType[Checkpoint]") -> None: |
238 |
| - for logger in self._logger_iterable: |
239 |
| - logger.after_save_checkpoint(checkpoint_callback) |
240 |
| - |
241 |
| - def update_agg_funcs( |
242 |
| - self, |
243 |
| - agg_key_funcs: Optional[Mapping[str, Callable[[Sequence[float]], float]]] = None, |
244 |
| - agg_default_func: Callable[[Sequence[float]], float] = np.mean, |
245 |
| - ) -> None: |
246 |
| - for logger in self._logger_iterable: |
247 |
| - logger.update_agg_funcs(agg_key_funcs, agg_default_func) |
248 |
| - |
249 |
| - @property |
250 |
| - def experiment(self) -> List[Any]: |
251 |
| - """Returns a list of experiment objects for all the loggers in the logger collection.""" |
252 |
| - return [logger.experiment for logger in self._logger_iterable] |
253 |
| - |
254 |
| - def agg_and_log_metrics(self, metrics: Dict[str, float], step: Optional[int] = None) -> None: |
255 |
| - for logger in self._logger_iterable: |
256 |
| - logger.agg_and_log_metrics(metrics=metrics, step=step) |
257 |
| - |
258 |
| - def log_metrics(self, metrics: Dict[str, float], step: Optional[int] = None) -> None: |
259 |
| - for logger in self._logger_iterable: |
260 |
| - logger.log_metrics(metrics=metrics, step=step) |
261 |
| - |
262 |
| - def log_hyperparams(self, params: Union[Dict[str, Any], Namespace], *args: Any, **kwargs: Any) -> None: |
263 |
| - for logger in self._logger_iterable: |
264 |
| - logger.log_hyperparams(params, *args, **kwargs) |
265 |
| - |
266 |
| - def log_graph(self, model: "pl.LightningModule", input_array: Optional[Tensor] = None) -> None: |
267 |
| - for logger in self._logger_iterable: |
268 |
| - logger.log_graph(model, input_array) |
269 |
| - |
270 |
| - def log_text(self, *args: Any, **kwargs: Any) -> None: |
271 |
| - for logger in self._logger_iterable: |
272 |
| - logger.log_text(*args, **kwargs) |
273 |
| - |
274 |
| - def log_image(self, *args: Any, **kwargs: Any) -> None: |
275 |
| - for logger in self._logger_iterable: |
276 |
| - logger.log_image(*args, **kwargs) |
277 |
| - |
278 |
| - def save(self) -> None: |
279 |
| - for logger in self._logger_iterable: |
280 |
| - logger.save() |
281 |
| - |
282 |
| - def finalize(self, status: str) -> None: |
283 |
| - for logger in self._logger_iterable: |
284 |
| - logger.finalize(status) |
285 |
| - |
286 |
| - @property |
287 |
| - def save_dir(self) -> Optional[str]: |
288 |
| - """Returns ``None`` as checkpoints should be saved to default / chosen location when using multiple |
289 |
| - loggers.""" |
290 |
| - # Checkpoints should be saved to default / chosen location when using multiple loggers |
291 |
| - return None |
292 |
| - |
293 |
| - @property |
294 |
| - def name(self) -> str: |
295 |
| - """Returns the unique experiment names for all the loggers in the logger collection joined by an |
296 |
| - underscore.""" |
297 |
| - return "_".join(dict.fromkeys(str(logger.name) for logger in self._logger_iterable)) |
298 |
| - |
299 |
| - @property |
300 |
| - def version(self) -> str: |
301 |
| - """Returns the unique experiment versions for all the loggers in the logger collection joined by an |
302 |
| - underscore.""" |
303 |
| - return "_".join(dict.fromkeys(str(logger.version) for logger in self._logger_iterable)) |
304 |
| - |
305 |
| - |
306 | 215 | class DummyExperiment:
|
307 | 216 | """Dummy experiment."""
|
308 | 217 |
|
@@ -355,10 +264,6 @@ def __getitem__(self, idx: int) -> "DummyLogger":
|
355 | 264 | # enables self.logger[0].experiment.add_image(...)
|
356 | 265 | return self
|
357 | 266 |
|
358 |
| - def __iter__(self) -> Generator[None, None, None]: |
359 |
| - # if DummyLogger is substituting a logger collection, pretend it is empty |
360 |
| - yield from () |
361 |
| - |
362 | 267 | def __getattr__(self, name: str) -> Callable:
|
363 | 268 | """Allows the DummyLogger to be called with arbitrary methods, to avoid AttributeErrors."""
|
364 | 269 |
|
|
0 commit comments