Почему моя модель Keras с несколькими входами принимает форму обучающих данных для .call (), но не для .evaluate ()?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему моя модель Keras с несколькими входами принимает форму обучающих данных для .call (), но не для .evaluate ()?

Сообщение Anonymous »

IM в настоящее время исследует эфект маскировки внимания на слои многогодиев в модели трансформатора для классификации данных временных рядов. Я построил модель, которая принимает временную ряд и маску. < /P>

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

def build(params: dict) -> keras.Model:

input_dim = 1
sequence_size = params["sequence_size"]
n_classes = params["n_classes"]
encoder_blocks = params["encoder_blocks"]
n_heads = params["encoder_heads"]
encolder_mlp = params["mlp_dim"]
conv_filters = params["conv_filters"]
encoder_dropout = params["encoder_dropout"]
mlp_dropout = params["mlp_dropout"]
learning_rate = params["learning_rate"]

inputs = keras.Input(shape=(sequence_size, input_dim), name="sequence_input")
mask_input = keras.Input(shape=(sequence_size, sequence_size), name="mask_input")

x = inputs + SinePositionEncoding()(inputs)

for _ in range(encoder_blocks):
x = transformer_encoder(x, head_size=sequence_size, num_heads=n_heads, con_filters=conv_filters, attention_mask=mask_input, dropout=encoder_dropout, seed=SEED)

x = layers.GlobalAveragePooling1D(data_format="channels_last")(x)
x = layers.Dense(encolder_mlp, activation="relu")(x)
x = layers.Dropout(mlp_dropout, seed=SEED)(x)

outputs = layers.Dense(n_classes, activation="softmax")(x)

model =  keras.Model(inputs=[inputs, mask_input], outputs=outputs)

model.compile(
loss="categorical_crossentropy",
optimizer=keras.optimizers.Adam(learning_rate=learning_rate),
metrics=["categorical_accuracy", "f1_score"]
)

return model
Когда я вызываю model.fit ([x_train, dummy_mask], y_train) everthing работает нормально. Если я позвоню в model.evaluate ([x_train, dummy_mask], y_train Я получаю значение valueError:

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

ValueError: Data cardinality is ambiguous. Make sure all arrays contain the same number of samples.'x' sizes: 60, 577
'y' sizes: 60
x_train shape = (60, 577, 1)
dummy_mask shape = (577, 577, 1) < /p>
Я понятия не имею, почему это есть, предложения? < /p>
ps: я полностью осознаю, что вызов. /Код> Метод с данными поезда не имеет смысла. Я попытался сузить ошибку вниз. Сначала я догадался с моими тестовыми данными, но когда модель не может быть оценена на тех же данных, которые она была обучена, что -то другое должно быть отключено.

Подробнее здесь: https://stackoverflow.com/questions/794 ... raining-da
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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