Нейронные сети InvalidArgumentError w / keras, тензор потока - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь спроектировать прогнозную модель выбросов тепловых электростанций, основанную на выработанной энергии и свойствах угля. Я смотрел различные учебные пособия по разработке этого кода, так как это не моя область знаний, но я терплю неудачу каждый раз, когда запускаю ячейку модели. Вот код для стандартизации и предварительной обработки данных :

import numpy as np
from sklearn import preprocessing
raw_data=np.loadtxt('raw_data.csv',delimiter=',',skiprows=1)
unscaled_inputs=raw_data[:,0:30]
targets=raw_data[:,30:110]
scaled_inputs = preprocessing.scale(unscaled_inputs)
samples_count=scaled_inputs.shape[0]
train_samples_count=int(0.8*samples_count)
validation_samples_count=int(0.1*samples_count)
test_samples_count=samples_count-train_samples_count-validation_samples_count
train_inputs=scaled_inputs[:train_samples_count]
train_targets=targets[:train_samples_count]
       validation_inputs=scaled_inputs[train_samples_count:train_samples_count+validation_samples_count]       validation_targets=targets[train_samples_count:train_samples_count+validation_samples_count]

test_inputs=scaled_inputs[train_samples_count+validation_samples_count:]
test_targets=targets[train_samples_count+validation_samples_count:]

np.savez('coal_data_train', inputs=train_inputs, targets=train_targets)
np.savez('coal_data_validation', inputs=validation_inputs, targets=validation_targets)
np.savez('coal_data_test', inputs=test_inputs, targets=test_targets)

Вот код, используемый для модели :

import numpy as np
import tensorflow as tf
npz=np.load('coal_data_train.npz')
train_inputs = npz['inputs'].astype(np.float)
train_targets = npz['targets'].astype(np.int)

npz = np.load('coal_data_validation.npz')
validation_inputs, validation_targets = npz['inputs'].astype(np.float), npz['targets'].astype(np.int)

npz = np.load('coal_data_test.npz')
test_inputs, test_targets = npz['inputs'].astype(np.float), npz['targets'].astype(np.int)
input_size = 30
output_size = 81
hidden_layer_size = 61
model = tf.keras.Sequential([
    tf.keras.layers.Dense(hidden_layer_size, activation='relu'),
    tf.keras.layers.Dense(hidden_layer_size, activation='relu'),
    tf.keras.layers.Dense(output_size, activation='linear') 
])

model.compile(optimizer='adam', loss='mean_absolute_error', metrics=['accuracy'])

batch_size = 10
max_epochs = 50
early_stopping = tf.keras.callbacks.EarlyStopping(patience=2)

model.fit(train_inputs, 
          train_targets, 
          batch_size=10, 
          epochs=max_epochs, 
          verbose=2,
          callbacks=[early_stopping], 
          validation_data=(validation_inputs, validation_targets),
          )

Возвращает ошибку : введите описание изображения здесь

Есть предложения?

1 Ответ

0 голосов
/ 28 апреля 2020

Ваш выходной размер больше, чем должен быть. Попробуйте:

output_size = 80
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...