Coder Social home page Coder Social logo

lightning-universe / training-studio_app Goto Github PK

View Code? Open in Web Editor NEW
17.0 17.0 1.0 12.84 MB

Lightning HPO & Training Studio App

Home Page: https://lightning-ai.github.io/lightning-hpo/

License: Apache License 2.0

Python 74.35% HTML 1.16% JavaScript 0.23% TypeScript 23.22% CSS 0.14% Gherkin 0.90%

training-studio_app's People

Contributors

awaelchli avatar borda avatar dependabot[bot] avatar ethanwharris avatar felonious-spellfire avatar justingoheen avatar krishnakalyan3 avatar lantiga avatar manskx avatar nohalon avatar pre-commit-ci[bot] avatar robert-s-lee avatar rusenask avatar tchaton avatar thomasyoungson avatar yurijmikhalevich avatar zippeurfou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

alexis-lechervy

training-studio_app's Issues

Database is not loading example_4

๐Ÿ› Bug

Following example_4 the trainer app

The database tab is not loading

To Reproduce

Steps to reproduce the behavior:
1- follow readme to install package and requirements
2- run lightning run app examples/4_app_sweeper.py
the page shows a spinner

Build CI and package in the HPO repo

๐Ÿ› Bug

There's no CI setup in the repo and the package building

To Reproduce

Steps to reproduce the behavior:

  1. Go to '...'
  2. Run '....'
  3. Scroll down to '....'
  4. See error

Code sample

Expected behavior

Environment

  • PyTorch Version (e.g., 1.0):
  • OS (e.g., Linux):
  • How you installed PyTorch (conda, pip, source):
  • Build command you used (if compiling from source):
  • Python version:
  • CUDA/cuDNN version:
  • GPU models and configuration:
  • Any other relevant information:

Additional context

Improve the Optimizer API

๐Ÿš€ Feature

Right now, the Optimizer API requires to be passed a BaseObjective Work. However, this isn't 100 % required in most case.

Instead, we could have this alternative API.

Optimizer(
    framework="pytorch_lightning|keras|tensorflow|sklearn"
    distributions={"lr": Uniform(0, 1)}
)

Motivation

Pitch

Alternatives

Additional context

Visualise metrics once Sweep / Trials are finished

๐Ÿš€ Feature

Motivation

TODOS:

  • [] Create a TensorboardController
  • [] Create a RunTensoboardCommand, RunTensoboardConfig in lightning_hpo/commands/tensorboard/run.py
  • [] Implement a run_tensorboard_handler in the TensorboardController

API:

lightning run tensorboard --sweep_id=..
Started a tensorboard server with id: {,,,}
lightning stop tensorboard {TENSORBOARD_ID}

Pitch

Alternatives

Additional context

View Sweeps / Trials

๐Ÿš€ Feature

Motivation

TODOS:

  • [] Create a ViewSweepCommand and ViewSweepConfig in lightning_hpo/commands/sweep/view.py and add a view_sweep_handler in the SweeperController.
    • [] In the view_sweep_handler, returns all the SweepConfigs
    • [] In the ViewSweepCommand, use rich table to pretty print the Sweeps, Trials

Pitch

Alternatives

Additional context

Mount s3 drive to notebook

๐Ÿš€ Feature

Motivation

TODOS:

  • Add Drives Metadata to NotebookConfig
  • Add Drives parsing to the RunNotebookCommand
  • Dynamically create the Drives in the NotebookController and pass them to the Notebook. Propagate the drives down to the works.

API:

lightning run notebook ... --drives {S3_URL}:{MOUNT_DIR} (--env {AWS_CREDENTIALS})

Pitch

Alternatives

Additional context

Run notebook from the CLI

๐Ÿš€ Feature

Launch a notebook from the CLI:

  • Implement the command to add entry to DB
  • Implement the controller to launch a notebook work

[Epic] Support Sweeps

๐Ÿš€ Feature

Motivation

TODOS:

  • [] (EA) Stop Sweeps / Trials (#49)
  • [] (EA) Delete Sweeps / Trials (#48)
  • [] Mount s3 Drive to Sweep / Trials (#51)
  • [] View Sweeps / Trials (#50)

Pitch

Alternatives

Additional context

List Notebooks

๐Ÿš€ Feature

Motivation

As a user, I want to list of the available notebooks with who created them.

TODOS:

  • Create a command or simple handlers to return the list of notebooks

Pseudo-Code:

class NotebookController(...):

    def list_notebooks_handler(self) -> List[str]:
        return list(self.notebooks.keys())

    def configure_commands(self):
        return [{"list notebooks": self.list_notebooks_handler}]

Pitch

Alternatives

Additional context

int HPO param is passed as float causing jsonparsearg to reject --trainer.max_epochs=3.0

๐Ÿ› Bug

int HPO param is passed as float causing jsonparsearg to reject --trainer.max_epochs=3.0

train.py: error: Configuration check failed :: Parser key "trainer.max_epochs": Value "3.0" does not validate against any of the types in typing.Union[int, NoneType]:
  - Expected a <class 'int'> but got "3.0"
  - Expected a <class 'NoneType'> but got "3.0"
train.py: error: Configuration check failed :: Parser key "trainer.max_epochs": Value "9.0" does not validate against any of the types in typing.Union[int, NoneType]:
  - Expected a <class 'int'> but got "9.0"
  - Expected a <class 'NoneType'> but got "9.0"

To Reproduce

lightning run app examples/2_app_pytorch_lightning.py

Code sample

Expected behavior

Environment

Additional context

Add support for Wandb Sweep

๐Ÿš€ Feature

Wandb recently released a new way to generate sweep graphs using their API Client.

api = wandb.Api()

wandb.require('report-editing:v0')
report = api.create_report(project='pytorch-sweeps-demo')
report.title = 'A fabulous title'
report.description = 'A descriptive description'

panel_grid = wb.PanelGrid()
run_set = wb.RunSet()
run_set.entity = '_scott'
run_set.project = 'pytorch-sweeps-demo'
panel_grid.runsets = [run_set]
coords = wb.ParallelCoordinatesPlot(columns=[wb.reports.PCColumn('batch_size'), wb.reports.PCColumn('epoch'), wb.reports.PCColumn('loss')])
panel_grid.panels = [coords]
run_set.set_filters_with_python_expr('User == "_scott"')
report.blocks = [panel_grid]
report.save()
api = wandb.Api()
project = 'pytorch-sweeps-demo'
wandb.require('report-editing:v0')
run_set = wb.RunSet(project=project)
coords = wb.ParallelCoordinatesPlot(columns=[wb.reports.PCColumn('batch_size'), wb.reports.PCColumn('epoch'), wb.reports.PCColumn('loss')])
panel_grid = wb.PanelGrid(runsets=[run_set], panels=[coords])
report = api.create_report(project='pytorch-sweeps-demo', blocks=[panel_grid])
report.save()
``

### Motivation

<!-- Please outline the motivation for the proposal. Is your feature request related to a problem? e.g., I'm always frustrated when [...]. If this is related to another GitHub issue, please link here too -->

### Pitch

<!-- A clear and concise description of what you want to happen. -->

### Alternatives

<!-- A clear and concise description of any alternative solutions or features you've considered, if any. -->

### Additional context

<!-- Add any other context or screenshots about the feature request here. -->

Rename `artefacts` to `artifacts`

๐Ÿ› Bug

To Reproduce

Steps to reproduce the behavior:

  1. Go to '...'
  2. Run '....'
  3. Scroll down to '....'
  4. See error

Code sample

Expected behavior

Environment

  • PyTorch Version (e.g., 1.0):
  • OS (e.g., Linux):
  • How you installed PyTorch (conda, pip, source):
  • Build command you used (if compiling from source):
  • Python version:
  • CUDA/cuDNN version:
  • GPU models and configuration:
  • Any other relevant information:

Additional context

Download artefacts from the CLI (Cloud)

๐Ÿš€ Feature

Command to download an artefact after having listed them

TODOS:

  • [] Add a DownloadArtefactCommand in lightning_hpo/commands/artefacts/download.py. Simply use LightningClient and list the artifacts. Use this reference.

Stop Sweeps / Trials

๐Ÿš€ Feature

Motivation

TODOS:

  • [] Create a StopSweepCommand and StopSweepConfig in lightning_hpo/commands/sweep/stop.py and add a stop_sweep_handler in the SweeperController. If the Sweep exists, we need to:
    • [] Stop it from the App database
    • [] Stop the works or the specific trials.

Pitch

Alternatives

Additional context

Mount s3 Drive to Sweep / Trials

๐Ÿš€ Feature

Motivation

TODOS:

  • [] Add Drives Metadata to SweepConfig
  • [] Add Drives parsing to the RunSweepCommand
  • [] Dynamically create the Drives in the SweepController and pass them to the Sweep. Propagate the drives down to the works.

API:

lightning run sweep ... --drives {S3_URL}:{MOUNT_DIR} (--env {AWS_CREDENTIALS})

Pitch

Alternatives

Additional context

lightning show artefacts filtering doesn't seem to work as expected.

๐Ÿ› Bug

To Reproduce

TODO: Add support for multi include or exclude.

Code sample

Expected behavior

Environment

  • PyTorch Version (e.g., 1.0):
  • OS (e.g., Linux):
  • How you installed PyTorch (conda, pip, source):
  • Build command you used (if compiling from source):
  • Python version:
  • CUDA/cuDNN version:
  • GPU models and configuration:
  • Any other relevant information:

Additional context

Show Notebook Statuses

๐Ÿš€ Feature

Motivation

TODOS:

  • Add a show notebooks command to provide a structured table of the notebook statuses.

Fixes #69

Pitch

Alternatives

Additional context

Visualize metrics during the Sweep training for PL (Tensorboard)

๐Ÿš€ Feature

Motivation

TODOS:

  • [] Add logger to the SweepConfig
  • [] Create a Tensorboard Component which takes a Sweep Drive which is passed to all the trials.
class Tensorboard(LightningWork):

    def run(self, drive):
        Popen(f"tensorboard --log_dir={drive.url}", env=os.environ)
  • [] Push the metrics to Drive from all the trials (How do we automate this ?)

Pitch

Alternatives

Additional context

Cannot run example_1 on cloud

๐Ÿ› Bug

error:

[flow] 2022-09-01T08:53:04.580Z ERROR: Found an exception when loading your application from examples/1_app_agnostic.py. Please, resolve it to run your app.
[flow] 2022-09-01T08:53:04.580Z Traceback (most recent call last):
[flow] 2022-09-01T08:53:04.580Z   File "examples/1_app_agnostic.py", line 5, in <module>
[flow] 2022-09-01T08:53:04.580Z     from lightning_hpo import Sweep
[flow] 2022-09-01T08:53:04.580Z   File "/content/venv/lib/python3.8/site-packages/lightning_hpo/__init__.py", line 22, in <module>
[flow] 2022-09-01T08:53:04.580Z     from lightning_hpo.components.sweep import Sweep  # noqa: E402
[flow] 2022-09-01T08:53:04.580Z   File "/content/venv/lib/python3.8/site-packages/lightning_hpo/components/sweep.py", line 5, in <module>
[flow] 2022-09-01T08:53:04.580Z     from lightning.app.components.python.tracer import Code
[flow] 2022-09-01T08:53:04.580Z ImportError: cannot import name 'Code' from 'lightning.app.components.python.tracer' (/content/venv/lib/python3.8/site-packages/lightning/app/components/python/tracer.py)
[flow] 2022-09-01T08:53:04.583Z ERROR: Found an exception when loading your application from examples/1_app_agnostic.py. Please, resolve it to run your app.
[flow] 2022-09-01T08:53:04.583Z Traceback (most recent call last):
[flow] 2022-09-01T08:53:04.583Z   File "examples/1_app_agnostic.py", line 5, in <module>
[flow] 2022-09-01T08:53:04.583Z     from lightning_hpo import Sweep
[flow] 2022-09-01T08:53:04.583Z   File "/content/venv/lib/python3.8/site-packages/lightning_hpo/__init__.py", line 22, in <module>
[flow] 2022-09-01T08:53:04.583Z     from lightning_hpo.components.sweep import Sweep  # noqa: E402
[flow] 2022-09-01T08:53:04.583Z   File "/content/venv/lib/python3.8/site-packages/lightning_hpo/components/sweep.py", line 5, in <module>
[flow] 2022-09-01T08:53:04.583Z     from lightning.app.components.python.tracer import Code
[flow] 2022-09-01T08:53:04.583Z ImportError: cannot import name 'Code' from 'lightning.app.components.python.tracer' (/content/venv/lib/python3.8/site-packages/lightning/app/components/python/tracer.py)
[flow] 2022-09-01T08:53:04.692Z ERROR: Found an exception when loading your application from examples/1_app_agnostic.py. Please, resolve it to run your app.
[flow] 2022-09-01T08:53:04.692Z Traceback (most recent call last):
[flow] 2022-09-01T08:53:04.692Z   File "examples/1_app_agnostic.py", line 5, in <module>
[flow] 2022-09-01T08:53:04.692Z     from lightning_hpo import Sweep
[flow] 2022-09-01T08:53:04.692Z   File "/content/venv/lib/python3.8/site-packages/lightning_hpo/__init__.py", line 22, in <module>
[flow] 2022-09-01T08:53:04.692Z     from lightning_hpo.components.sweep import Sweep  # noqa: E402
[flow] 2022-09-01T08:53:04.692Z   File "/content/venv/lib/python3.8/site-packages/lightning_hpo/components/sweep.py", line 5, in <module>
[flow] 2022-09-01T08:53:04.692Z     from lightning.app.components.python.tracer import Code
[flow] 2022-09-01T08:53:04.692Z ImportError: cannot import name 'Code' from 'lightning.app.components.python.tracer' (/content/venv/lib/python3.8/site-packages/lightning/app/components/python/tracer.py)
[flow] 2022-09-01T08:53:05.113Z INFO: Found dead components ['Flow', 'Server', 'root.hi_plot'], Exiting execution!!!

To Reproduce

lightning run app examples/1_app_agnostic.py --cloud

View artefacts from the CLI

๐Ÿš€ Feature

Command to list artefacts with filtering by sweep or notebook

TODOS:

  • [] Add a ViewArtefactCommand in lightning_hpo/commands/artefacts/view.py. Simply use the LightningClient and list the artifacts. Use this reference.
  • [] Use rich Tree to display the artifacts

Rich Tree example:

# https://github.com/Textualize/rich/blob/master/examples/tree.py
"""
Demonstrates how to display a tree of files / directories with the Tree renderable.
"""

import os
import pathlib
import sys

from rich import print
from rich.filesize import decimal
from rich.markup import escape
from rich.text import Text
from rich.tree import Tree


def walk_directory(directory: pathlib.Path, tree: Tree) -> None:
    """Recursively build a Tree with directory contents."""
    # Sort dirs first then by filename
    paths = sorted(
        pathlib.Path(directory).iterdir(),
        key=lambda path: (path.is_file(), path.name.lower()),
    )
    for path in paths:
        # Remove hidden files
        if path.name.startswith("."):
            continue
        if path.is_dir():
            style = "dim" if path.name.startswith("__") else ""
            branch = tree.add(
                f"[bold magenta]:open_file_folder: [link file://{path}]{escape(path.name)}",
                style=style,
                guide_style=style,
            )
            walk_directory(path, branch)
        else:
            text_filename = Text(path.name, "green")
            text_filename.highlight_regex(r"\..*$", "bold red")
            text_filename.stylize(f"link file://{path}")
            file_size = path.stat().st_size
            text_filename.append(f" ({decimal(file_size)})", "blue")
            icon = "๐Ÿ " if path.suffix == ".py" else "๐Ÿ“„ "
            tree.add(Text(icon) + text_filename)


try:
    directory = os.path.abspath(sys.argv[1])
except IndexError:
    print("[b]Usage:[/] python tree.py <DIRECTORY>")
else:
    tree = Tree(
        f":open_file_folder: [link file://{directory}]{directory}",
        guide_style="bold bright_blue",
    )
    walk_directory(pathlib.Path(directory), tree)
    print(tree) 
โ”ƒ   โ”ƒ   โ”ƒ   โ”ƒ   โ”ƒ   โ”—โ”โ” ๐Ÿ“„ test_scripts.cpython-38-pytest-7.1.2.pyc (2.1 kB)
โ”ƒ   โ”ƒ   โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ __init__.py (0 bytes)
โ”ƒ   โ”ƒ   โ”ƒ   โ”ƒ   โ”—โ”โ” ๐Ÿ test_scripts.py (1.1 kB)
โ”ƒ   โ”ƒ   โ”ƒ   โ”—โ”โ” ๐Ÿ __init__.py (0 bytes)
โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ“‚ core_features_app
โ”ƒ   โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ“‚ __pycache__
โ”ƒ   โ”ƒ   โ”ƒ   โ”ƒ   โ”—โ”โ” ๐Ÿ“„ app.cpython-38.pyc (845 bytes)
โ”ƒ   โ”ƒ   โ”ƒ   โ”—โ”โ” ๐Ÿ app.py (422 bytes)
โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ“‚ custom_work_dependencies
โ”ƒ   โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ“‚ __pycache__
โ”ƒ   โ”ƒ   โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ“„ __init__.cpython-38.pyc (193 bytes)
โ”ƒ   โ”ƒ   โ”ƒ   โ”ƒ   โ”—โ”โ” ๐Ÿ“„ app.cpython-38.pyc (2.7 kB)
โ”ƒ   โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ __init__.py (0 bytes)
โ”ƒ   โ”ƒ   โ”ƒ   โ”—โ”โ” ๐Ÿ app.py (2.2 kB)
โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ“‚ idle_timeout
โ”ƒ   โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ“‚ __pycache__
โ”ƒ   โ”ƒ   โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ“„ __init__.cpython-38.pyc (181 bytes)
โ”ƒ   โ”ƒ   โ”ƒ   โ”ƒ   โ”—โ”โ” ๐Ÿ“„ app.cpython-38.pyc (2.8 kB)
โ”ƒ   โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ __init__.py (0 bytes)
โ”ƒ   โ”ƒ   โ”ƒ   โ”—โ”โ” ๐Ÿ app.py (2.8 kB)
โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ __init__.py (0 bytes)
โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ conftest.py (1.2 kB)
โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ layout.py (544 bytes)
โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ pickle_or_not.py (565 bytes)
โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ test_argparse.py (1.8 kB)
โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ test_boring_app.py (1.1 kB)
โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ test_collect_failures.py (1.2 kB)
โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ test_commands_and_api.py (1.5 kB)
โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ test_core_features_app.py (647 bytes)
โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ test_custom_work_dependencies.py (675 bytes)
โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ test_drive.py (541 bytes)
โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ test_idle_timeout.py (573 bytes)
โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ test_multi_node.py (746 bytes)
โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ test_payload.py (514 bytes)
โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ test_quick_start.py (2.4 kB)
โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ test_template_react_ui.py (1.0 kB)
โ”ƒ   โ”ƒ   โ”ฃโ”โ” ๐Ÿ test_template_streamlit_ui.py (1.1 kB)
โ”ƒ   โ”ƒ   โ”—โ”โ” ๐Ÿ test_v0_app.py (2.4 kB)

Stop the notebook from CLI

๐Ÿš€ Feature

Stop notebook given the UID.

  • Add command to change status in the DB
  • Add logic to controller to stop the work if the status is STOPPED

[EPIC] Usability

๐Ÿš€ Feature

Motivation

TODOS:

  • [] (EA) Persist App State (#57)
  • [] Download artifacts CLI (#31) (Local done)
  • [] View artifacts CLI (#30)
  • [] Utilities to explore Drive in notebooks (#58)

Pitch

Alternatives

Additional context

The Artefacts are stored in the proper way

๐Ÿ› Bug

To Reproduce

You are connected to the local Lightning App.
๐Ÿ“‚ root
โ”ฃโ”โ” ๐Ÿ“‚ artifacts
โ”ƒ   โ”—โ”โ” ๐Ÿ“‚ drive
โ”ƒ       โ”—โ”โ” ๐Ÿ“‚ code
โ”ƒ           โ”—โ”โ” ๐Ÿ“‚ root.file_server
โ”ƒ               โ”—โ”โ” ๐Ÿ“„ thomas-0ed22042
โ”ฃโ”โ” ๐Ÿ“‚ sweep_controller.sweeps.thomas-1fdc34f9.w_0.ws.0
โ”ƒ   โ”—โ”โ” ๐Ÿ“‚ Users
โ”ƒ       โ”—โ”โ” ๐Ÿ“‚ thomas
โ”ƒ           โ”—โ”โ” ๐Ÿ“‚ Documents
โ”ƒ               โ”—โ”โ” ๐Ÿ“‚ GitHub
โ”ƒ                   โ”—โ”โ” ๐Ÿ“‚ LAI-lightning-hpo-App
โ”ƒ                       โ”—โ”โ” ๐Ÿ“‚ wandb
โ”ƒ                           โ”—โ”โ” ๐Ÿ“‚ lightning_logs
โ”ƒ                               โ”—โ”โ” ๐Ÿ“‚ trial_0
โ”ƒ                                   โ”—โ”โ” ๐Ÿ“‚ 1z93ywba
โ”ƒ                                       โ”—โ”โ” ๐Ÿ“‚ checkpoints
โ”ƒ                                           โ”—โ”โ” ๐Ÿ“„ epoch=0-step=20.ckpt
โ”ฃโ”โ” ๐Ÿ“‚ w_0.ws.0
โ”ƒ   โ”—โ”โ” ๐Ÿ“‚ Users
โ”ƒ       โ”—โ”โ” ๐Ÿ“‚ thomas
โ”ƒ           โ”—โ”โ” ๐Ÿ“‚ Documents
โ”ƒ               โ”—โ”โ” ๐Ÿ“‚ GitHub
โ”ƒ                   โ”—โ”โ” ๐Ÿ“‚ LAI-lightning-hpo-App
โ”ƒ                       โ”—โ”โ” ๐Ÿ“‚ wandb
โ”ƒ                           โ”—โ”โ” ๐Ÿ“‚ lightning_logs
โ”ƒ                               โ”—โ”โ” ๐Ÿ“‚ Optimizing a Simple CNN over MNIST with Lightning HPO
โ”ƒ                                   โ”—โ”โ” ๐Ÿ“‚ version_None
โ”ƒ                                       โ”—โ”โ” ๐Ÿ“‚ checkpoints
โ”ƒ                                           โ”ฃโ”โ” ๐Ÿ“„ epoch=0-step=20-v7.ckpt
โ”ƒ                                           โ”—โ”โ” ๐Ÿ“„ epoch=1-step=40.ckpt
โ”ฃโ”โ” ๐Ÿ“‚ w_0.ws.1
โ”ƒ   โ”—โ”โ” ๐Ÿ“‚ Users
โ”ƒ       โ”—โ”โ” ๐Ÿ“‚ thomas
โ”ƒ           โ”—โ”โ” ๐Ÿ“‚ Documents
โ”ƒ               โ”—โ”โ” ๐Ÿ“‚ GitHub
โ”ƒ                   โ”—โ”โ” ๐Ÿ“‚ LAI-lightning-hpo-App
โ”ƒ                       โ”—โ”โ” ๐Ÿ“‚ lightning_logs
โ”ƒ                           โ”ฃโ”โ” ๐Ÿ“‚ version_11
โ”ƒ                           โ”ƒ   โ”—โ”โ” ๐Ÿ“‚ checkpoints
โ”ƒ                           โ”ƒ       โ”—โ”โ” ๐Ÿ“„ epoch=0-step=20.ckpt
โ”ƒ                           โ”—โ”โ” ๐Ÿ“‚ version_12
โ”ƒ                               โ”—โ”โ” ๐Ÿ“‚ checkpoints
โ”ƒ                                   โ”—โ”โ” ๐Ÿ“„ epoch=1-step=40.ckpt
โ”ฃโ”โ” ๐Ÿ“‚ w_1.ws.0
โ”ƒ   โ”—โ”โ” ๐Ÿ“‚ Users
โ”ƒ       โ”—โ”โ” ๐Ÿ“‚ thomas
โ”ƒ           โ”—โ”โ” ๐Ÿ“‚ Documents
โ”ƒ               โ”—โ”โ” ๐Ÿ“‚ GitHub
โ”ƒ                   โ”—โ”โ” ๐Ÿ“‚ LAI-lightning-hpo-App
โ”ƒ                       โ”—โ”โ” ๐Ÿ“‚ wandb
โ”ƒ                           โ”—โ”โ” ๐Ÿ“‚ lightning_logs
โ”ƒ                               โ”—โ”โ” ๐Ÿ“‚ Optimizing a Simple CNN over MNIST with Lightning HPO
โ”ƒ                                   โ”—โ”โ” ๐Ÿ“‚ version_None
โ”ƒ                                       โ”—โ”โ” ๐Ÿ“‚ checkpoints
โ”ƒ                                           โ”—โ”โ” ๐Ÿ“„ epoch=0-step=20-v9.ckpt
โ”—โ”โ” ๐Ÿ“‚ w_1.ws.1
    โ”—โ”โ” ๐Ÿ“‚ Users
        โ”—โ”โ” ๐Ÿ“‚ thomas
            โ”—โ”โ” ๐Ÿ“‚ Documents
                โ”—โ”โ” ๐Ÿ“‚ GitHub
                    โ”—โ”โ” ๐Ÿ“‚ LAI-lightning-hpo-App
                        โ”—โ”โ” ๐Ÿ“‚ lightning_logs
                            โ”—โ”โ” ๐Ÿ“‚ version_13
                                โ”—โ”โ” ๐Ÿ“‚ checkpoints
                                    โ”—โ”โ” ๐Ÿ“„ epoch=0-step=20.ckpt

Steps to reproduce the behavior:

  1. Go to '...'
  2. Run '....'
  3. Scroll down to '....'
  4. See error

Code sample

Expected behavior

Environment

  • PyTorch Version (e.g., 1.0):
  • OS (e.g., Linux):
  • How you installed PyTorch (conda, pip, source):
  • Build command you used (if compiling from source):
  • Python version:
  • CUDA/cuDNN version:
  • GPU models and configuration:
  • Any other relevant information:

Additional context

Restart Notebook

๐Ÿš€ Feature

Motivation

When a notebook is stopped, all its artifacts are stored in the persistent storage. When restarting a notebook, we can simply re-download them all within the work.

TODOS:

  • Delete the previous work objects but keep its state
  • Pass a Path('.') object to the notebook.run method to download all the artifacts from the previous session. (Not MVP)

Pitch

Alternatives

Additional context

Download logs

๐Ÿš€ Feature

Download the logs for a particular sweep

Delete Sweeps / Trials

๐Ÿš€ Feature

Motivation

TODOS:

  • [] Create a DeleteSweepCommand and DeleteSweepConfig in lightning_hpo/commands/sweep/delete.py and add a delete_sweep_handler in the SweeperController. If the Sweep exists, we need to:
    - [] Delete it from the App database
    - [] Make a call to the control plane to delete the works. (Fundamental: Add support to del on the work)
    - [] Delete the sweep component from the SweeperController

Pitch

Alternatives

Additional context

Launch tensorboard from the CLI

๐Ÿš€ Feature

  • add command to edit DB
  • add controller to launch TB work

Needs a way to give the TB work access to the logs for that run / sweep (i.e. may need to merge multiple logs folders).

Documentation

๐Ÿš€ Feature

Add a few (3-4) pages with a basic explanation of this app...

Motivation

Additional context

Dashboard is not loading

๐Ÿ› Bug

Following example_4 the trainer app

The dashboard is not loading

TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
Traceback:
File "/Users/mansy/src/lightning-hpo/venv/lib/python3.9/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 556, in _run_script
    exec(code, module.__dict__)
File "/Users/mansy/src/lightning-hpo/venv/lib/python3.9/site-packages/lightning_app/frontend/streamlit_base.py", line 35, in <module>
    main()
File "/Users/mansy/src/lightning-hpo/venv/lib/python3.9/site-packages/lightning_app/frontend/streamlit_base.py", line 31, in main
    render_fn(flow_state)
File "/Users/mansy/src/lightning-hpo/lightning_hpo/controllers/sweeper.py", line 106, in render_fn
    resp = requests.get(state.db_url + "/general/", data=GeneralModel.from_cls(SweepConfig).json())

To Reproduce

Steps to reproduce the behavior:
1- follow readme to install package and requirements
2- run lightning run app examples/4_app_sweeper.py
the dashboard shows

Screenshot 2022-09-01 at 11 24 08

Utilities to explore Drive in notebooks

๐Ÿš€ Feature

Motivation

Creating a Shared Drive objects already works within a notebook through the AppState, but this won't worked with s3 Mount Drive.

from lightning.app.utilities.state import AppState

state = AppState()
print(state.component_name.drive.list())

Provide utilities to a list of app drives to help users investigate their artifacts

Pitch

Alternatives

Additional context

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.