python - sklearn.exceptions.NotFittedError:此 LabelEncoder 实例尚未安装
问题描述
我正在尝试从 Github HERE运行语音识别代码来分析语音。有一个例子final_results_gender_test.ipynb
说明了训练和推理的步骤。因此,我复制并调整了推理部分,并提出了以下代码,该代码使用经过训练的模型进行推理。但我不确定为什么我会收到这个错误,抱怨This LabelEncoder instance is not fitted yet
。
如何解决问题?我只是在做推理,为什么我需要适合?
Traceback (most recent call last):
File "C:\Users\myname\Documents\Speech-Emotion-Analyzer-master\audio.py", line 53, in <module>
livepredictions = (lb.inverse_transform((liveabc)))
File "C:\Users\myname\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\preprocessing\label.py", line 272, in inverse_transform
check_is_fitted(self, 'classes_')
File "C:\Users\myname\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\utils\validation.py", line 914, in check_is_fitted
raise NotFittedError(msg % {'name': type(estimator).__name__})
sklearn.exceptions.NotFittedError: This LabelEncoder instance is not fitted yet. Call 'fit' with appropriate arguments before using this method.
这是我从笔记本中复制/调整的代码:
import os
from keras import regularizers
import keras
from keras.callbacks import ModelCheckpoint
from keras.layers import Conv1D, MaxPooling1D, AveragePooling1D, Dense, Embedding, Input, Flatten, Dropout, Activation, LSTM
from keras.models import Model, Sequential, model_from_json
from keras.preprocessing import sequence
from keras.preprocessing.sequence import pad_sequences
from keras.preprocessing.text import Tokenizer
from keras.utils import to_categorical
import librosa
import librosa.display
from matplotlib.pyplot import specgram
from sklearn.metrics import confusion_matrix
from sklearn.preprocessing import LabelEncoder
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import tensorflow as tf
opt = keras.optimizers.rmsprop(lr=0.00001, decay=1e-6)
lb = LabelEncoder()
json_file = open('model.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)
# load weights into new model
loaded_model.load_weights("saved_models/Emotion_Voice_Detection_Model.h5")
print("Loaded model from disk")
X, sample_rate = librosa.load('h04.wav', res_type='kaiser_fast',duration=2.5,sr=22050*2,offset=0.5)
sample_rate = np.array(sample_rate)
mfccs = np.mean(librosa.feature.mfcc(y=X, sr=sample_rate, n_mfcc=13),axis=0)
featurelive = mfccs
livedf2 = featurelive
livedf2= pd.DataFrame(data=livedf2)
livedf2 = livedf2.stack().to_frame().T
twodim= np.expand_dims(livedf2, axis=2)
livepreds = loaded_model.predict(twodim, batch_size=32, verbose=1)
livepreds1=livepreds.argmax(axis=1)
liveabc = livepreds1.astype(int).flatten()
livepredictions = (lb.inverse_transform((liveabc)))
print(livepredictions)
解决方案
推荐阅读
- javascript - 碰撞检测在吃豆人游戏中不起作用
- arrays - 将结果附加到数组中
- asp.net - 极其奇怪的 Fluent Validation 行为
- javascript - 按月拆分数组
- .htaccess - htaccess 重定向所有域,除了一个子文件夹,包括里面的文件和其他子文件夹
- javascript - 带有 MongoDB 模块的 NodeJS:lib/mongo_client.js:891 会引发错误。为什么,该怎么办?
- random - Tampermonkey - 在单词中随机插入随机字符
- python - 多个图共享相同的 X 轴和一组 y 轴
- rest - Teradata 休息服务
- asp.net-mvc - Web ApI:HttpClient 没有调用我的 Web api 操作