Как использовать Tensorboard в AWS Sagemaker

Я имею в виду ссылки ниже, чтобы использовать Tensorboard в методе Sagemaker Script Mode.

https://www.tensorflow.org/tensorboard/get_started

https://levelup.gitconnected.com/how-to-use-tensorboard-in-an-amazon-sagemaker-notebook-instance-a41ce2fd973f

https://towardsdatascience.com/using-tensorboard-in-an-amazon-sagemaker-pytorch-training-job-a-step-by-step-tutorial-19b2b9eb4d1c

Ниже приведен мой обратный вызов тензорной доски в моем учебном скрипте, который представляет собой файл .py

model = create_model()
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
log_dir = "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)
model.fit(x=x_train, 
          y=y_train, 
          epochs=5, 
          validation_data=(x_test, y_test), 
          callbacks=[tensorboard_callback])

В записной книжке я создаю приведенный ниже оценщик тензорного потока, в котором передаю указанное выше имя файла сценария как entry_point.

estimator = TensorFlow(
    entry_point='Script_File.py',
    train_instance_type=train_instance_type,
    train_instance_count=1,
    model_dir=model_dir,
    hyperparameters=hyperparameters,
    role=sagemaker.get_execution_role(),
    base_job_name='tf-fashion-mnist',
    framework_version='1.12.0', 
    py_version='py3',
    output_path=<S3 Path>,
    script_mode=True,
)

Я использую приведенный ниже код в своей записной книжке, чтобы начать обучение.

estimator.fit(inputs)

После завершения обучения я использую приведенный ниже код в Терминале (также пробовал в своей ячейке Блокнота) для запуска тензорной доски.

tensorboard --logdir logs/fit

Но на тензорной доске я не могу просматривать графики. Отображается сообщение Не удалось получить запуски. Что-то мне не хватает? Или мне нужно сделать какие-то дополнительные настройки в моем скрипте, чтобы увидеть мои журналы в Tensorboard?


person Mikhila Mehta    schedule 19.11.2020    source источник


Ответы (1)


Ваша тензорная доска logdir не logs/fit .. но к ней добавлена ​​текущая дата. Попробуйте использовать logs/fit как log_dir и посмотрите, работает ли он.

РЕДАКТИРОВАТЬ

Если вы хотите использовать тензорную плату локально, вам нужно отправить журналы тензорной платы на S3 и читать оттуда. Для этого вам нужно сделать то же самое, что и ваш третий связанный пример, поэтому включите отладчик sagemaker:

из sagemaker.debugger import TensorBoardOutputConfig

tensorboard_output_config = TensorBoardOutputConfig (s3_output_path = 's3: // путь / для / tensorboard / data / Emission', container_local_output_path = '/ local / path / for / tensorboard / data / Emission')

тогда ваша команда tenorboard будет выглядеть примерно так:

AWS_REGION = ‹your-region› AWS_LOG_LEVEL = 3 tensorboard --logdir s3: // путь / для / tenorboard / data / Эмиссия

В качестве альтернативы, если вы хотите использовать тензорную доску в записной книжке, вам нужно сделать то, что делает второй связанный пример, поэтому просто установите ее в ячейку и запустите тензорборд с чем-то вроде:

https: // ‹имя хоста экземпляра ноутбука› / proxy / 6006 /

person rok    schedule 26.11.2020
comment
Спасибо за ответ @rok. Я попытался указать log_dir, но все еще столкнулся с той же проблемой. - person Mikhila Mehta; 07.12.2020
comment
проясните пожалуйста, где вы запускаете тензорборд? Где работает ваш обучающий код? Это ноутбук? Почтовый индекс, чтобы начать работу по обучению, пожалуйста. - person rok; 07.12.2020
comment
Мой обучающий код - это сценарий .py (потому что я использую режим сценария), и я храню его в той же папке, что и моя записная книжка. Код обучения в этом скрипте показан выше. Пожалуйста, обратитесь к обновленному вопросу для кода, чтобы начать работу по обучению. - person Mikhila Mehta; 11.12.2020
comment
Я отредактировал свой ответ, посмотрите. В основном у вас есть 2 варианта использования тензорной доски локально (указывая на ведро s3) или в записной книжке. - person rok; 11.12.2020
comment
Спасибо за ваш ответ. Я пробовал оба метода. Несмотря на то, что я могу видеть некоторые файлы событий при использовании обоих методов (в сегменте S3 и в локальном пути), на Tensorboard ничего не отображается. Я получаю сообщение об ошибке "Не удалось получить запуски". - person Mikhila Mehta; 11.12.2020
comment
может быть ошибка в тензорборде? прочтите здесь github.com/tensorflow/tensorflow/issues/45335, попробуйте понизить версию это посмотреть, работает ли это? - person rok; 11.12.2020
comment
Спасибо @rok за предложение. Я понизил свой Tensorflow до версии 2.2.0, и теперь я могу видеть графики на своем Tensorboard. - person Mikhila Mehta; 11.12.2020