Я работаю над исследовательским проектом, который предполагает замену определенных активаций ReLu полиномиальными активациями. Унаследованный код использует Keras с бэкэндом TensorFlow, с чем у меня мало опыта.
По сути, я строю ванильный график ResNet, и мне нужно постепенно поменять несколько ReLus с пользовательскими функциями. Другими словами, моя пользовательская активация должна сделать следующее:
def activation(x)
approx = .1992 + .5002*x + .1997*x**2
relu = tf.nn.relu(x)
diff = (TOTAL_EPOCHS - CURRENT_EPOCH) / TOTAL_EPOCHS
return (1-diff)*approx + diff*relu
Проблема, с которой я столкнулся, заключается в том, чтобы выяснить, как сделать функцию динамической в текущей эпохе, используя keras и model.fit. Я пробовал несколько вещей, таких как определение пользовательского слоя, передача переменной счетчика и попытка использовать глобальную переменную шага tenorflow, но с каждой из этих попыток сталкивался с досадными ошибками. Мне было интересно, есть ли простой способ сделать это, что я пропускаю? Кажется, это должно быть тривиально, но мне просто не хватает опыта работы с фреймворком.