Как определить тензор PyTorch, который поддается обучению лишь частичноPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как определить тензор PyTorch, который поддается обучению лишь частично

Сообщение Anonymous »

Я пытаюсь создать пользовательскую модель для обучения в PyTorch, и, короче говоря, мне нужно создать тензор со всеми элементами, установленными в ноль, за исключением прямоугольного субдиагонального блока. Крайне важно, что процесс оптимизации должен затрагивать только элементы этого субдиагонального блока, оставляя все нули нетронутыми. Для этого я определил собственную сеть pytorch и определил свой прямоугольный блок с помощью nn.Parameter

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

class My_Network(nn.Module):
def __init__(self , vertical_dim , horizontal_dim):
super().__init__()
self.total_dim = vertical_dim + horizontal_dim
self.subdiagonal_block = nn.Parameter(torch.rand(vertical_dim , horizontal_dim))

Таким образом, поправьте меня, если я ошибаюсь, PyTorch должен инициализировать значения этого тензора случайными значениями и зарегистрировать их как параметры модели, подлежащей оптимизации во время обучения. Но теперь я застрял, я хочу сказать PyTorch построить тензор квадратной матрицы с размером, равным self.total_dim, то есть все нули, за исключением субдиагонального блока, и, как я говорил в вычислении который я определю в прямом методе, pytorch должен обучать только субдиагональный блок.
Я могу добавить тензор нулей по своему усмотрению, не устанавливая его в качестве параметра модели, вот так (если не ошибаюсь):

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

class My_Network(nn.Module):
def __init__(self , vertical_dim , horizontal_dim):
super().__init__()
self.total_dim = vertical_dim + horizontal_dim
self.subdiagonal_block = nn.Parameter(torch.rand(vertical_dim , horizontal_dim))
self.total_zero_tensor = torch.zeros(self.total_dim, self.total_dim)

Но как мне теперь сказать PyTorch, чтобы он вставил мой поддиагональный блок в левый нижний угол этой матрицы нулей? Мне нужно определить эту матрицу для последующих вычислений (мне нужно будет выполнить умножение матриц), но важно, чтобы только небольшой субдиагональный блок рассматривался как набор параметров, подлежащих обучению.

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Использование оператора LIKE, когда значение параметра лишь частично соответствует значению поля.
    Anonymous » » в форуме Php
    0 Ответы
    81 Просмотры
    Последнее сообщение Anonymous
  • React Native BackgroundImage показывает лишь частично
    Anonymous » » в форуме Android
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • React Native BackgroundImage показывает лишь частично
    Anonymous » » в форуме IOS
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • React Native BackgroundImage показывает лишь частично
    Anonymous » » в форуме Android
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • React Native BackgroundImage показывает лишь частично
    Anonymous » » в форуме IOS
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

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