Tensorboard, запущенный пакетом Azure ML, работает некорректно

Я хочу получить доступ к файлу tfevent, созданному во время обучения и хранящемуся в журналах в службе Azure ML. К этому файлу tfevent можно получить доступ и правильно отобразить на обычной тензорной плате, поэтому файл не поврежден, но когда я использую библиотеку тензорной доски Azure ML для доступа к нему, либо на локальной тензорной плате ничего не отображается, либо в соединении отказывается.

Сначала я зарегистрировал его в ./logs/tensorboard, как в Azure ML ./logs/azureml, но тензорная доска, запущенная модулем Azure ML, сообщает, что в браузере нет файла, который можно было бы показать, как это показано ниже.

No dashboards are active for the current data set.
Probable causes:

You haven’t written any data to your event files.
TensorBoard can’t find your event files.
If you’re new to using TensorBoard, and want to find out how to add data and set up your event files, check out the README and perhaps the TensorBoard tutorial.
If you think TensorBoard is configured properly, please see the section of the README devoted to missing data problems and consider filing an issue on GitHub.

Last reload: Wed Aug 21 2019 *****
Data location: /tmp/tmpkfj7gswu

Поэтому я подумал, что сохраненное местоположение не будет распознано AML, и я изменил место сохранения на ./logs, после чего браузер показывает, что «Этот сайт недоступен. ****** отказано в подключении».

Моя версия пакета SDK для Azure ML Python - 1.0.57.

1) Как это исправить?

2) Где мне сохранить файл tfevent, чтобы AML его распознал? Я не смог найти здесь никакой информации об этом в документации. https://docs.microsoft.com/en-us/python/api/azureml-tensorboard/azureml.tensorboard.tensorboard?view=azure-ml-py

Вот как я запускаю тензорную доску через Azure ML.

if __name__ == "__main__":
    parser = argparse.ArgumentParser(
        description=f'This script is to lanuch TensorBoard with '
        f'accessing run history from machine learning '
        f'experiments that output Tensorboard logs')
    parser.add_argument('--experiment-name',
                        dest='experiment_name',
                        type=str,
                        help='experiment name in Azure ML')
    parser.add_argument('--run-id',
                        dest='run_id',
                        type=str,
                        help='The filename of merged json file.')

    args = parser.parse_args()

    logger = get_logger(__name__)
    logger.info(f'SDK Version: {VERSION}')

    workspace = get_workspace()
    experiment_name = args.experiment_name
    run_id = args.run_id
    experiment = get_experiment(experiment_name, workspace, logger)
    run = get_run(experiment, run_id)

    # The Tensorboard constructor takes an array of runs, so pass it in as a single-element array here
    tb = Tensorboard([run])

    # If successful, start() returns a string with the URI of the instance.
    url = tb.start()
    print(url)

person kofuji    schedule 21.08.2019    source источник


Ответы (1)


Поддержка Tensorboard в AzureML разработана следующим образом:

  1. Вы обучаете свою модель на AMLCluster или присоединенной виртуальной машине и записываете файл журнала Tensorboard в каталог ./logs (см. здесь, где приведен пример сценария для запуска).
from azureml.train.dnn import TensorFlow

script_params = {"--log_dir": "./logs"}

# If you want the run to go longer, set --max-steps to a higher number.
# script_params["--max_steps"] = "5000"

tf_estimator = TensorFlow(source_directory=exp_dir,
                          compute_target=attached_dsvm_compute,
                          entry_script='mnist_with_summaries.py',
                          script_params=script_params)

run = exp.submit(tf_estimator)
  1. На локальном компьютере или на виртуальной машине ноутбука вы запускаете azureml.tensorboard.Tensorboard экземпляр, который затем будет постоянно извлекать журналы выполнения и записывать их на локальный диск. Он также запустит экземпляр Tensorboard, на который вы можете указать в своем браузере.
tb = Tensorboard(run)
# If successful, start() returns a string with the URI of the instance.
tb.start()

Если это сделано на вашем локальном компьютере, URL-адрес будет http://localhost:6000 (или имя вашего компьютера), на виртуальной машине ноутбука URL-адрес будет иметь вид https://vmname-6000.westeurope.notebooks.azureml.net/

Вот график того, как выполняется запуск в AzureML. Пункты №6 и №7 являются здесь соответствующими точками, иллюстрирующими, как журналы Tensorboard перемещаются от вычислительной цели к машине, на которой работает фактическая Tensorboard. В данном случае это «Мой компьютер», но это также может быть NotebookVM. введите здесь описание изображения

person Daniel Schneider    schedule 21.08.2019
comment
Можно ли выбрать URL-адрес, по которому запускается Tensorboard? Служба машинного обучения Azure предоставляет мне MacBook-Pro-de-Valentin.local: 6006 и это не работает - person Valentin Richer; 06.11.2019