[英]ImportError: TensorBoard
我在 Anaconda 環境中使用 Python(jupyter notebook)
操作系統:Ubuntu Tensorflow 版本:1.14.0 Python 版本:3.6
https://github.com/tensorflow/tensorboard/issues/1425這是同樣的問題,但答案沒有幫助。 除了嘗試重新安裝 Tensorflow 之外,是否有解決此問題的方法? 還是我應該升級我的 tensorflow 版本?
from keras.callbacks import TensorBoard
tensorboard = TensorBoard(log_dir='graph_1', histogram_freq=0,
batch_size=512, write_graph=True, write_grads=False,
write_images=False, embeddings_freq=0, embeddings_layer_names=None,
embeddings_metadata=None, embeddings_data=None, update_freq='epoch')
拋出一個錯誤,如:
ImportError Traceback (most recent call last)
~/anaconda3/lib/python3.6/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:
~/anaconda3/lib/python3.6/site-packages/tensorflow/contrib/__init__.py in <module>
40 from tensorflow.contrib import distribute
---> 41 from tensorflow.contrib import distributions
42 from tensorflow.contrib import estimator
~/anaconda3/lib/python3.6/site-packages/tensorflow/contrib/distributions/__init__.py in <module>
43 from tensorflow.contrib.distributions.python.ops.distribution_util import tridiag
---> 44 from tensorflow.contrib.distributions.python.ops.estimator import *
45 from tensorflow.contrib.distributions.python.ops.geometric import *
~/anaconda3/lib/python3.6/site-packages/tensorflow/contrib/distributions/python/ops/estimator.py in <module>
20
---> 21 from tensorflow.contrib.learn.python.learn.estimators.head import _compute_weighted_loss
22 from tensorflow.contrib.learn.python.learn.estimators.head import _RegressionHead
~/anaconda3/lib/python3.6/site-packages/tensorflow/contrib/learn/__init__.py in <module>
92 # pylint: disable=wildcard-import
---> 93 from tensorflow.contrib.learn.python.learn import *
94 # pylint: enable=wildcard-import
~/anaconda3/lib/python3.6/site-packages/tensorflow/contrib/learn/python/__init__.py in <module>
27 # pylint: disable=wildcard-import
---> 28 from tensorflow.contrib.learn.python.learn import *
29 # pylint: enable=wildcard-import
~/anaconda3/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/__init__.py in <module>
29 from tensorflow.contrib.learn.python.learn import datasets
---> 30 from tensorflow.contrib.learn.python.learn import estimators
31 from tensorflow.contrib.learn.python.learn import graph_actions
~/anaconda3/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/estimators/__init__.py in <module>
301 from tensorflow.contrib.learn.python.learn.estimators.constants import ProblemType
--> 302 from tensorflow.contrib.learn.python.learn.estimators.dnn import DNNClassifier
303 from tensorflow.contrib.learn.python.learn.estimators.dnn import DNNEstimator
~/anaconda3/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/estimators/dnn.py in <module>
33 from tensorflow.contrib.learn.python.learn import metric_spec
---> 34 from tensorflow.contrib.learn.python.learn.estimators import dnn_linear_combined
35 from tensorflow.contrib.learn.python.learn.estimators import estimator
~/anaconda3/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/estimators/dnn_linear_combined.py in <module>
35 from tensorflow.contrib.learn.python.learn import metric_spec
---> 36 from tensorflow.contrib.learn.python.learn.estimators import estimator
37 from tensorflow.contrib.learn.python.learn.estimators import head as head_lib
~/anaconda3/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.py in <module>
51 from tensorflow.contrib.learn.python.learn.estimators._sklearn import NotFittedError
---> 52 from tensorflow.contrib.learn.python.learn.learn_io import data_feeder
53 from tensorflow.contrib.learn.python.learn.utils import export
~/anaconda3/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/learn_io/__init__.py in <module>
36 from tensorflow.contrib.learn.python.learn.learn_io.graph_io import read_keyed_batch_features_shared_queue
---> 37 from tensorflow.contrib.learn.python.learn.learn_io.numpy_io import numpy_input_fn
38 from tensorflow.contrib.learn.python.learn.learn_io.pandas_io import extract_pandas_data
~/anaconda3/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/learn_io/numpy_io.py in <module>
25
---> 26 from tensorflow.python.estimator.inputs.numpy_io import numpy_input_fn as core_numpy_input_fn
27 from tensorflow.python.util.deprecation import deprecated
~/anaconda3/lib/python3.6/site-packages/tensorflow/python/estimator/inputs/numpy_io.py in <module>
25
---> 26 from tensorflow_estimator.python.estimator.inputs import numpy_io
27
~/anaconda3/lib/python3.6/site-packages/tensorflow_estimator/python/estimator/inputs/numpy_io.py in <module>
25
---> 26 from tensorflow_estimator.python.estimator.inputs.queues import feeding_functions
27 from tensorflow.python.util.tf_export import estimator_export
~/anaconda3/lib/python3.6/site-packages/tensorflow_estimator/__init__.py in <module>
9
---> 10 from tensorflow_estimator._api.v2 import estimator
11 _names_with_underscore = []
~/anaconda3/lib/python3.6/site-packages/tensorflow_estimator/_api/v2/estimator/__init__.py in <module>
9
---> 10 from tensorflow_estimator._api.v2.estimator import experimental
11 from tensorflow_estimator._api.v2.estimator import export
~/anaconda3/lib/python3.6/site-packages/tensorflow_estimator/_api/v2/estimator/experimental/__init__.py in <module>
10 from tensorflow_estimator.python.estimator.canned.linear import LinearSDCA
---> 11 from tensorflow_estimator.python.estimator.canned.rnn import RNNClassifier
12 from tensorflow_estimator.python.estimator.canned.rnn import RNNEstimator
~/anaconda3/lib/python3.6/site-packages/tensorflow_estimator/python/estimator/canned/rnn.py in <module>
22
---> 23 from tensorflow.python.feature_column import dense_features
24 from tensorflow.python.feature_column import feature_column_lib as fc
ImportError: cannot import name 'dense_features'
During handling of the above exception, another exception occurred:
ImportError Traceback (most recent call last)
<ipython-input-83-0d8f7236c1d1> in <module>
16 reduce_lr_1 = ReduceLROnPlateau(monitor = 'val_loss', factor = 0.2, patience = 1, verbose = 1, min_delta = 0.0001)
17
---> 18 tensorboard_1 = TensorBoard(log_dir='graph_1', histogram_freq=0, batch_size=512, write_graph=True, write_grads=False, write_images=False, embeddings_freq=0, embeddings_layer_names=None, embeddings_metadata=None, embeddings_data=None, update_freq='epoch')
19
20 callbacks_1 = [checkpoint_1,earlystop_1,tensorboard_1,reduce_lr_1]
~/anaconda3/lib/python3.6/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.
由於錯誤明確指出ImportError: You need the TensorFlow module installed to use TensorBoard
。
您當前的 Tensorflow (TF=1.14.0) 安裝似乎存在問題。
要求您升級最新版本的 Tensorflow (TF 2.2.0) 如下
pip install tensorflow==2.2.0
#OR
pip install --upgrade tensorflow
我在 Jupyter Notebook 中使用TF 2.2.0
為 TensorBoard 啟用了可視化,如下所示
tf.keras.callbacks.TensorBoard
這是可視化模型精度和損失的完整工作代碼,如下所示
%load_ext tensorboard
import tensorflow as tf
import datetime, os
fashion_mnist = tf.keras.datasets.fashion_mnist
(x_train, y_train),(x_test, y_test) = fashion_mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
def create_model():
return tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(512, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
])
def train_model():
model = create_model()
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
logdir = os.path.join("logs", datetime.datetime.now().strftime("%Y%m%d-%H%M%S"))
tensorboard_callback = tf.keras.callbacks.TensorBoard(logdir, histogram_freq=1)
model.fit(x=x_train,
y=y_train,
epochs=5,
validation_data=(x_test, y_test),
callbacks=[tensorboard_callback])
train_model()
%tensorboard --logdir logs
輸出:
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-labels-idx1-ubyte.gz
32768/29515 [=================================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-images-idx3-ubyte.gz
26427392/26421880 [==============================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-labels-idx1-ubyte.gz
8192/5148 [===============================================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-images-idx3-ubyte.gz
4423680/4422102 [==============================] - 0s 0us/step
Epoch 1/5
1875/1875 [==============================] - 8s 4ms/step - loss: 0.4957 - accuracy: 0.8237 - val_loss: 0.4407 - val_accuracy: 0.8385
Epoch 2/5
1875/1875 [==============================] - 8s 4ms/step - loss: 0.3816 - accuracy: 0.8608 - val_loss: 0.3885 - val_accuracy: 0.8613
Epoch 3/5
1875/1875 [==============================] - 8s 4ms/step - loss: 0.3503 - accuracy: 0.8717 - val_loss: 0.3683 - val_accuracy: 0.8661
Epoch 4/5
1875/1875 [==============================] - 8s 4ms/step - loss: 0.3255 - accuracy: 0.8804 - val_loss: 0.3495 - val_accuracy: 0.8719
Epoch 5/5
1875/1875 [==============================] - 8s 4ms/step - loss: 0.3137 - accuracy: 0.8850 - val_loss: 0.3532 - val_accuracy: 0.8716
對於 Jupyter 用戶:如果您已將 Jupyter 和 TensorBoard 安裝到同一個 virtualenv 中,那么您應該很高興。 如果您使用更復雜的設置,例如全局 Jupyter 安裝和不同 Conda/virtualenv 環境的內核,那么您必須確保 tensorboard 二進制文件位於 Jupyter notebook 上下文中的 PATH 中。 執行此操作的一種方法是修改 kernel_spec 以將環境的 bin 目錄添加到 PATH,如此處所述。
欲了解更多詳情,請參閱此處
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.