Когда я пытался использовать RestNet50 со всеми замороженными слоями для классификации набора данных Fashion MNIST, я мог получить только около 78% точности обучения и 41% точности предсказания.Ниже приведен фрагмент кода:
from keras import optimizers
from keras.applications.resnet50 import ResNet50
from keras.datasets import fashion_mnist
from keras.layers import Activation, Flatten, Dense
from keras.models import Model
(x, y), (x_test, y_test) = fashion_mnist.load_data()
dat_train, dat_val, train_lbs, val_lbs = train_test_split(x, y, test_size=10000, random_state=42)
... # transform dat_train, dat_val, x_test from shapes (28, 28, ) to (32, 32, 3) and re-scale to value range [0, 1], also one hot encoding train_lbs, val_lbs, y_test to shape (, 10)
resnet50_base = ResNet50(include_top=False,
weights='imagenet',
input_shape=(32, 32, 3))
for layer in resnet50_base.layers:
layer.trainable = False
base_out = resnet50_base.output
base_out = Flatten()(base_out)
base_out = Dense(128)(base_out)
base_out = Activation("relu")(base_out)
preds = Dense(10, activation="softmax")(base_out)
model = Model(inputs=resnet50_base.input, outputs=preds)
model.compile(loss="categorical_crossentropy",
optimizer=optimizers.Adam(lr=0.0005),
metrics=["accuracy"])
Получен этот результат
Я что-то сделал не так или ResNet50 не подходит для набора данных Fashion MNIST?