У меня есть проблема с рисунком в pyplot в этой строке "plt.figure (pred [:, 1], (val_targets [:, 1]))" Пожалуйста, помогите решить эту ошибку TypeError: только массивы размера 1 могут быть преобразовано в Python скаляры. Эти векторы содержат точное количество значений.
def evaluate_classifier(model_f, model_info, train_data, train_targets, epochs):
k = 5
num_val_samples = len(train_data) // k
num_epochs = epochs
all_scores = []
for i in range(k):
print('processing fold #', i)
# Prepare the validation data: data from partition # k
val_data = train_data[i * num_val_samples: (i + 1) * num_val_samples]
val_targets = train_targets[i * num_val_samples: (i + 1) * num_val_samples]
# Prepare the training data: data from all other partitions
partial_train_data = np.concatenate(
[train_data[:i * num_val_samples],
train_data[(i + 1) * num_val_samples:]],
axis=0)
partial_train_targets = np.concatenate(
[train_targets[:i * num_val_samples],
train_targets[(i + 1) * num_val_samples:]],
axis=0)
# Build the Keras model (already compiled)
model = model_f(info)
# Train the model (in silent mode, verbose=0)
history = model.fit(partial_train_data, partial_train_targets,
epochs=num_epochs, batch_size=124, verbose=0, validation_data=(val_data, val_targets))
# Evaluate the model on the validation data
val_mse, val_mae = model.evaluate(val_data, val_targets, verbose=1)
all_scores.append(val_mae)
pred = model.predict(val_data)
print(f"Mean squared error: {val_mse}\n")
plt.figure(figsize = (25,8))
plt.plot(pred, 'r')
plt.plot(val_targets[number_previous_days:], 'g')
plt.show()
print("Kontrola")
print(pred[:,1])
print(val_targets[:,1])
plt.figure(pred[:,1],(val_targets[:,1]))
plt.show()
plt.figure(figsize=(16,8))
plt.plot(history.history['loss'], 'bo')
plt.plot(history.history['val_loss'], 'b')
plt.title('Whole training and validation loss')
plt.xlabel('Epochs')
plt.ylabel('Loss')
plt.ylim((0, 15))
plt.legend()
plt.show()
print("MAE:")
print(np.mean(all_scores))
return np.mean(all_scores)
Я могу отправить весь код.