迁移学习的实践示例

较浅的密集型网络的迁移学习

 已知别人的模型准确率很不错,我的项目和他的一样,数据集都是28*28的像素图片,但分类的类别不一样。例如别人的模型是将图片分类识别8类标签,而我只需要二分类两种标签。我可以使用他的已训练好的模型的底层网络,直接充当我的底层网络。然后更改输出层,或者更改层数等参数。

他的项目(A)  我的项目(B)  他的训练集X_train_A  我的训练集X_train_B


代码步骤:

model_A = keras.models.Sequential()
model_A.add(keras.layers.Flatten(input_shape=[28, 28]))
for n_hidden in (300, 100, 50, 50, 50):
    model_A.add(keras.layers.Dense(n_hidden, activation="selu"))
model_A.add(keras.layers.Dense(8, activation="softmax"))

model_A.compile(loss="sparse_categorical_crossentropy",
                optimizer=keras.optimizers.SGD(learning_rate=1e-3),
                metrics=["accuracy"])

history = model_A.fit(X_train_A, y_train_A, epochs=20,
                    validation_data=(X_valid_A, y_valid_A))

保存他的模型为h5格式文件:

mode

你可能感兴趣的:(神经网络)