我正在处理自己的数据集并尝试使用 Keras 调谐器微调参数。我正在使用基本的模型构建功能:
from tensorflow.keras import layers
from keras_tuner import RandomSearch
def build_model(hp):
model = keras.Sequential()
model.add(layers.Flatten())
model.add(
layers.Dense(
units=hp.Int("units", min_value=32, max_value=512, step=32),
activation="relu",
)
)
model.add(layers.Dense(10, activation="softmax"))
model.compile(
optimizer=keras.optimizers.Adam(
hp.Choice("learning_rate", values=[1e-2, 1e-3, 1e-4])
),
loss="categorical_crossentropy",
metrics=["accuracy"],
)
return model
在显示搜索空间摘要并尝试从以下代码语句中搜索最佳值之后:
tuner.search(X_train, y_train, epochs=15, validation_data=(X_test, y_test))
出现以下错误:
logits 和 labels 必须具有相同的第一维,得到 logits 形状 [32,10] 和标签形状 [6144]
我试图将损失更改为'sparse_categorical_crossentropy'
,'categorical_crossentropy'
但没有奏效。
我的数据集形状如下:
x_test (201, 16)
y_test (201, 16, 12)
X_train (1803, 16)
y_train (1803, 16, 12)
x_val (500, 16)
y_val (500, 16, 12)