Я пытаюсь использовать TPU в Google Colab. Я следовал руководству Официальное руководство по тензорному потоку, чтобы использовать tpu следующим образом:
resolver = tf.distribute.cluster_resolver.TPUClusterResolver(tpu='grpc://' + os.environ['COLAB_TPU_ADDR'])
tf.config.experimental_connect_to_host(resolver.master())
tf.tpu.experimental.initialize_tpu_system(resolver)
strategy = tf.distribute.experimental.TPUStrategy(resolver)
def SuperResolution(input_dim):
layers = []
layers.append(tf.keras.layers.Conv3DTranspose(filters = 64, kernel_size = (4, 4, 4), strides = 2, padding = 'same', input_shape = input_dim+(1,)))
layers.append(tf.keras.layers.BatchNormalization())
layers.append(tf.keras.layers.LeakyReLU())
for i in range(5):
layers.append(tf.keras.layers.Conv3D(filters = 64, kernel_size = (3, 3, 3), padding = 'same'))
layers.append(tf.keras.layers.BatchNormalization())
layers.append(tf.keras.layers.LeakyReLU())
layers.append(tf.keras.layers.Conv3D(filters = 1, kernel_size = 3, padding = 'same', activation = 'tanh'))
model = tf.keras.models.Sequential(layers)
return model
with strategy.scope():
superres = SuperResolution((44, 64, 64))
superres.compile(loss = tf.keras.losses.MeanSquaredError(), optimizer = tf.keras.optimizers.Adam())
dataset = tf.data.Dataset.from_tensor_slices((Dataset64.reshape(len(Dataset64), 44, 64, 64, 1), Dataset128.reshape(len(Dataset128), 88, 128, 128, 1)))
dataset = dataset.shuffle(10).batch(1)
superres.fit(dataset, epochs = 10)
Когда я запускаю superres.fit(dataset, epochs = 10)
, я получаю следующее ошибка
NotFoundError: FetchOutputs node : not found [Op:AutoShardDataset]
Пожалуйста, помогите
Ссылка на colab: Colab