Я использую RankLib для своих данных (форма: 218279 строк × 1504 столбца), используя python и получаю код ошибки 1 без вывода данных. Мне просто интересно, есть ли какая-либо документация относительно кодов ошибок на RankLib?
Я использую Jupyter iPython для своего проекта и запускаю процесс, используя subprocess.run. Если вам интересно, ниже приведен мой код для тренировки.
train_data = 'learning_to_rank_data/training.txt'
test_data = ''
validate_data = ''
metric2t = 'NDCG@2'
model_dest = 'learning_to_rank_data/model.txt'
try:
subprocess.run(['java', '-jar', ranklibjar, '-train', train_data, '-ranker', '3', '-metric2t', metric2t, '-save', model_dest], shell=True, check=True)
except subprocess.CalledProcessError as e:
raise RuntimeError("command '{}' return with error (code {}): {}".format(e.cmd, e.returncode, e.output))
Ниже вывод:
RuntimeError: command '['java', '-jar', 'RankLib-2.9.jar', '-train', 'learning_to_rank_data/training.txt', '-ranker', '3', '-metric2t', 'NDCG@2', '-save', 'learning_to_rank_data/model.txt']' return with error (code 1): None
Я попытался запустить библиотеку RankLib (т. Е. java -jar bin/RankLib.jar
) в Jupyter, используя тот же подход (subprocess.run
), и он работает нормально (т. Е. Код возврата 0).
Что вызывает этот код ошибки 1? Возможно ли это из-за того, что мои данные слишком велики? Или потому, что я тренируюсь только без тестирования и валидации?
Буду признателен за любую помощь!
EDIT
Я только что попытался нарезать свои данные до 1000 строк, но проблема с кодом возврата 1 по-прежнему была, поэтому большие данные не проблема. Что именно вызывает эту проблему?