【发布时间】:2021-04-28 00:38:28
【问题描述】:
我已经用一个包含 43 个类的数据集训练了一个序列模型;每个类名都是 0 - 43,它们是从目录名派生的。现在我想使用迁移学习在先前训练的模型之上创建一个新模型,新数据的类别为 43 - 47。现在的问题是当我添加 5(我的标签计数 43-47)作为密集层中的类数显示此错误:
tensorflow.python.framework.errors_impl.InvalidArgumentError:收到的标签值为 46,超出了 [0, 5) 的有效范围。
那么如何在 Dense 层中添加从 44 开始的类数,而不是零 (0)?
这是我的传输模型代码:
model_old = load_model('model.h5')
model_new = tf.keras.models.Sequential()
for layer in model_old.layers[:-1]:
layer.trainable = False
model_new.add(layer)
model_new.add(tf.keras.layers.Dense(5, activation="softmax"))
model_new.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
【问题讨论】:
标签: python tensorflow machine-learning keras transfer-learning