MUS*_*055 1 python importerror keras tensorflow tensorboard
我正在使用 Keras 关注神经网络上的 senddex 视频。
我的 tensorflow 版本是 2.0.0。
我在 Windows 10 上并在 Anaconda Jupyter 环境中运行此代码。
我试过搜索或这个错误,但我没有得到任何结果。
代码:
import tensorflow as tf
from tensorflow.keras.datasets import cifar10
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten
from tensorflow.keras.layers import Conv2D, MaxPooling2D
from tensorflow.keras.callbacks import Tensorboard
import pickle
import numpy as np
import os
import time
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
NAME = "CATS-VS-DOGS-CNN-{}".format(int(time.time()))
tensorboard = TensorBoard(log_dir="logs/{}".format(NAME))
pickle_in = open("X.pickle","rb")
X = pickle.load(pickle_in)
pickle_in = open("y.pickle","rb")
y = pickle.load(pickle_in)
X = X/255.0
model = Sequential()
model.add(Conv2D(256, (3, 3), input_shape=X.shape[1:]))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(256, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten()) # this converts our 3D feature maps to 1D feature vectors
model.add(Dense(64))
model.add(Activation('relu'))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=['accuracy'])
model.fit(X, y, batch_size=8, epochs=10, validation_split=0.3, callbacks = [tensorboard])
Run Code Online (Sandbox Code Playgroud)
错误:
ImportError Traceback (most recent call last)
<ipython-input-2-a32bf5fe83d7> in <module>
5 from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten
6 from tensorflow.keras.layers import Conv2D, MaxPooling2D
----> 7 from tensorflow.keras.callbacks import Tensorboard
8
9 import pickle
ImportError: cannot import name 'Tensorboard' from 'tensorflow.keras.callbacks' (C:\Users\anves\Anaconda3\lib\site-packages\tensorflow_core\python\keras\api\_v2\keras\callbacks\__init__.py)
Run Code Online (Sandbox Code Playgroud)
如果您注意到,您正在导入Tensorboard
(带有一个小的“b”):
from tensorflow.keras.callbacks import Tensorboard
Run Code Online (Sandbox Code Playgroud)
但是当您创建回调时,您正在使用TensorBoard
(带有大写的“B”):
tensorboard = TensorBoard(log_dir="logs/{}".format(NAME))
Run Code Online (Sandbox Code Playgroud)
因此,您需要TensorBoard
按如下方式导入(使用大写字母“B”):
from tensorflow.keras.callbacks import TensorBoard
Run Code Online (Sandbox Code Playgroud)
以下是显示相同更正的屏幕截图:
希望这可以帮助!:)