Обучение в режиме временных рядов тензорного потока: только один входной размер может быть -1, а не 0 и 1 одновременно.Python

Программы на Python
Anonymous
Обучение в режиме временных рядов тензорного потока: только один входной размер может быть -1, а не 0 и 1 одновременно.

Сообщение Anonymous »

Я пытался выполнить учебное пособие по модели временных рядов с помощью тензорного потока и получил ошибку, связанную с изменением формы, предположительно происходящую из слоя изменения формы.

Код: Выделить всё

train_dataset = tf.keras.utils.timeseries_dataset_from_array(
train_norm,
targets=temperature_train[delay:],
sampling_rate=sampling_rate,
sequence_length=sequence_length,
shuffle=True,
batch_size=batch_size,
)

valid_dataset = tf.keras.utils.timeseries_dataset_from_array(
valid_norm,
targets=temperature_valid[delay:],
sampling_rate=sampling_rate,
sequence_length=sequence_length,
shuffle=True,
batch_size=batch_size,
)

for batch in train_dataset.take(1):
inputs, label = batch
print(inputs.shape)
print(label.shape)
break
Результаты печати

Код: Выделить всё

(64, 120, 14)
(64,)
Следующий блок утверждений не вызвал ошибок для train_dataset и valid_dataset:

Код: Выделить всё

for batch in train_dataset:
inputs, label = batch
assert inputs.shape[1:] == (120, 14), f"{inputs.shape[1:]}"
Когда я создаю модель и начинаю обучение

Код: Выделить всё

inputs = tf.keras.Input(shape=(inputs.shape[1:]))
x = tf.keras.layers.Flatten()(inputs)
x = tf.keras.layers.Dense(16, activation="relu")(x)
outputs = tf.keras.layers.Dense(1)(x)
model = tf.keras.Model(inputs, outputs)
model.compile("adam", loss="mse", metrics=["mae"])
callbacks = [
tf.keras.callbacks.ModelCheckpoint("jena_dense.keras", save_best_only=True)]

history = model.fit(train_dataset, validation_data = valid_dataset, epochs = 15, callbacks=callbacks )
Выдает следующую ошибку

Код: Выделить всё

InvalidArgumentError: Graph execution error:

Detected at node functional_10_1/flatten_13_1/Reshape defined at (most recent call last)

...
...

Only one input size may be -1, not both 0 and 1
[[{{node functional_10_1/flatten_13_1/Reshape}}]] [Op:__inference_multi_step_on_iterator_40343]
Входная форма для выравниваемого слоя не должна быть однозначно подтверждена тестом утверждения. Я не знаю, откуда это взялось. Может ли кто-нибудь мне помочь?

Вернуться в «Python»