Ускоряет ли GPU предварительную обработку данных в задачах машинного обучения?

Я выполняю задачу машинного обучения (прогнозирование стоимости). Пока я занимаюсь предварительной обработкой данных, это занимает очень много времени. У меня есть файл csv с примерно 640000 строк, и я пытаюсь вычесть даты последовательных строк и рассчитать продолжительность времени. Файл csv выглядит как прикрепленный. Например, с 17.08.2011 по 19.08.2011 требуется 2 дня, и я хотел бы записать 2 в столбец «продолжительность времени». Для этого я использовал функцию python datetime. И это стоит много времени.

data = pd.read_csv(f'{proj_dir}/raw data/measures.csv', encoding="cp1252") 

file = data[['ID', 'date', 'value1', 'value2', 'duration']]

def time_subtraction(date, prev_date):
  diff = datetime.strptime(date, '%Y-%m-%d') - datetime.strptime(prev_date, '%Y-%m-%d')
  diff_days = diff.days
  return diff_days

def calculate_time_duration(dataframe, set_0_indices):
  for i in range(dataframe.shape[0]):
    # For each patient, sets "Time Duration" at the first measurement to be 0
    if i in set_time_0_indices.values:
      dataframe.iloc[i, 4] = 0 # set time duration to 0 (beginning of this patient)
    else: # time subtraction
      dataframe.iloc[i, 4] = time_subtraction(date=dataframe.iloc[i, 1], prev_date=dataframe.iloc[i-1, 1])
  return dataframe

# I am running on Google Colab. This line takes very long.
result = calculate_time_duration(dataframe = file, set_0_indices = set_time_0_indices)

Интересно, есть ли способы ускорить этот процесс. Помогает ли использование графического процессора? У меня есть доступ к удаленному графическому процессору, но я не знаю, помогает ли использование графического процессора при предварительной обработке данных. Кстати, при каком сценарии графические процессоры действительно могут ускорить работу? Заранее спасибо!

как выглядят мои данные

Пожалуйста, добавьте полный код, как вы редактируете свою таблицу, а также как вы загружаете свои данные.

Noltibus 17.05.2022 07:34
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
1
26
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Относительно более быстрого обновления данных см. сообщение это. Что касается повышения скорости с помощью графического процессора: вы можете использовать графический процессор только в том случае, если есть оптимизированные операции, которые действительно могут выполняться на центральном процессоре. Предварительная обработка, как вы это делаете, обычно не входит в объем. Вы также должны учитывать, что вам нужно будет сначала передать данные на графический процессор, прежде чем что-либо вычислять, а затем передавать результаты обратно. В вашем случае это заняло бы гораздо больше времени, чем фактическое ускорение, тем более что ваша операция с данными довольно проста. Я уверен, что использование правильного синтаксиса pandas приведет к желаемому ускорению предварительной обработки.

Благодарю вас! Это действительно помогает. Замена dataframe.iloc на dataframe.at ускоряет весь процесс примерно в 10 раз!

kkk5786 17.05.2022 09:33

Другие вопросы по теме