Получение значения ValueError, связанного с формой, при передаче набора данных Tensorflow в функцию Keas's model.fit.
X_train моего набора данных имеет форму (100 выборок x 62 объектов), а Y_train - (100 выборок x 1 метка
Воспроизводимый код ниже:
import numpy as np
from tensorflow.keras import layers, Sequential, optimizers
from tensorflow.data import Dataset
num_samples = 100
num_features = 62
num_labels = 1
batch_size = 32
steps_per_epoch = int(num_samples/batch_size)
X_train = np.random.rand(num_samples,num_features)
Y_train = np.random.rand(num_samples, num_labels)
final_dataset = Dataset.from_tensor_slices((X_train, Y_train))
model = Sequential()
model.add(layers.Dense(256, activation='relu',input_shape=(num_features,)))
model.add(layers.Dense(128, activation='relu'))
model.add(layers.Dense(num_labels, activation='softmax'))
model.compile(optimizer=optimizers.Adam(0.001), loss='categorical_crossentropy',metrics=['accuracy'])
history = model.fit(final_dataset,epochs=10,batch_size=batch_size,steps_per_epoch = steps_per_epoch)
Ошибка:
ValueError: Error when checking input: expected dense_input to have shape (62,) but got array with shape (1,)
Почему плотность_производителя получает массив с формой (1,)? Я четко передаю егоX_train формы (n_samples, n_features).
Интересно, что ошибка исчезла, если бы я применил пакетную функцию (некоторое число) к набору данных, но, похоже, я что-то упустил.