Почему установка Torch.backends.cudnn.deterministic = true делает мою модель TCN чрезвычайно медленной в Pytorch?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему установка Torch.backends.cudnn.deterministic = true делает мою модель TCN чрезвычайно медленной в Pytorch?

Сообщение Anonymous »

Я столкнулся с очень интересной проблемой при обучении модели глубокого обучения с использованием Python и Pytorch. Я разработал простой TCN следующим образом: < /p>

Код: Выделить всё

import torch
import torch.nn as nn
class TCN(nn.Module):

def __init__(self, input_size, output_size):
super(TCN, self).__init__()

self.convres = nn.Conv1d(input_size, output_size, kernel_size=1)  ## 1x1 convolution
self.reluRes = nn.ReLU()

self.conv1 = nn.Conv1d(input_size, output_size, kernel_size=3, dilation=1, padding=1)
self.relu1 = nn.ReLU()

self.conv2 = nn.Conv1d(output_size, output_size, kernel_size=3, dilation=2, padding=2)
self.relu2 = nn.ReLU()

self.pool = nn.AdaptiveAvgPool1d(1)
self.fc = nn.Linear(output_size, 1)

def forward(self, x):
# Input shape: BatchSize x Seq_Len x FeatureSize
# Transpose to: BatchSize x FeatureSize x Seq_Len
x = x.permute(0, 2, 1)
residual = self.reluRes(self.convres(x))
x = self.relu1(self.conv1(x))
x = self.relu2(self.conv2(x))
x = x + residual
x = self.pool(x)
x = x.view(x.size(0), -1)
x = self.fc(x)
return x
< /code>
Я обеспечил воспроизводимость, установив случайные семена следующим образом: < /p>
import torch
import numpy as np
import random

def setup_seed(seed):
torch.manual_seed(seed)
torch.cuda.manual_seed_all(seed)
np.random.seed(seed)
random.seed(seed)
torch.backends.cudnn.deterministic = True
< /code>
Проблема:
Когда я начал тренировать модель, я заметил очень медленную скорость тренировок. Даже через один или два часа, потеря первой эпохи еще не была напечатана. Тем не менее, мой GPU - это RTX 4090, поэтому я ожидал, что обучение будет очень быстрой, учитывая, что структура модели довольно проста. < /P>
Исследовать, я провел некоторое тестирование: < /p>

 Я прокомментировал одну строку в прямом проходе: < /li>

x = self.relu2(self.conv2(x))< /code> < /p>
После этого тренировка внезапно стала чрезвычайно быстрой (всего несколько минут на эпоху). < /p>

 Я понял, что реальная проблема была следующей строкой: < /li>
< /ol>
torch.backends.cudnn.deterministic = True

Когда я устанавливаю torch.backends.cudnn.deterministic = true, обучение было мучительно медленным. Когда я установил его на ложь, модель очень быстро обучалась. /> Почему настройка torch.backends.cudnn.deterministic = true приводит к тому, что модель TCN обучается чрезвычайно медленным? Несмотря на то, что модель содержит только стандартные слои Conv1d, я не ожидал такого драматического падения производительности. < /P>
< /li>
Почему комментирует один слой свертки быстрее, даже когда torch.backends.cudnn.deterministic = true? воспроизводимость) без жертвоприношения скорости тренировок, как мне настроить код? Мне очень любопытно относительно основной причины. Большое спасибо!

Подробнее здесь: https://stackoverflow.com/questions/794 ... -model-ext
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка: cupy_backends.cuda.libs.cudnn.cudnnerror: cudnn ошибка: cudnn_status_not_supported
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Ошибка: cupy_backends.cuda.libs.cudnn.cudnnerror: cudnn ошибка: cudnn_status_not_supported
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Ошибка: cupy_backends.cuda.libs.cudnn.cudnnerror: cudnn ошибка: cudnn_status_not_supported
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Крючок мыши с языком, отличным от английского, приводит к чрезвычайно медленной работе мыши.
    Гость » » в форуме C#
    0 Ответы
    99 Просмотры
    Последнее сообщение Гость
  • Как сделать измерения совместимыми между TCN в пространстве и LSTM во времени?
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»