tensorflow 使用云TPU节点对预测调用进行Tensorboard分析

xj3cbfub  于 2022-12-13  发布在  其他
关注(0)|答案(2)|浏览(168)

我一直在尝试使用Cloud TPU v2-8节点分析自定义NN模型的预测调用。
必须指出的是,我的预测调用大约需要2分钟才能完成,而且我使用的是按TFRecord批划分的数据。
我按照官方文档“Profile your model with Cloud TPU Tools“,尝试捕获一个配置文件:
1.使用Tensorboard UI和
1.“编程方式”,用tf.profiler.experimental.start()和tf. profiler. experimental.stop() Package 预测调用,但我在这两种情况下都没有成功。

# TPU Node connection is done before...

# TPU at this point is already running
logdir_path = "logs/predict"
tf.profiler.experimental.start(logdir_path)
# Tensorflow predict call here
tf.profiler.experimental.stop()

我可以在这两种情况下生成一些数据(Tensorboard UI和Profiler调用),但当我尝试在Tensorboard中打开它并指向logdir路径时,我收到了“当前数据集没有处于活动状态的 Jmeter 板”消息。

是否有任何方法可以使用在云TPU节点中运行的模型分析Tensorflow/Keras预测调用?
奇怪的事实-Tensorflow文档和云TPU文档中似乎存在不一致之处:在Tensorflow优化文档中,我们可以看到TPU硬件不支持tf.profiler.experimental.start/stop调用,但在Google云文档中,这是在TPU中捕获配置文件的推荐方法。

设定:

  • tensorflow 2.6.1
  • 张紧板2.9.1
  • Python 3.8语言
  • 云TPU节点v2-8
vhmi4jdf

vhmi4jdf1#

1.请检查日志目录中的跟踪文件。如果这些文件太小,很可能是在跟踪过程中遇到了一些问题。
1.只需确保您键入了正确的命令。$ tensorboard --logdir logs/predict
1.使用tf.profiler.experimental.client.start(...)尝试另一种分析方法,如TF分析器Docs所示。

import tensorflow as tf
from threading import Thread

def call_trace(tpu_resolver):  # This should be called asynchronously
  # a profiler service has been started in the TPU worker at port 8466
  service_addr = ":".join(tpu_resolver.get_master().split(":")[:-1] +
                          ["8466"])  # need to change for TPU pod
  tf.profiler.experimental.client.trace(service_addr=service_addr,
                                        logdir="gs://your_logdir",
                                        duration_ms=5000)

tpu_resolver = tf.distribute.cluster_resolver.TPUClusterResolver(...)
# Other initialization codes

thr = Thread(target=call_trace, args=(tpu_resolver,))
thr.start()
# Codes you want to execute on the cloud TPU node
thr.join()

然后打开tensorboard进行可视化。

$ tensorboard --logdir gs://your_logdir
smdnsysy

smdnsysy2#

对于TPU节点架构,您也可以尝试使用cloud-tpu-profiler

pip3 install --upgrade "cloud-tpu-profiler>=2.3.0"

然后使用以下命令捕获配置文件

capture_tpu_profile --tpu=$TPU_NAME --logdir=${MODEL_DIR} --duration_ms=2000 --num_tracing_attempts=10

详情请参阅此处。
TPU VM是推荐的TPU体系结构,您可以在使用TPU VM时遵循Profile TPU VM guide

相关问题