如何在加载模型并使用一个类进行训练时对类进行编码器转换

我已经将模型保存为my_model.h5. 我的7课程是


array(['Drums Beating', 'Machine Digging', 'Man Movement',

      'Manual Digging', 'Manual Digging - Deeper (1.5 to 3 feets)',

      'Normal', 'Tunneling'], dtype=object)

现在我必须训练一个只有一个类的模型(suppose 'drums beating')。所以我将用旧权重初始化新训练模型的权重。因此,当我需要对标签进行编码(例如drums beating)时,如何对其进行编码,使其具有([0,0,0,1,0,0,0])我之前训练时的虚拟值。


为了清楚起见,鼓声的早期虚拟值是[0,0,0,1,0,0,0]。但是当我按如下方式加载编码器时


with open('/home/ANN_Unrolled_30_sample_7_class/ANN_UNrolled_sample_30_7_class.pkl', 'rb') as f:

   encoder = pkl.load(f)

并应用encode.transform,它[0]只是因为新训练模型中只有一个类。我该怎么做才能得到以前的假人本身([0,0,0,1,0,0,0]]


如果我过分强调或过分强调某事,请在评论中告诉我。


翻阅古今
浏览 80回答 2
2回答

浮云间

请执行下列操作with open('/home/ANN_Unrolled_30_sample_7_class/ANN_UNrolled_sample_30_7_class.pkl', "rb") as infile:   encoder = pkl.load(infile)temp = encoder.transform(your_required_classes)num = len(encoder.classes_)k = to_categorical(temp,num_classes=num)

叮当猫咪

在对整个训练数据(7 个类)进行训练后,您需要对编码器进行腌制,就像对神经网络所做的那样。最好的方法是有一个单独的数据转换管道,可以腌制。我建议使用 sklearn 的这个管道。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python