eval-all.py 文件源码

python
阅读 38 收藏 0 点赞 0 评论 0

项目:image-classifier 作者: gustavkkk 项目源码 文件源码
def evaluate(self,metric='cosine'):
    #sample-feature
    X=self.read_imagelist(filelist_sample)
    sample_num=np.shape(X)[0]
    out = self.forward_all(data=X)
    feature1=np.float64(out['deepid'])
    feature1=np.reshape(feature1,(sample_num,feature_size))
    #np.savetxt('feature1.txt', feature1, delimiter=',')

    class_index = 0
    image_index = 0
    total_count = 0.0
    accept_sum = 0
    actual = []
    predict = []

    for filename in filenames:
        #query-feature
        X=self.read_imagelist(filelist_path + filename + extension)
        test_num=np.shape(X)[0]
        out = self.forward_all(data=X)
        feature2=np.float64(out['deepid'])
        feature2=np.reshape(feature2,(test_num,feature_size))
        #np.savetxt('feature2.txt', feature2, delimiter=',')
        #mt=pw.pairwise_distances(feature2, feature1, metric=metric)
        mt=pw.cosine_similarity(feature2, feature1)
        false=0
        for i in range(test_num):
        actual.append(class_index)
        for j in range(sample_num):
           if np.max(mt[i]) == mt[i][j]:
            confusion_array[j] += 1 
            predict.append(j)
        image_index += 1

        total_count += test_num
        accept_sum += confusion_array[class_index]
        class_index += 1

    print 'total:%d' % (round(total_count))
    print 'accept:%d' % (accept_sum)
    print 'reject:%d' % (round(total_count) - accept_sum)
    print 'accuray:%.4f' % (accept_sum / total_count)

    #conf_mat = confusion_matrix(actual,predict)
    #print(conf_mat)
    actual = np.array(actual)
    predict = np.array(predict)
    y_actual = pd.Series(actual, name='Actual')
    y_predict = pd.Series(predict, name='Predicted')
    df_confusion = pd.crosstab(y_actual,y_predict, rownames=['Actual'], colnames=['Predicted'], margins=True)
    print(df_confusion)
    plot_confusion_matrix(df_confusion)
    return (accept_sum / total_count)

    #process a text file
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号