简体   繁体   English

keras.callbacks 中的张量板导入错误

[英]Tensorboard import error in keras.callbacks

I'm following sentdex's video on Neural Networks with Keras.我正在使用 Keras 关注 sentdex 在神经网络上的视频。

My tensorflow version is 2.0.0.我的 tensorflow 版本是 2.0.0。

I'm on Windows 10 and running this code in an Anaconda Jupyter environment.我在 Windows 10 上并在 Anaconda Jupyter 环境中运行此代码。

I have tried searching up or this error but I have got no results.我已经尝试搜索或此错误,但我没有得到任何结果。

Code :代码

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])

Error :错误

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)

If you notice, you're importing Tensorboard (with a small 'b'):如果您注意到,您正在导入Tensorboard (带有一个小“b”):

from tensorflow.keras.callbacks import Tensorboard

but when you're creating the callback, you're using TensorBoard (with a capital 'B'):但是当您创建回调时,您使用的是TensorBoard (带有大写TensorBoard “B”):

tensorboard = TensorBoard(log_dir="logs/{}".format(NAME))

So, you need to import TensorBoard (with a capital 'B') as follows:因此,您需要按如下方式导入TensorBoard (大写TensorBoard “B”):

from tensorflow.keras.callbacks import TensorBoard

Below's a screenshot that shows the same correction:以下是显示相同更正的屏幕截图:

在此处输入图片说明

Hope this helps!希望这可以帮助! :) :)

Try using: from keras.callbacks import TensorBoard.尝试使用:从 keras.callbacks 导入 TensorBoard。 Hope this will surely work.希望这肯定会奏效。

Screenshot of my notebook: Notebook for reference我的笔记本截图:供参考的笔记本

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM