使用 Tensorflow 代理进行 TensorBoard GPU 分析

TensorBoard GPU profiling with Tensorflow Agents

我想在 tensorflow/agents, but I cannot figure out how. Specifically I am trying to profile my GPU when running this example 训练代理时分析我的 GPU 使用情况。

似乎 TensorBoard 分析器需要像这样使用 TensorBoard 回调:

# Create a TensorBoard callback
logs = "logs/" + datetime.now().strftime("%Y%m%d-%H%M%S")

tboard_callback = tf.keras.callbacks.TensorBoard(log_dir = logs,
                                                 histogram_freq = 1,
                                                 profile_batch = '500,520')

model.fit(ds_train,
          epochs=2,
          validation_data=ds_test,
          callbacks = [tboard_callback])

然而,在训练 TF 代理时没有 fit 方法被调用。他们使用不接受 callbacks 参数的 train 方法进行训练,可见 here.

在从 Tensorflow Agents 库训练代理时,是否有其他方法让 TensorBoard 分析器工作?

您可以使用 tf.profiler 模块,这是 TensorBoard 回调所做的 under the hood

您链接的代理示例使用自定义训练循环,一种可能是这样使用探查器:

# to customize based on the number of steps you want to profile 
start_profiling_step = 50
stop_profiling_step = 100
profiling_log_dir = "./profile_logs"
while global_step_val < num_iterations:
  # rest of the training code
  # ...
  if global_step_val == start_profiling_step:
    tf.profiler.experimental.start(logdir=profiling_log_dir)
  if global_step_val == stop_profiling_step:
    tf.profiler.experimental.stop(save=True)

您可以查看 documentation of the tf.profiler module 了解更多信息。