tensorboard ModuleNotFoundError при инициализации функции

Несмотря на то, что я пытался инициализировать Tensorboard несколькими способами — from tensorflow.keras.callbacks import TensorBoard , from keras.callbacks import TensorBoard , atd. при инициализации прямо перед функцией model.fit я всегда получаю ModuleNotFoundError или подобное.

Я пробовал несколько разных каталогов для журналов Tensorboard, несколько способов инициализации через слой Keras.

import tensorflow as tf
#sess = tf.Session()
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
# more info on callbakcs: https://keras.io/callbacks/ model saver is cool too.
#from tensorflow.keras.callbacks import TensorBoard
from keras.callbacks import TensorBoard
import pickle
import time

NAME = "Cats-vs-dogs-CNN"

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(Dense(1))
model.add(Activation('sigmoid'))


model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=['accuracy'],
              )

tensor_board = TensorBoard(log_dir='./Graph', histogram_freq=0, write_graph=True, write_images=True)

model.fit(X, y,
          batch_size=16,
          epochs=1,
          validation_split=0.3,
          callbacks=[tensor_board])

Он основан на учебнике https://pythonprogramming.net/tensorboard-analysis-deep-learning-python-tensorflow-keras/?completed=/convolutional-neural-network-deep-learning-python-tensorflow-keras./ Исходный код был написан так:

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

model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=['accuracy'],
              )

model.fit(X, y,
          batch_size=32,
          epochs=10,
          validation_split=0.3,
          callbacks=[tensorboard])

Но я получал сообщение об ошибке, что callbacks=[tensorboard]) не найден, поэтому я сделал вывод, что это потому, что я использую Tensorflow2.0, и это основано на версии r1.


person DaveOshiCZ    schedule 10.07.2019    source источник


Ответы (1)


Дэйв,

Вы должны использовать

  tensorflow.keras.callbacks.TensorBoard

вы используете непосредственно keras api, например, вы пытаетесь использовать два разных API.

Пожалуйста, попробуйте следовать документации tf 2.0 API, она работает хорошо.

https://www.tensorflow.org/tensorboard/r2/get_started

person Yassine Zaïbi    schedule 10.07.2019
comment
Привет, Яссин, я уже пробовал это, я оставил это там в комментариях, так что это показывает, что я пробовал и не работает :/ - person DaveOshiCZ; 11.07.2019