Ошибка импорта Tensorboard в keras.callbacks - PullRequest
1 голос
/ 02 февраля 2020

Я слежу за видео sentdex в Neural Networks с Keras.

Моя версия тензорного потока - 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])

Ошибка :

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)

1 Ответ

2 голосов
/ 03 февраля 2020

Если вы заметили, вы импортируете Tensorboard (с маленькой буквой 'b'):

from tensorflow.keras.callbacks import Tensorboard

, но при создании обратного вызова вы используете TensorBoard (с заглавная 'B'):

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

Итак, вам нужно импортировать TensorBoard (с заглавной буквой B) следующим образом:

from tensorflow.keras.callbacks import TensorBoard

Ниже приведен скриншот, на котором показано такое же исправление:

enter image description here

Надеюсь, это поможет! :)

...