首页 > 解决方案 > 在 Tensorflow 2.0 中使用 Tensorboard 可视化 Keras 模型

问题描述

我正在学习使用带有 Tensorflow 2.0 的 Tensorboard 可视化 Keras 模型

对于一个可重现的例子:

inputs = Input(shape = (train_data.shape[1], ))
x1 = Dense(100, kernel_initializer = 'he_normal', activation = 'elu')(inputs)
x1a = Dropout(0.5)(x1)
x2 = Dense(100, kernel_initializer = 'he_normal', activation = 'elu')(x1a)
x2a = Dropout(0.5)(x2)
x3 = Dense(100, kernel_initializer = 'he_normal', activation = 'elu')(x2a)
x3a = Dropout(0.5)(x3)
x4 = Dense(100, kernel_initializer = 'he_normal', activation = 'elu')(x3a)
x4a = Dropout(0.5)(x4)
x5 = Dense(100, kernel_initializer = 'he_normal', activation = 'elu')(x4a)
predictions = Dense(1)(x5)
model = Model(inputs = inputs, outputs = predictions)

@tf.function
def traceme(x):
    return model(x)


logdir = "log"
writer = tf.summary.create_file_writer(logdir)
tf.summary.trace_on(graph=True, profiler=True)
# Forward pass
traceme(tf.zeros((1, train_data.shape[1])))
with writer.as_default():
    tf.summary.trace_export(name="model_trace", step=0, profiler_outdir=logdir)

我怎样才能从这一点着手来获得可视化?


当我从 Jupyter Notebook 运行命令时,我收到一条错误消息:

%load_ext tensorboard.notebook
%tensorboard --logdir logs

ERROR: Failed to launch TensorBoard (exited with 1).
Contents of stderr:
c:\program files (x86)\microsoft visual studio\shared\anaconda3_64\lib\site-packages\h5py\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
  from ._conv import register_converters as _register_converters
Traceback (most recent call last):
  File "c:\program files (x86)\microsoft visual studio\shared\anaconda3_64\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\program files (x86)\microsoft visual studio\shared\anaconda3_64\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\Scripts\tensorboard.exe\__main__.py", line 5, in <module>
  File "c:\program files (x86)\microsoft visual studio\shared\anaconda3_64\lib\site-packages\tensorboard\main.py", line 44, in <module>
    from tensorboard import default
  File "c:\program files (x86)\microsoft visual studio\shared\anaconda3_64\lib\site-packages\tensorboard\default.py", line 36, in <module>
    from tensorboard.plugins.beholder import beholder_plugin
  File "c:\program files (x86)\microsoft visual studio\shared\anaconda3_64\lib\site-packages\tensorboard\plugins\beholder\__init__.py", line 15, in <module>
    from tensorboard.plugins.beholder.beholder import Beholder
  File "c:\program files (x86)\microsoft visual studio\shared\anaconda3_64\lib\site-packages\tensorboard\plugins\beholder\beholder.py", line 199, in <module>
    class BeholderHook(tf.estimator.SessionRunHook):
AttributeError: module 'tensorflow' has no attribute 'estimator'

当我再次从终端窗口运行它时,出现异常:

在此处输入图像描述

(base) C:\WINDOWS\system32>tensorboard --logdir log
c:\program files (x86)\microsoft visual studio\shared\anaconda3_64\lib\site-packages\h5py\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
  from ._conv import register_converters as _register_converters
Traceback (most recent call last):
  File "c:\program files (x86)\microsoft visual studio\shared\anaconda3_64\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\program files (x86)\microsoft visual studio\shared\anaconda3_64\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\Scripts\tensorboard.exe\__main__.py", line 5, in <module>
  File "c:\program files (x86)\microsoft visual studio\shared\anaconda3_64\lib\site-packages\tensorboard\main.py", line 44, in <module>
    from tensorboard import default
  File "c:\program files (x86)\microsoft visual studio\shared\anaconda3_64\lib\site-packages\tensorboard\default.py", line 36, in <module>
    from tensorboard.plugins.beholder import beholder_plugin
  File "c:\program files (x86)\microsoft visual studio\shared\anaconda3_64\lib\site-packages\tensorboard\plugins\beholder\__init__.py", line 15, in <module>
    from tensorboard.plugins.beholder.beholder import Beholder
  File "c:\program files (x86)\microsoft visual studio\shared\anaconda3_64\lib\site-packages\tensorboard\plugins\beholder\beholder.py", line 199, in <module>
    class BeholderHook(tf.estimator.SessionRunHook):
AttributeError: module 'tensorflow' has no attribute 'estimator'

标签: python-3.xtensorflowkerastensorboardgraph-visualization

解决方案


你能告诉我如何从这一点着手来获得可视化吗?

在 jupyter 笔记本中,

# Load the TensorBoard notebook extension.
%load_ext tensorboard

%tensorboard --logdir log

https://www.tensorflow.org/tensorboard/r2/graphs#graphs_of_tffunctions

您也可以通过运行此命令从终端执行此操作,

tensorboard --logdir log

'localhost:6006'并从网络浏览器打开。

如果 Anaconda 环境正确,请查看此链接以获取解决异常的方法:https ://github.com/tensorflow/tensorboard/issues/2067#issuecomment-478140779


推荐阅读