【问题标题】:Visualizing a Keras Model with Tensorboard in Tensorflow 2.0在 Tensorflow 2.0 中使用 Tensorboard 可视化 Keras 模型
【发布时间】:2020-01-26 12:15:27
【问题描述】:

我正在学习使用带有 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.x tensorflow keras tensorboard graph-visualization


    【解决方案1】:

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

    在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

    【讨论】:

    • 谢谢,但我遇到了例外情况。查看我更新的帖子。
    • 对于 jupyter notebook,你必须加载 tensorboard 扩展,请查看更新的答案。
    • 关于异常,你在正确的tensorflow环境吗?您的软件包是安装在 Anaconda 的基础环境中还是其他环境中?
    • 我想我通过更新 tensorboard 克服了这个问题。我还有一些问题,但我会开一个新帖子。完成后我会在这里提及。感谢您的帮助。
    猜你喜欢
    • 2019-08-04
    • 1970-01-01
    • 2019-08-30
    • 2019-04-20
    • 2020-03-15
    • 2020-08-28
    • 2017-05-30
    • 1970-01-01
    • 2018-09-16
    相关资源
    最近更新 更多