Самый полный учебник по использованию TensorBoard: просто прочитайте эту статью.
Самый полный учебник по использованию TensorBoard: просто прочитайте эту статью.

Машинное обучение часто включает в себя визуализацию и измерение производительности модели во время обучения. Для этой задачи доступно множество инструментов. В этой статье мы сосредоточимся на наборе инструментов TensorFlow с открытым исходным кодом, который называется TensorBoard. Хотя он является частью TensorFlow, его можно установить независимо и обслуживать другие платформы, такие как Pytorch.

Что такое Тензорборд?

TensorBoard — набор инструментов для визуализации данных. Он включен в популярную библиотеку машинного обучения с открытым исходным кодом Tensorflow. Основные возможности TensorBoard включают в себя:

  • Визуальная модель сетевой архитектуры
  • Отслеживайте показатели модели, такие как потери, точность и т. д.
  • Проверьте веса, отклонения и другие компоненты в рабочем процессе машинного обучения и гистограммах.
  • Отображение нетабличных данных, включая изображения, текст и аудио.
  • Встраивание высокомерной проекции Воля в низкомерное пространство

TensorBoard — это подсервис, включенный в TensorFlow. Библиотека TensorFlow — это библиотека с открытым исходным кодом, разработанная специально для приложений машинного обучения. Google Brain создал более раннюю систему DistBelief в 2011 году. Поскольку его пользовательская база быстро росла, он был упрощен и реорганизован в библиотеку, которую мы теперь называем Tensorflow. Впоследствии TensorFlow был выпущен для публики в 2015 году. Когда TensorBoard только появился, его можно было использовать только для проверки индикаторов TensorFlow и визуализации моделей TensorFlow. Однако после долгих усилий другие фреймворки глубокого обучения также могут использовать функции TensorBoard. Например, Pytorch отказался от собственной визды (для тех, кто это делает). слышали об этом названии) Людей там уже не должно быть много) и полностью поддерживает TensorBoard.

Как установить Тензор Борд

TensorBoard включен в библиотеку TensorFlow, поэтому, если мы успешно установили TensorFlow, мы также можем использовать TensorBoard. Чтобы установить TensorBoard отдельно, используйте следующую команду:

Язык кода:javascript
копировать
pip install tensorboard

Следует отметить, что поскольку TensorBoard зависит от Tensorflow, последняя версия Tensorflow будет установлена ​​автоматически.

Запустить TensorBoard

1. Запустите TensorBoard локально.

хотеть Запустить TensorBoard, откройте терминал или командную строку и запустите:

Язык кода:javascript
копировать
tensorboard --logdir=<directory_name>

Воля directory_name Отметку заменил на директорию, в которой сохраняются данные. По умолчанию используется «журналы».

После запуска этой команды мы Воля видим следующую подсказку:

Язык кода:javascript
копировать
Serving TensorBoard on localhost; to expose to the network, use a proxy or pass –bind_allTensorBoard 2.2.0 at http://localhost:6006/ (Press CTRL+C to quit)

Это показывает, что TensorBoard успешно запущен. Мы можем использовать браузер, чтобы открыть http://localhost:6006/ для просмотра.

При первом открытии страницы мы видим следующее:

2. Использование TensorBoard в блокнотах Jupyter

Если вы хотите использовать TensorBoard в блокнотах Jupyter, вы можете использовать следующую команду:

Язык кода:javascript
копировать
%load_ext tensorboard

Запустите эту строку кода Воля, чтобы загрузить TensorBoard также позволяет нам визуализировать другие варианты использования. После загрузки расширения мы можем существовать. Запустить TensorBoard:

Язык кода:javascript
копировать
%tensorboard --logdir logs

3、Воля TensorBoard и Google Colab используются вместе

использовать Google Colab , когда-то новый notebook,TensorFlow и TensorBoard Он уже установлен. Чтобы запустить его, мы можем следовать и Jupyter Notebooks Тот же процесс, что описан. Просто введите в ячейку блокнота следующее:

Язык кода:javascript
копировать
%load_ext tensorboard

Мы увидим приложение TensorBoard.

Использование Тензорборда

Мы готовы к работе TensorBoard, ниже с TensorFlow В качестве примера, какиспользоватьTensorBoard

1、местныйиспользовать TensorBoard

Обратный вызов TensorBoard Обратный вызов, предоставляемый библиотекой TensorFlow. Как это работает?

в соответствии с Keras документ,Обратный вызов может заключаться в обучении выполнению операций над объектами на различных этапах. Когда мы хотим существовать из определенного узла времени в процессе обучения (например,существуют, когда задача автоматически выполняется после каждой эпохи/пакета),мы все можемиспользоватьперезвонить.

какиспользовать TensorBoard callback Быстрый пример.

первый,использовать TensorFlow Создайте простую модель и MNIST Обучите его на наборе данных.

Язык кода:javascript
копировать
import tensorflow as tf

# Load and normalize MNIST data
mnist_data = tf.keras.datasets.mnist
(X_train, y_train), (X_test, y_test) = mnist_data.load_data()
X_train, X_test = X_train / 255.0, X_test / 255.0

# Define the model
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
])

# Compile the model
model.compile(
optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])

После компиляции модели нам нужно создать обратный вызов и вызвать fit методиспользовать。

Язык кода:javascript
копировать
tf_callback = tf.keras.callbacks.TensorBoard(log_dir="./logs")

Теперь можно вызвать модель fit Обратный вызов Воля передается в качестве параметра во время метода. существование было создано в рабочем каталоге logs папка и Воля, которая передается в качестве параметра log_dir。Звоните ниже fit А Воля передается как обратный вызов.

Язык кода:javascript
копировать
model.fit(X_train, y_train, epochs=5, callbacks=[tf_callback])

После вызова метода fit введите localhost:6006, чтобы просмотреть результаты.

Мы видим два разных графика. Первый показывает точность модели в каждую эпоху. Второй показывает потери.

2. Запустите TensorBoard удаленно

Помимо локального запуска, TensorBoard также можно запускать удаленно. Результаты также можно проверить локально, если мы будем обучаться параллельно на разных серверах с более мощными графическими процессорами.

Во-первых, используйте SSH и порты удаленного сервера Воля сопоставляются с локальным компьютером.

Язык кода:javascript
копировать
ssh -L 6006:127.0.0.1:6006 username@server_ip

Тогда простохотетьсуществоватьна удаленном сервере Запустить Тензор Борд. Запускаем на удаленном сервере:

Язык кода:javascript
копировать
tensorboard --logdir=’logs’ --port=6006

Мы можем получить доступ к localhost:6006 для просмотра удаленного TensorBoard.

Панель управления TensorBoard

Панель управления TensorBoard состоит из различных компонентов для визуализации данных. Мы, Воля, детально изучаем каждую составляющую.

1、TensorBoard Scalars

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

использовать TensorBoard из Scalars Панель мониторинга для упрощения визуализации этих показателей и отладки моделей. Первый пример, в MNIST Нарисуйте модель в наборе данныхизпотеряиточность,использоватьиз СразудаScalars。

Создайте обратный вызов, укажите каталог для записи данных и вызовите fit метод при передаче перезвонить. Этот способ работает в большинстве случаев, но что, если мы хотим записать собственные скаляры, которые нелегко получить? можно использовать TensorFlow из Summary API. Этот специальный API Используйте В для сбора сводных данных для последующей визуализации и анализа.

Давайте посмотрим на пример, чтобы лучше это понять. Используйте простой синусоидальный сигнал, который, как вы хотите, будет отображаться на TensorBoard из скаляров.

Язык кода:javascript
копировать
# Specify a directory for logging data
logdir = "./logs"

# Create a file writer to write data to our logdir
file_writer = tf.summary.create_file_writer(logdir)

# Loop from 0 to 199 and get the sine value of each number
for i in range(200):
    with file_writer.as_default():
        tf.summary.scalar('sine wave', np.math.sin(i), step=i)

tf.summary серединаиз scalar Метод, который может записывать практически все, что мы хотим, изскалярные.использовать TensorBoard При этом дело не ограничивается потерями и показателями. После запуска вышеуказанной команды Панель Результат управленияиз выглядит следующим образом:

2、TensorBoard Images

существования При работе с данными изображения, если вы хотите просмотреть проблемы поиска данных или просмотреть образцы, чтобы гарантировать качество данных, вы можете использовать TensorBoard из Image Summary API。

продолжить обратно к MNIST набор данных, посмотрите на изображения в TensorBoard серединадакакпоказыватьиз:

Язык кода:javascript
копировать
# Load and normalize MNIST data
mnist_data = tf.keras.datasets.mnist
(X_train, y_train), (X_test, y_test) = mnist_data.load_data()
X_train, X_test = X_train / 255.0, X_test / 255.0

Данные Воли из первого изображения и Воля его визуализация.

Язык кода:javascript
копировать
# Reshape the first image
img = np.reshape(X_train[0], (-1, 28, 28, 1))

# Specify a directory for logging data
logdir = "./logs"# Create a file writer to write data to our logdir
file_writer = tf.summary.create_file_writer(logdir)

# With the file writer, log the image data
with file_writer.as_default():
    tf.summary.image("Training data", img, step=0)

Для просмотра изображений необходимо выбрать опцию ИЗОБРАЖЕНИЯ:

3、TensorBoard Graphs

Все модели можно рассматривать как вычислительный граф. Иногда сложно понять модель архитектуры, глядя только на код. Визуализация позволяет легко увидеть структуру модели, Также мы можем обеспечить желаемую архитектуру или дизайн использования.

Визуализация ниже ранее использовалась для MNIST Набор данныхиз Модель。подда Модельопределение。

Язык кода:javascript
копировать
# Define the model
model = tf.keras.models.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(128, activation='relu'),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(10, activation='softmax')
])

Вам также необходимо создать TensorBoard обратный вызов исуществоватьтренироваться Модельчасиспользоватьэто。

Язык кода:javascript
копировать
# Create a callback
tf_callback = tf.keras.callbacks.TensorBoard(log_dir="./logs")

# Pass in the callback when fitting the model
model.fit(X_train, y_train, epochs=5, callbacks=[tf_callback])

После тренировки просмотрите параметры графиков:

Здесь показана диаграмма уровня модели изда (послойное отображение архитектуры модели). Это очень важно, чтобы увидеть, правильна ли наша модель и соответствует ли каждый слой нашим ожиданиям. График данных течет снизу вверх.

При необходимости вы также можете просмотреть концептуальные карты. Находится на боковой панели Tag Название и Воля изменились на Keras:

Вы можете проверить правильность структуры модели. Узел из на рисунке указывает на то, что модель да является последовательной моделью.

4. Распределения и гистограммы TensorBoard Распределения и гистограммы

TensorBoard Распределение и гистограмма да Еще один хороший способ отслеживать модель. использование официально обеспечивает обратный вызов, существует TensorBoard после обучения Будет отображено несколько вариантов. Если мы перейдем к Распределениям вкладке Воля увидит следующую картинку:

В этом наборе диаграмм показаны тензоры, составляющие модель. существуют Каждая цифра показана на горизонтальной оси. epoch Число, существующее по вертикальной оси, показывает значение каждого тензора. Эти графики в основном показывают, как эти тензоры изменяются с течением времени по мере обучения. Более темная область отображает значение, существующее в определенной области в течение длительного времени (не обновляемое). Если вас беспокоит вес модели, существующий в каждую эпоху обновляются неправильно, эти проблемы можно обнаружить с помощью этой опции.

В опции «Гистограммы» мы видим набор различных диаграмм, которые представляют тензоры модели.

На этих рисунках показаны разные виды тензоров в модели. Каждый график имеет пять гистограмм, наложенных друг на друга.,Представитель был обучен для каждой из пяти эпох. Они показывают, в какой области тензорные веса имеют тенденцию концентрироваться из информации. Это полезно для отладки поведения модели.,Очень полезно для поиска исключений.

5、TEXT

Текст да Создать машинное Модели обучения часто используют типы данных. Зачастую бывает сложно визуализировать текстовые данные. TensorBoard можно использовать Text Summary API Легко визуализируйте текстовые данные. Давайте посмотрим, как это работает.

используйте текст Hello World в качестве простого примера.

Язык кода:javascript
копировать
# Our sample text
sample_text = "Hello world!"

# Specify a directory for logging data
logdir = "./logs/text/"

# Create a file writer to write data to our logdir
file_writer = tf.summary.create_file_writer(logdir)

# With the file writer, log the text data
with file_writer.as_default():
    tf.summary.text("sample_text", sample_text, step=0)

Введите текст на вкладке TensorBoar изText.

6. Проекция проектора TensorBoard

глубокое Обучение часто подходит для моделей с большим количеством изданных измерений. Визуализация этих измерений может дать нам представление о том, как улучшить производительность модели. Тензорборд Обеспечивает встраиваемую изпроекцию, которая позволяет легко визуализировать многомерные данные.

первый,нуждатьсяхотетьот TensorBoard Импортируйте плагин проекции.

Язык кода:javascript
копировать
from tensorboard.plugins import projector

нас Воляиспользовать IMDB Набор данных обзора фильмов для визуализации вложений.

Язык кода:javascript
копировать
import os
import tensorflow as tf
import tensorflow_datasets as tfds

# Load the data
(train_data, test_data), info = tfds.load(
    "imdb_reviews/subwords8k",
    split=(tfds.Split.TRAIN, tfds.Split.TEST),
    with_info=True,
    as_supervised=True,)encoder = info.features["text"].encoder
    
# Create training batches
train_batches = train_data.shuffle(1000).padded_batch(
    10, padded_shapes=((None,), ())
)

# Create testing batches
test_batches = test_data.shuffle(1000).padded_batch(
    10, padded_shapes=((None,), ())
)

# Get the first batch
train_batch, train_labels = next(iter(train_batches))

существоватьвышеизкодсередина,Загрузка и предварительная обработка данных,Следующий код Воля создает простую модель для создания вложений для текста.,тренироваться Модель epoch=1 и визуализируйте результаты.

Язык кода:javascript
копировать
# Create an embedding layer
embedding_dim = 16
embedding = tf.keras.layers.Embedding(
    encoder.vocab_size, 
    embedding_dim)

# Configure the embedding layer as part of a Keras model
model = tf.keras.Sequential([
    embedding,
    tf.keras.layers.GlobalAveragePooling1D(),
    tf.keras.layers.Dense(16, activation="relu"),
    tf.keras.layers.Dense(1),])

# Compile the model
model.compile(
    optimizer="adam",
    loss=tf.keras.losses.BinaryCrossentropy(from_logits=True),
    metrics=["accuracy"],
)

# Train the model for a single epoch
history = model.fit(
    train_batches, epochs=1, validation_data=test_batches
)

Запись данных воли необходима при подгонке модели logdir,Аналогично тому, что мы делали в предыдущем разделе.

Язык кода:javascript
копировать
# Set up a log dir, just like in previous sections
log_dir='/logs/imdb-example/'
if not os.path.exists(log_dir):
    os.makedirs(log_dir)

# Save labels separately in a line-by-line manner.
with open(os.path.join(log_dir, 'metadata.tsv'), "w") as f:
    for subwords in encoder.subwords:
        f.write("{}\n".format(subwords))

# Fill in the rest of the labels with "unknown"
for unknown in range(1, encoder.vocab_size - len(encoder.subwords)):
    f.write("unknown #{}\n".format(unknown))

# Save the weights we want to analyze as a variable
weights = tf.Variable(model.layers[0].get_weights()[0][1:])

# Create a checkpoint from embedding, the filename and key are the
# name of the tensor
checkpoint = tf.train.Checkpoint(embedding=weights)
checkpoint.save(os.path.join(log_dir, "embedding.ckpt"))

# Set up config
config = projector.ProjectorConfig()
embedding = config.embeddings.add()

# The name of the tensor will be suffixed by
# `/.ATTRIBUTES/VARIABLE_VALUE`
embedding.tensor_name = "embedding/.ATTRIBUTES/VARIABLE_VALUE"
embedding.metadata_path = 'metadata.tsv'
projector.visualize_embeddings(log_dir, config)

Существующие TensorBoard Посмотреть визуализацию и встраивание можно, выбрав опцию «Проектор» в выпадающем меню в правом верхнем углу:

Плагин TensorBoard

TensorBoard также предоставляет множество различных плагинов, которые могут помочь нам удовлетворить различные потребности. Вот несколько очень полезных плагинов.

1、TensorFlow Profiler

TensorFlow Profiler для анализа выполнения кода TensorFlow. Это важно, поскольку мы хотим знать, правильно ли оптимизирована используемая нами модель. Здесь необходимо установить плагин Profiler.

Язык кода:javascript
копировать
pip install  tensorboard_plugin_profile

Создайте модель, а затем подогнать ее с помощью TensorBoard. Перезвонить.

Язык кода:javascript
копировать
# Create a callback
tf_callback = tf.keras.callbacks.TensorBoard(log_dir="./logs")

# Pass in the callback when fitting the model
model.fit(X_train, y_train, epochs=5, callbacks=[tf_callback])

при входе TensorBoard страница, мы с Воля увидели страницу под названием Profile из Новые опции. Переключитесь на эту опцию, и вы увидите контент, похожий на изображение ниже.

На этой обзорной странице содержится много информации, поэтому давайте разберем ее:

  • Существует Step-time картина,Показывает, какие части тренировочного процесса занимают больше всего времени. Вы можете видеть, что модель не имеет привязок ввода.,Много времени уходит на запуск ядра.
  • Также увидел несколько предложений по оптимизации производительности модели.
  • существоватьнасизпримерсередина,Без расчетаиспользовать 16 Битовые операции могут повысить производительность за счет преобразования.

В левой части существования находится раскрывающееся меню «Инструменты». Можно выбрать Trace Viewer Давайте посмотрим, где возникает узкое место в производительности модели. След Viewer Отображение происходит во время анализа GPU и CPU Хронология событий.

На вертикальной оси показаны группы событий с различными событиями трассировки. от CPU и GPU Собирайте события отслеживания. Каждый прямоугольник имеет отдельное событие отслеживания. Вы можете нажать на любой из них, чтобы сосредоточиться Отслеживайте события и анализируйте их. Вы также можете перетащить курсор, чтобы выбрать несколько событий одновременно.

существует раскрывающийся список «Инструменты», вы также можете использовать «input_pipeline_analyzer», вы можете в соответствии Соберите данные для просмотра модели производительности входного конвейера.

Здесь мы можем сообщить модели, есть ли привязка ввода. Например, изображение выше означает, что модель тратит много времени на ожидание ввода вместо того, чтобы выполнять вывод. Он также может сказать нам, какой этап конвейера является самым медленным.

Чтобы глубже понять различные TensorFlow операция, есть еще одна, называемая TensorFlow stats Опция: вы можете показать, что модель сегментируется, выполняя различные операции.

При запуске модели,На круговой диаграмме показаны различные операции положительного расчета. Включая кодирование, умножение матриц и другие вычисления.,а также многие другие операции вывода, которые необходимо выполнить. существуют при оптимизации модели,Можетсосредоточиться На работу какого из них уходит больше всего времени.

2、Fairness Indicators Dashboard

Панель индикаторов справедливости помогает нам рассчитывать различные показатели справедливости для бинарных и многоклассовых классификаторов. Вы можете оценить справедливость модели в разных прогонах и сравнить ее производительность в разных группах.

хотетьначинатьсуществоватьнасизданныеиспользовать Fairness Indicators Dashboard необходимо установить некоторые зависимости:

Язык кода:javascript
копировать
pip install fairness_indicators
pip install tensorboard-plugin-fairness-indicators

Импортировать плагин:

Язык кода:javascript
копировать
from tensorboard_plugin_fairness_indicators import summary_v2

summary_v2изиспользоватьметодисуществоватьпредыдущие главысередина Воля Данные записываются в logdir часиспользовать tf.summary Такой же.

Язык кода:javascript
копировать
# Create a file writer to write data to our logdir
file_writer = tf.summary.create_file_writer(logdir)

# Write data to our result directory
with file_writer.as_default():
    summary_v2.FairnessIndicators(result_dir, step=1)

Результат следующий:

существовать TensorBoard Будет новая Справедливость Indicators вкладка. Здесь вы можете просмотреть прогнозы модели по разным значениям классов в разбивке и их базовые процентные различия, чтобы определить, является ли модель справедливой.

Изучите свою модель с помощью инструмента «Что, если»

TensorBoard Поставляется с инструментом анализа «что, если» (WIT),Может помочь нам понять классификацию черного ящика и модели регрессии. использовать этот инструмент,Может делать прогнозы по набору данных,и визуализировать результаты разными способами.

Вы также можете редактировать примеры вручную или программно, чтобы увидеть, как их изменение влияет на прогнозы модели.

хотетьиспользовать WIT необходимо предоставить модель и данные. Если вы хотите исследовать более глубоко, модель должна иметь классификацию, регрессию или прогнозирование. API из TensorFlow Serving Развертывать.

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

После завершения настройки перейдите в TensorBoard Dashboard и выберите из выпадающего меню в правом верхнем углу страницы What-If Tool параметры. Вы должны увидеть страницу, которая выглядит следующим образом:

Первое поле да предоставляет модель адреса вывода. Если существует, TensorFlow предоставляется локально. Serving ,этот Воляждать В localhost:port。还нуждатьсяхотетьвходить Модельимя、Необязательно в зависимости от версии модели и модели от подписи.

Введите путь к местоположению данных. Упоминалось выше TFRecord документ.

Наконец, нажмите кнопку «Принять», и мы перейдем на страницу результатов.

Каждая точка в наборе данных существует. соответствии с Они раскрашены по категориям. Вы можете группировать и группировать данные, создавать диаграммы рассеяния и по-разному раскрашивать точки данных.

Доступ к данным TensorBoard как к DataFrame

TensorBoard Главное — использовать В для визуализации данных из GUI инструмент. Но некоторые пользователи могут захотеть программно и TensorBoard Взаимодействуйте с данными, например с помощью пользовательских визуализаций и специального анализа. Так что все в порядке, Воля TensorBoard данные как DataFrame Доступ, чтобы вы могли существовать индивидуально из программы.

Этот API все еще находится на экспериментальной стадии, поэтому в последующих версиях могут быть серьезные изменения.

Нам просто нужно, чтобы Воля "logdir" загрузил в TensorBoard.dev Чтобы использовать эту функцию, нам нужны некоторые зависимости для этой части. Сначала необходимо подтвердить, что он установлен Панды. Также необходим способ визуализации данных. Часто используемые библиотеки Matplotlib и Seaborn。

TensorBoard.dev начальствоиз TensorBoard logdir называется экспериментом. Каждый эксперимент имеет уникальный ID, мы можем получить к нему доступ к данным программно.

Язык кода:javascript
копировать
# Change the experiment id to our own
experiment_id = "insert experiment ID here"

# Get the experiment using the id
experiment = tb.data.experimental.ExperimentFromDev(experiment_id)

# Save the scalars to a dataframe
df = experiment.get_scalars()

сейчассуществоватьdf есть все в наличии logdir данные.

сейчассуществовать Может Как и любой другой DataFrame Используйте его таким же образом для дальнейшего анализа.

Использование TensorBoard с PyTorch

PyTorch да Еще одно популярное среди исследователей углубленное обучениерамка。PyTorch Теперь существование также поддерживается Тензорная доска。

существоватьиспользовать TensorFlow час,использовать Summary API Создана запись данных Воли для logdir папкаизобъект。существоватьиспользовать PyTorch На этот раз чиновник также предоставил аналогичный API.

Язык кода:javascript
копировать
# Import the summary writer
from torch.utils.tensorboard import SummaryWriter# Create an instance of the object
writer = SummaryWriter()

Таким образом, вы можете использовать TensorFlow Лечатся таким же образом и таким же образом MNIST набор данных.

Язык кода:javascript
копировать
import torch
import torchvision
from torchvision import datasets, transforms

# Compose a set of transforms to use later on
transform = transforms.Compose([
    transforms.ToTensor(), 
    transforms.Normalize((0.5,), (0.5,))
])

# Load in the MNIST dataset
trainset = datasets.MNIST(
    'mnist_train', 
    train=True, 
    download=True, 
    transform=transform
)

# Create a data loader
trainloader = torch.utils.data.DataLoader(
    trainset, 
    batch_size=64, 
    shuffle=True
)

# Get a pre-trained ResNet18 model
model = torchvision.models.resnet18(False)

# Change the first layer to accept grayscale images
model.conv1 = torch.nn.Conv2d(1, 64, kernel_size=7, stride=2, padding=3, bias=False)

# Get the first batch from the data loader
images, labels = next(iter(trainloader))

# Write the data to TensorBoard
grid = torchvision.utils.make_grid(images)
writer.add_image('images', grid, 0)
writer.add_graph(model, images)
writer.close()

После запуска этой программы перейдите в TensorBoard и просмотреть сохранениеизвыход。

Получил ииспользовать TensorFlow Вывод аналогичен из.

Загружайте и делитесь результатами с помощью TensorBoard.dev

TensorBoard.dev да TensorBoard из Компонент, который позволяет нам размещать машинное оборудование в нашей существующей сети обучениерезультат。 Это подходящий инструмент для тех, кто хочет продемонстрировать свои результаты.

Вы можете загрузить его на TensorBoard.dev с помощью следующей команды из терминала или командной строки:

Язык кода:javascript
копировать
tensorboard dev upload --logdir {logs}

Пожалуйста, не загружайте конфиденциальные данные!

использовать Google После того, как учетная запись будет авторизована для загрузки, вы получите код. После ввода кода возвращается ссылка для загрузки. TensorBoard Вход по ссылке.

Теперь существующие могут поделиться этой ссылкой с кем угодно и позволить им увидеть нашу работу.

Ограничения использования TensorBoard

хотя TensorBoard поставляется со множеством инструментов для визуализации наших данных и моделей, но у него также есть свои ограничения.

1. Отсутствие управления пользователями

TensorBoard Не существует понятия пользователя, поскольку он существует и работает в единой среде. Также невозможно запускать несколько программ на одной машине. TensorBoard Пример,Итак, если мы работаем над несколькими проектами одновременно,использование может быть затруднительным.

2. Трудно работать в команде.

Аналогично вышеуказанным ограничениям, TensorBoard Экземпляры не могут быть разделены между другими пользователями. Если над одним проектом работают несколько человек, необходима централизованная панель управления, чтобы у каждого человека было отдельное рабочее пространство. Тензорборд Эта функция не поддерживается.

3. Не поддерживает контроль версий данных и моделей.

существуют При настройке модели или установке значений гиперпараметров,Нам нужно сохранить разные версии модели и данные обучения. Особенно при проведении экспериментов дасуществовать,Если вы хотите одновременно просматривать разные версии модели, TensorBoard не может пометить определенный запуск или набор данных как особенно важный.

4. Проблемы могут возникнуть при выполнении большого количества запусков.

TensorBoard Не учитывает большое количество последовательных запусков. Если вы продолжите запускать модель и неоднократно записывать данные, Воля столкнется с UI Проблемы, которые затрудняют использование интерфейса.

5. Визуальные видеофайлы и форматы неструктурированных данных не поддерживаются.

Некоторые типы данных не могут существовать TensorBoard в визуализации. Особенно часто используются видеоданные. Если работа предполагает моделирование таких данных, их сложно использовать. TensorBoard。

Подвести итог

В этой статье подробно представлены TensorBoard, который позволяет визуализировать машинное обучение Модельиз Набор инструментов для визуализации данных。В этой статье представленыTensorBoardВсе основные компоненты плюс новые.из Экспериментальные возможности,Например, предположим, что инструмент и компонент индикатора справедливости. Благодаря этим функциям,Уметь легко просматривать и отлаживать внутреннюю работу наших обученных моделей.,и в конечном итоге улучшить свою производительность.

Автор: Зито Релова

boy illustration
RasaGpt — платформа чат-ботов на основе Rasa и LLM.
boy illustration
Nomic Embed: воспроизводимая модель внедрения SOTA с открытым исходным кодом.
boy illustration
Улучшение YOLOv8: EMA основана на эффективном многомасштабном внимании, основанном на межпространственном обучении, и эффект лучше, чем у ECA, CBAM и CA. Малые цели имеют очевидные преимущества | ICASSP2023
boy illustration
Урок 1 серии Libtorch: Тензорная библиотека Silky C++
boy illustration
Руководство по локальному развертыванию Stable Diffusion: подробные шаги и анализ распространенных проблем
boy illustration
Полностью автоматический инструмент для работы с видео в один клик: VideoLingo
boy illustration
Улучшения оптимизации RT-DETR: облегченные улучшения магистрали | Support Paddle облегченный rtdetr-r18, rtdetr-r34, rtdetr-r50, rtdet
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | Деформируемое внимание с большим ядром (D-LKA Attention), большое ядро ​​​​свертки улучшает механизм внимания восприимчивых полей с различными функциями
boy illustration
Создано Datawhale: выпущено «Руководство по тонкой настройке развертывания большой модели GLM-4»!
boy illustration
7B превышает десятки миллиардов, aiXcoder-7B с открытым исходным кодом Пекинского университета — это самая мощная модель большого кода, лучший выбор для корпоративного развертывания.
boy illustration
Используйте модель Huggingface, чтобы заменить интерфейс внедрения OpenAI в китайской среде.
boy illustration
Оригинальные улучшения YOLOv8: несколько новых улучшений | Сохранение исходной информации — алгоритм отделяемой по глубине свертки (MDSConv) |
boy illustration
Второй пилот облачной разработки | Быстро поиграйте со средствами разработки на базе искусственного интеллекта
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция с нулевым кодированием и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
Решенная Ошибка | Загрузка PyTorch медленная: TimeoutError: [Errno 110] При загрузке факела истекло время ожидания — Cat Head Tiger
boy illustration
Brother OCR, библиотека с открытым исходным кодом для Python, которая распознает коды проверки.
boy illustration
Новейшее подробное руководство по загрузке и использованию последней демонстрационной версии набора данных COCO.
boy illustration
Выпущен отчет о крупной модели финансовой отрасли за 2023 год | Полный текст включен в загрузку |
boy illustration
Обычные компьютеры также могут работать с большими моделями, и вы можете получить личного помощника с искусственным интеллектом за три шага | Руководство для начинающих по локальному развертыванию LLaMA-3
boy illustration
Одной статьи достаточно для анализа фактора транскрипции SCENIC на Python (4)
boy illustration
Бросая вызов ограничениям производительности небольших видеокарт, он научит вас запускать большие модели глубокого обучения с ограниченными ресурсами, а также предоставит полное руководство по оценке и эффективному использованию памяти графического процессора!
boy illustration
Команда Fudan NLP опубликовала 80-страничный обзор крупномасштабных модельных агентов, в котором в одной статье представлен обзор текущего состояния и будущего агентов ИИ.
boy illustration
[Эксклюзив] Вы должны знать о новой функции JetBrains 2024.1 «Полнострочное завершение кода», чтобы решить вашу путаницу!
boy illustration
Краткое изложение базовых знаний о регистрации изображений 1.0
boy illustration
Новейшее подробное руководство по установке и использованию библиотеки cv2 (OpenCV, opencv-python) в Python.
boy illustration
Легко создайте локальную базу знаний для крупных моделей на основе Ollama+AnythingLLM.
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание решения. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Одна статья поможет вам понять RAG (Retrival Enhanced Generation) | Введение в концепцию и теорию + практику работы с кодом (включая исходный код).
boy illustration
Эволюция архитектуры шлюза облачной разработки
boy illustration
Docker и Kubernetes [Разработка контейнерных приложений с помощью Python]