【问题标题】:Can not install TensorBoard as Keras callback无法将 TensorBoard 安装为 Keras 回调
【发布时间】:2021-06-01 03:40:12
【问题描述】:

尝试创建 TB 回调时出现以下错误。

我在 MacOS 10.15.7 的 Jupiter 笔记本中的 Keras 顺序模型中使用 PlaidML Keras 2.2.4 版,& TensorFlow 2.4.1

import plaidml.keras
plaidml.keras.install_backend()
import os
os.environ['KERAS_BACKEND'] = 'plaidml.keras.backend'

import keras
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
from keras import backend as K

import numpy as np
import pathlib
import PIL
import PIL.Image

# tensorflow for TensorBoard
import tensorflow

logs_dir = '/Users/x/TensorFlowFolder/logs'
from keras.callbacks import TensorBoard

callbacks_list = [
    keras.callbacks.EarlyStopping(
        monitor='val_loss',
        patience=2,
    ),
    keras.callbacks.ModelCheckpoint(
        'best_modelFour.h5', 
        monitor='val_loss', 
        verbose=1, 
        save_best_only=True
    ),
    keras.callbacks.TensorBoard(
        log_dir=logs_dir,
        histogram_freq=0,
        write_graph=True, write_images=True
    )
]

错误链是

> ModuleNotFoundError                       Traceback (most recent call
> last) ~/opt/anaconda3/lib/python3.8/site-packages/keras/callbacks.py
> in __init__(self, log_dir, histogram_freq, batch_size, write_graph,
> write_grads, write_images, embeddings_freq, embeddings_layer_names,
> embeddings_metadata, embeddings_data, update_freq)
>     744             import tensorflow as tf
> --> 745             from tensorflow.contrib.tensorboard.plugins import projector
>     746         except ImportError:
> 
> ModuleNotFoundError: No module named 'tensorflow.contrib'
> 
> During handling of the above exception, another exception occurred:
> 
> ImportError                               Traceback (most recent call
> last) <ipython-input-4-93b8c44b3056> in <module>
>      15         save_best_only=True
>      16     ),
> ---> 17     keras.callbacks.TensorBoard(
>      18         log_dir=logs_dir,
>      19         histogram_freq=0,
> 
> ~/opt/anaconda3/lib/python3.8/site-packages/keras/callbacks.py in
> __init__(self, log_dir, histogram_freq, batch_size, write_graph, write_grads, write_images, embeddings_freq, embeddings_layer_names,
> embeddings_metadata, embeddings_data, update_freq)
>     745             from tensorflow.contrib.tensorboard.plugins import projector
>     746         except ImportError:
> --> 747             raise ImportError('You need the TensorFlow module installed to '
>     748                               'use TensorBoard.')
>     749 
> 
> ImportError: You need the TensorFlow module installed to use
> TensorBoard.

TensorBoard 显然正在尝试从 TensorFlow.contrib 获取模块 Projector。 TensorFlow.contrib 显然已经从 TensorFlow 中删除了一段时间。由于 TF 已成功安装,第二个错误似乎是虚假的。我想如果这真的破坏了 TensorBoard 会引起很大的轰动,那我做错了什么?

【问题讨论】:

  • 建议使用 tf.keras 代替 keras 包。这样版本总是排成一行

标签: tensorflow keras tensorboard


【解决方案1】:

Keras 2.2 不支持 TensorFlow 2。摘自release of the 2.2.5

Keras 2.2.5 是实现 2.2.* API 的最后一个 Keras 版本。这是最后一个仅支持 TensorFlow 1(以及 Theano 和 CNTK)的版本。

将您的 TensorFlow 版本降级到 1.15。

【讨论】:

  • 本项目的首要任务是使用 GPU 加速进行训练。我发现我的 MacBook Pro 上的 Radeon 5500 流量提升了 10-20 倍。那么,当使用 GPU 加速和不支持 tf.keras,仅支持“独立”Keras 的 PlaidML 时,如何使用 TensorBoard?我们是否受限于等待英特尔将 Plaid 迁移到 TF.Keras 框架??
  • 可以使用tensorboard,只需安装TF1.x和兼容版本的Tensorboard即可。或者您可以等待英特尔假设性地添加对 TF2 的支持。
猜你喜欢
  • 2017-06-26
  • 1970-01-01
  • 1970-01-01
  • 2017-11-05
  • 2017-04-18
  • 2019-02-01
  • 2022-01-19
  • 2017-02-17
  • 1970-01-01
相关资源
最近更新 更多