хорошо, поэтому я получил следующую сеть:
#building model
def build_model():
model = models.Sequential()
model.add(layers.InputLayer(input_shape=(100,28)))
model.add(layers.Dense(28,activation = 'relu'))
model.add(BatchNormalization(momentum = 0.99))
model.add(Dropout(0.1))
model.add(layers.Conv1D(filters=16,kernel_size=3,strides=1,padding='same',activation='relu'))
model.add(BatchNormalization(momentum = 0.99))
model.add(Dropout(0.1))
model.add(layers.Conv1D(filters=32,kernel_size=3,strides=1,padding='same',activation='relu'))
model.add(BatchNormalization(momentum = 0.99))
model.add(Dropout(0.1))
model.add(layers.Conv1D(filters=64,kernel_size=3,strides=1,padding='same',activation='relu'))
model.add(BatchNormalization(momentum = 0.99))
model.add(Dropout(0.1))
model.add(layers.Flatten())
model.add(layers.Dense(1, activation = 'linear'))
model.compile(
optimizer='adam',
loss=['mean_squared_error'],
metrics=[tf.keras.metrics.RootMeanSquaredError()]
)
return model
model = build_model()
#train model and output
history = model.fit(
dataframes,
target_fx,
epochs=50,
callbacks=[keras.callbacks.EarlyStopping(
patience = 4)
]
)
с фреймами данных (1101, 100, 28) np.array и target_fx a (1101, 100, 1) np.array
но когда я запускаю его, я получаю следующую ошибку:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-9-b02e21827529> in <module>
35 epochs=50,
36 callbacks=[keras.callbacks.EarlyStopping(
---> 37 patience = 4)
38 ]
39 )
~\Anaconda3\envs\deeplearning\lib\site-packages\keras\engine\training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_freq, max_queue_size, workers, use_multiprocessing, **kwargs)
1152 sample_weight=sample_weight,
1153 class_weight=class_weight,
-> 1154 batch_size=batch_size)
1155
1156 # Prepare validation data.
~\Anaconda3\envs\deeplearning\lib\site-packages\keras\engine\training.py in _standardize_user_data(self, x, y, sample_weight, class_weight, check_array_lengths, batch_size)
619 feed_output_shapes,
620 check_batch_axis=False, # Don't enforce the batch size.
--> 621 exception_prefix='target')
622
623 # Generate sample-wise weight values given the `sample_weight` and
~\Anaconda3\envs\deeplearning\lib\site-packages\keras\engine\training_utils.py in standardize_input_data(data, names, shapes, check_batch_axis, exception_prefix)
133 ': expected ' + names[i] + ' to have ' +
134 str(len(shape)) + ' dimensions, but got array '
--> 135 'with shape ' + str(data_shape))
136 if not check_batch_axis:
137 data_shape = data_shape[1:]
ValueError: Error when checking target: expected dense_10 to have 2 dimensions, but got array with shape (1101, 100, 1)
, что я нахожу невероятно странным, поскольку ошибка касается цели, а не обучающих функций. У кого-нибудь есть предложения?