Как я могу назначить ограничение по времени для randomsearchCV (работает вечно)? - PullRequest
0 голосов
/ 02 апреля 2020

Можно ли назначить ограничение по времени для randomsearch cv? Я знаю, что вы можете настроить количество итераций, но я специально хочу контролировать максимальное время поиска помимо количества итераций.

Причина этого заключается в том, что я использую сетку поиска с различными шагами предварительной обработки, и для каждой комбинации предварительной обработки я вызываю randomsearchCV с cv = 4 и итерациями = 30. Это не проблема для большинства комбинаций (время тренировки очень мало <20 с), но для некоторых комбинаций, кажется, работает вечно, и я не знаю почему. </p>

Я часами искал, в чем заключалась проблема бесконечного времени обучения, но я отказался от этого, поэтому я просто хочу пропустить случаи, когда время обучения превышает 10 минут.

Я могу показать код, если это необходимо, но я думаю, что здесь это не поможет.

1 Ответ

0 голосов
/ 02 апреля 2020

Я не уверен, какой модуль вы используете и есть ли реализованная функция, чтобы делать то, что вы хотите, но вы могли бы "вручную" проверить время, прошедшее в вашем коде:

import time

def somefunc(time_started):
    a = true
    time_limit = 5000
    while a: 
         # do something / run an iteration
         if round(time.monotonic() * 1000) - time_started > time_limit: 
              # check how much time/ms has elapsed since you called the function
              a = false # will break on next "while-iteration" 

t0= round(time.monotonic() * 1000)
func(t0)

Очевидно, , вы можете изменить time_limit на любую другую сумму, необходимую для вашей цели.

...