根据海报预测电影分类jupyter代码在pycharm中报错

老师您好,根据海报预测电影分类jupyter代码在pycharm中报错,断点调试没有出现问题。请老师看看,谢谢
# 特征表示
from skimage import io, exposure
# 提取每个图片的直方图作为颜色特征

def extract_hist_feat(img_path, nbins=50, as_grey=True):
    '''
        提取每个图片的直方图作为颜色特征
        img_path:图片路径
        nbins:直方图bin的个数,即特征的维度
    '''
    image_data = io.imread(img_path, as_grey=as_grey)
    eq_image_data = exposure.equalize_hist(image_data)
    if as_grey:
        # 灰度图片
        # 提取直方图特征
        hist_feat, _ = exposure.histogram(eq_image_data, nbins=nbins)
    else:
        pass
    norm_hist_feat =hist_feat / sum(hist_feat)

    return norm_hist_feat

# 对数据集中的每张图片进行特征提取
n_feat_dim = 100
n_sample =len(data_df)

# 初始化特征矩阵
X = np.zeros((n_sample, n_feat_dim))
# print('type(X)\n', type(X))
print('11111111\n',X)
# print(X.shape)
for i, r_data in data_df.iterrows():
    if (i+1) % 100 ==0:
        print('正在提取,已完成{}个海报提取'.format(i+1))
    img_path =os.path.join(poster_path,r_data['img_path'])
    hist_feat = extract_hist_feat(img_path, n_feat_dim)

    X[i, :] = hist_feat.copy()
1524206582698.png

泽南Alpha

赞同来自: fish

你可以打印一下X.shape,应该是998*...。 也就是说你代码里的X[i,:],i的范围是0-997。 现在报的这个错,是当i=998时发生的。   我没有全部代码无法说清具体怎么改,但你如果要避免这个问题的话可以在X=np.zeros初始化的时候大一点,比如X = np.zeros((n_sample + 1, n_feat_dim + 1))之类的。

要回复问题请先登录注册