Как TensorFlow обрабатывает обратное распространение ошибки через смешанные вещественные и сложные функции?Python

Программы на Python
Ответить
Anonymous
 Как TensorFlow обрабатывает обратное распространение ошибки через смешанные вещественные и сложные функции?

Сообщение Anonymous »

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

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

import tensorflow as tf

# input: real-valued bits
bits = tf.random.uniform([batch_size, num_bits], 0, 2, dtype=tf.int32)

# f1: Neural mapper (real → complex)
symbols = neural_mapper(bits)  # output: complex64

# f2: Channel (complex → complex)
received = OFDMChannel(symbols)  # output: complex64

# f3: Neural demapper (complex → real)
llrs = neural_demapper(received)  # output: float32

# loss: real-valued
loss = tf.nn.sigmoid_cross_entropy_with_logits(labels=bits, logits=llrs)
Когда я использую tf.GradientTape() для вычисления градиентов и обновления параметров нейронного картографа, кажется, что обучение работает без каких-либо ошибок (поэтому потери выполняют обратное распространение через несколько функций обратно в нейронный картограф). Но я не понимаю:
  • Как работает правило цепочки, когда мы смешиваем сложные и реальные домены? Правило математической цепочки, которое я изучил, предполагает, что все находится в одном домене.
  • Что происходит на границах домена? Например:
    • Когда нейронный_маппер выводит сложные значения из реальных входных данных
    • Когда такие операции, как tf.abs(), tf.angle() или tf.real() конвертировать сложное в реальное
    • Когда потеря распространяется обратно на слои с комплексными значениями
  • Выполняет ли TensorFlow:
    • Автоматическое преобразование всего в реальное (например, обработка сложного сигнала как двух реальных каналов)?
    • Использовать какую-либо форму комплексного дифференцирования (производные Виртингера)? Но если да, то обрабатывает ли он реальные и сложные типы операций по-разному?


Подробнее здесь: https://stackoverflow.com/questions/798 ... lex-functi
Ответить

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

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

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

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

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