Python新手遇AttributeError与ValueError问题求助
问题解决步骤
第一个错误:AttributeError: 'list' object has no attribute 'fit'
你的models定义多了一层外层括号,导致它是包含一个子列表的列表,子列表里才是39个GMMHMM对象。当你用models[i]时,取到的是整个子列表(而非单个模型实例),列表本身没有fit方法,所以报错。
修正方法:直接去掉外层括号,让models成为存储39个模型的普通列表:
models = [GMMHMM(n_components=3,n_mix=2,verbose=False,n_iter=10) for i in range(39)]
第二个错误:ValueError: Expected 2D array, got 1D array instead
GMMHMM的fit方法要求输入的特征数据是二维数组(格式为(样本数, 特征维度)),但你的features[i]是一维数组,不符合要求。
解决方法:把每个features[i]转换成二维数组,用numpy的reshape方法即可。如果你的每个样本是单特征的,就用:
models[i].fit(features[i].reshape(-1, 1), lengths[i])
如果特征维度是k,就改成reshape(-1, k);也可以提前检查并确保features里的每个元素都是二维数组格式。
内容的提问来源于stack exchange,提问作者dada
相关产品推荐
相关产品推荐

