Я пытаюсь приспособить свою нейронную сеть массивом объектов и целевым массивом.Размер целевого массива отличается от ожидаемого.«Ошибка при проверке цели: ожидалось, что плотность_2 имеет 2 измерения, но получен массив с формой (3, 1, 21)» *
Я уже пробовал использовать несколько таких функций, как np.asarray np.array
def build_model():
model = keras.Sequential([
layers.Dense(4, activation = tf.nn.relu, input_shape = [len(train_dataset.keys())]),
layers.Dense(64, activation = tf.nn.sigmoid),
layers.Dense(64, activation = tf.nn.relu),
layers.Dense(64, activation = tf.nn.relu),
layers.Dense(3)
])
optimizer = keras.optimizers.RMSprop(lr=0.001, rho=0.9, epsilon=None, decay=0.0)
model.compile(loss = 'mean_squared_error',
optimizer = optimizer,
metrics = ['mean_absolute_error', 'mean_squared_error'])
return model
model.summary()
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_19 (Dense) (None, 4) 20
_________________________________________________________________
dense_20 (Dense) (None, 64) 320
_________________________________________________________________
dense_21 (Dense) (None, 64) 4160
_________________________________________________________________
dense_22 (Dense) (None, 64) 4160
_________________________________________________________________
dense_23 (Dense) (None, 3) 195
=================================================================
Total params: 8,855
Trainable params: 8,855
Non-trainable params: 0
print((np.array(normed_train_data)))
print((np.asarray(train_labels)))
[[0.78865053 0.75882112 0.66666667 1. ]
[0.78865053 0.92764634 1. 0.33333333]
[1. 0.84323373 1. 0.33333333]
[1. 0.95176422 1. 0.33333333]
[0.78865053 0.95176422 1. 0. ]
[0.78865053 0.95176422 1. 0.33333333]
[0.78865053 0.92764634 1. 0.66666667]
[1. 0.92764634 1. 0.33333333]
[1. 0.87941056 1. 0.33333333]
[0.78865053 0.97588211 1. 0.2 ]
[0.78865053 0.90352845 0.66666667 1. ]
[1. 0.80705689 1. 0.33333333]
[0.78865053 1. 0.66666667 0.66666667]
[1. 0.83117478 1. 0.33333333]
[0.78865053 0.97588211 1. 0.2 ]
[0.78865053 1. 1. 0.2 ]
[0.78865053 0.71058534 0.66666667 1. ]
[0.78865053 0.90352845 1. 0.33333333]
[0.78865053 0.95176422 0.66666667 1. ]
[0.78865053 0.85046909 0.66666667 1. ]
[1. 0.80705689 1. 0.33333333]]
[[[6.65e+01 9.68e+01 9.64e+01 9.90e+01 9.82e+01 1.00e+02 9.76e+01
9.90e+01 9.62e+01 1.00e+02 8.18e+01 7.14e+01 9.60e+01 9.19e+01
1.00e+02 1.00e+02 6.58e+01 9.03e+01 9.44e+01 7.18e+01 9.19e+01]]
[[4.00e+00 6.88e-01 4.74e-01 5.64e-01 6.88e-01 8.11e-01 6.88e-01
5.64e-01 8.20e-02 2.50e+01 4.00e+00 5.64e-01 4.00e+00 4.44e-01
8.77e-01 5.10e+01 4.00e+00 6.88e-01 4.00e+00 4.00e+00 7.40e-02]]
[[4.00e+08 2.94e+10 3.18e+10 3.18e+10 3.23e+10 3.56e+10 3.18e+10
3.18e+10 3.18e+10 3.07e+10 6.70e+09 3.18e+10 3.33e+10 3.18e+10
3.42e+10 2.85e+10 2.00e+08 2.28e+10 3.20e+10 2.40e+09 3.18e+10]]]
class PrintDot(keras.callbacks.Callback):
def on_epoch_end(self,epoch,logs):
if epoch % 100 == 0: print('')
print('.',end='')
EPOCH=1000
history = model.fit(
x,
y,
epochs=EPOCH,
validation_split = 0.2,
verbose=2,
callbacks=[PrintDot()])
Error when checking target: expected dense_23 to have 2 dimensions, but got array with shape (3, 1, 21)
Я ожидаю, что в моем массиве будет правильное измерение для питания моей нейронной сети.