Ошибка TF / Keras: InputLayer не является контрольной точкой

Я пробую недавно добавленную поддержку TPU в Google Colab с простым набором данных кошек против собак.

После создания простой CNN я попытался экспортировать модель в TPU. Но это не удалось с ошибкой

TypeError: Checkpointable._track_checkpointable() passed type <class 'keras.engine.topology.InputLayer'>, not a Checkpointable.

Вот код, который я написал на Colab.

model = models.Sequential()
model.add(layers.Conv2D(32, (3,3), activation='relu', input_shape=(150, 150, 3)))
model.add(layers.MaxPooling2D((2,2)))
model.add(layers.Conv2D(64, (3,3), activation='relu'))
model.add(layers.MaxPooling2D((2,2)))
model.add(layers.Flatten())
model.add(layers.Dropout(0.5))
model.add(layers.Dense(512, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))
model.summary()

train_datagen = ImageDataGenerator(rescale=1./255)

train_generator = train_datagen.flow_from_directory(train_dir, target_size=(150,150), batch_size=20, class_mode='binary')

tpu_model = tf.contrib.tpu.keras_to_tpu_model(model, strategy=tf.contrib.tpu.TPUDistributionStrategy(tf.contrib.cluster_resolver.TPUClusterResolver(tpu="grpc://" + os.environ['COLAB_TPU_ADDR'])))

Полагаю, я делаю что-то не так в train_generator. Но я не уверен, что это такое. Любая помощь будет высоко ценится.


person Mahendra Kariya    schedule 07.10.2018    source источник


Ответы (1)


Если вы используете или импортируете layers из Keras вместо TensorFlow следующим образом:

from keras import layers,models
from keras.preprocessing.image import ImageDataGenerator
import tensorflow as tf

Вы получите ошибку, как вы упомянули выше:

TypeError: Checkpointable._track_checkpointable() passed type <class 'keras.engine.topology.InputLayer'>, not a Checkpointable.

Итак, вы можете импортировать layers прямо из TensorFlow, как мой код ниже:

from tensorflow.keras import layers,models
from keras.preprocessing.image import ImageDataGenerator
import tensorflow as tf

или вы можете увидеть мой полный код здесь: https://gist.github.com/ilmimris/8218e<397dd35ab693404c574db/ >

person Muhammad Rafiul Ilmi S    schedule 08.10.2018