Skip to content

运行example里面的main.py报错了 #193

@lycfr

Description

@lycfr
from stagesepx.cutter import VideoCutter
from stagesepx.classifier import SVMClassifier
from stagesepx.reporter import Reporter
from stagesepx.video import VideoObject

video_path = "/Users/cfr/Downloads/34a93e59ae13bdc1f85c8d24c88ff640.mov"
video = VideoObject(video_path)
video.load_frames()

# --- cutter ---
cutter = VideoCutter()
res = cutter.cut(video)
stable, unstable = res.get_range()
data_home = res.pick_and_save(stable, 5)

# --- classify ---
cl = SVMClassifier()
cl.load(data_home)
cl.train()
classify_result = cl.classify(video, stable)

# --- draw ---
r = Reporter()
r.draw(classify_result)

Traceback (most recent call last):
  File "/Users/cfr/PycharmProjects/droidrun/test_run.py", line 19, in <module>
    cl.train()
  File "/Users/cfr/.pyenv/versions/3.10.0/lib/python3.10/site-packages/stagesepx/classifier/svm.py", line 129, in train
    self._model.fit(train_data, train_label)
  File "/Users/cfr/.pyenv/versions/3.10.0/lib/python3.10/site-packages/sklearn/base.py", line 1363, in wrapper
    return fit_method(estimator, *args, **kwargs)
  File "/Users/cfr/.pyenv/versions/3.10.0/lib/python3.10/site-packages/sklearn/svm/_classes.py", line 321, in fit
    self.coef_, self.intercept_, n_iter_ = _fit_liblinear(
  File "/Users/cfr/.pyenv/versions/3.10.0/lib/python3.10/site-packages/sklearn/svm/_base.py", line 1187, in _fit_liblinear
    raise ValueError(
ValueError: This solver needs samples of at least 2 classes in the data, but the data contains only one class: np.str_('0')

我只是替换了一下video_path

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions