HH vs SY 2021-06-03 21:30 采纳率: 100%
浏览 49
已采纳

请问一下这个错误应该怎么修改呢?

import numpy as np
from sklearn.svm import SVC
from sklearn.externals import joblib
from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt


def load_hog_data(hog_txt):
    """ load hog features.
    Args:
        hog_txt: a txt file used to save hog features.
            one line data is formated as "img_path \t cls_num \t hog_feature_vector"
    Return:
        img_names: a list of image names.
        labels: numpy array labels (1-dim).
        hog_feature: numpy array hog features.
            formated as [[hog1], [hog2], ...]
    """
    img_names = []
    labels = []
    hog_features = []
    with open(hog_txt, "r") as f:
        data = f.readlines()
        for row_data in data:
            row_data = row_data.rstrip()
            img_path, label, hog_str = row_data.split("\t")
            img_name = img_path.split("\\")[-1]
            hog_feature = hog_str.split(" ")
            hog_feature = [float(hog) for hog in hog_feature]
            # print "hog feature length = ", len(hog_feature)
            img_names.append(img_name)
            labels.append(int(label))
            hog_features.append(hog_feature)
    return img_names, np.array(labels), np.array(hog_features)


def svm_train(hog_features, labels, save_path="\svm_model.pkl"):
    """ SVM train
    Args:
        hog_feature: numpy array hog features.
            formated as [[hog1], [hog2], ...]
        labels: numpy array labels (1-dim).
        save_path: model save path.
    Return:
        none.
    """
    clf = SVC(C=10, tol=1e-3, probability=True)
    clf.fit(hog_features, labels)
    joblib.dump(clf, save_path)
    print("finished.")


def svm_test(svm_model, hog_feature, labels):
    """SVM test
    Args:
        hog_feature: numpy array hog features.
            formated as [[hog1], [hog2], ...]
        labels: numpy array labels (1-dim).
    Return:
        accuracy: test accuracy.
    """
    clf = joblib.load(svm_model)
    accuracy = clf.score(hog_feature, labels)
    return accuracy


def plot_roc_auc(clf, x_test):
    y_test = clf.predict(x_test)
    y_score = clf.decision_function(x_test)
    fpr, tpr, threshold = roc_curve(y_test, y_score)
    roc_auc = auc(fpr, tpr)
    plt.figure()
    plt.plot(fpr, tpr)
    plt.plot([0, 1], [1, 0])
    plt.xlim([0.0, 1.0])
    plt.ylim([0.0, 1.05])
    plt.xlabel('False Positive Rate')
    plt.ylabel('True Positive Rate')
    plt.title('Receiver operating characteristic example')


if __name__ == "__main__":
    hog_train_txt = "D:\computer_vision\proposals_train_hog.txt"
    hog_test_txt = "D:\computer_vision\proposals_test_hog.txt"
    model_path = "\svm_model.pkl"

    train = False

    if train is True:
        img_names, labels, hog_train_features = load_hog_data(hog_train_txt)
        svm_train(hog_train_features, labels, model_path)
    else:
        img_names, labels, hog_test_features = load_hog_data(hog_test_txt)
        test_accuracy = svm_test(model_path, hog_test_features, labels)
        print
        "test accuracy = ", test_accuracy

        # clf = joblib.load(model_path)
        # plot_roc_auc(clf, hog_test_features)

报错:

Traceback (most recent call last):
  File "C:/Users/samyeung/PycharmProjects/pythonProject/svm_train.py", line 94, in <module>
    test_accuracy = svm_test(model_path, hog_test_features, labels)
  File "C:/Users/samyeung/PycharmProjects/pythonProject/svm_train.py", line 62, in svm_test
    clf = joblib.load(svm_model)
  File "C:\Users\samyeung\PycharmProjects\pythonProject\venv\lib\site-packages\sklearn\externals\joblib\numpy_pickle.py", line 590, in load
    with open(filename, 'rb') as f:
FileNotFoundError: [Errno 2] No such file or directory: '\\svm_model.pkl'

Process finished with exit code 1


 

  • 写回答

4条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥15 echarts地图添加点击事件
      • ¥15 不知道带什么标题好随便搞一个吧
      • ¥15 ffmpeg 图片合成视频
      • ¥15 软科大学爬取获取所有数据
      • ¥15 如何修改损失函数以及代码讲解
      • ¥15 有偿咨询!!程序的小数点怎么取到后四位啊!
      • ¥15 IRS智能反射面相关文章代码
      • ¥15 landsat5的两幅影像镶嵌前波段是123457,为什么镶嵌后波段变成了123456?
      • ¥15 关于#matlab#中fmincon函数如何处理约束问题?
      • ¥60 Java程序,控制台输出