Мне нужно изменить размерность моих массивов, чтобы сделать их эквивалентными - PullRequest
0 голосов
/ 30 мая 2019

Я пытаюсь приспособить свою нейронную сеть массивом объектов и целевым массивом.Размер целевого массива отличается от ожидаемого.«Ошибка при проверке цели: ожидалось, что плотность_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)

Я ожидаю, что в моем массиве будет правильное измерение для питания моей нейронной сети.

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