Python LSTM模型';具有最频繁值的s预测
在使用LSTM实现85%的语音情感识别准确率后,我希望使用该模型作为实时预测器-这意味着每隔1秒左右它将返回对当前数据序列的预测 现在,假设我预测了一个“愤怒”情绪样本,它有95帧(时间步长)。 将输入限制为[0:61]时,“model.predict”返回正确的情绪, 但当输入为[0:62]时,由于最后一帧的原因,模型返回不同的预测 我已经通过为每个时间步填充一个预测列表来说明这一点,因此输出就是该列表和“model.predict”输出(转换为标签名) 标签上的情绪是“愤怒”:4Python LSTM模型';具有最频繁值的s预测,python,performance,tensorflow,keras,lstm,Python,Performance,Tensorflow,Keras,Lstm,在使用LSTM实现85%的语音情感识别准确率后,我希望使用该模型作为实时预测器-这意味着每隔1秒左右它将返回对当前数据序列的预测 现在,假设我预测了一个“愤怒”情绪样本,它有95帧(时间步长)。 将输入限制为[0:61]时,“model.predict”返回正确的情绪, 但当输入为[0:62]时,由于最后一帧的原因,模型返回不同的预测 我已经通过为每个时间步填充一个预测列表来说明这一点,因此输出就是该列表和“model.predict”输出(转换为标签名) 标签上的情绪是“愤怒”:4 # [0:
# [0:61]
>> ([0, 0, 6, 6, 6, 6, 6, 6, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4], 'angry')
# [0:62]
>> ([0, 0, 6, 6, 6, 6, 6, 6, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5], 'fear')
我通过从填充的列表中获取最频繁的值来解决这个问题,但是通过for循环来填充它会极大地减慢过程:
def realtime (file_path, start, end):
# feature extraction from the file, concatenating to 'X_3D'...
res = []
for i in range(start,end):
prediction = model.predict(X_3D[:,start:i+1,:])
max = np.argmax(prediction)
res.append(max)
return res
#freq = most_frequent(res) ...
有没有运行更快的解决方案