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

2024-10-02 02:33:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经将一个模型保存为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]]

如果我对某事物强调过度或强调不足,请在评论中告诉我


Tags: sample模型编码modelmymanualarrayclass
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个类)进行训练之后,您需要像对神经网络那样对编码器进行pickle处理

最好的方法是有一个单独的数据转换管道,可以对其进行pickle处理。我建议从sklearn开始

相关问题 更多 >

    热门问题