В tf.get_variable есть параметр ограничения, я полагаю, вы можете использовать его, чтобы задать ограничения в поле для переменной weights, используя tf.clip_by_value в качестве функции проекции.
ограничение: дополнительная проекционная функция, применяемая к переменной после ее обновления оптимизатором (например, используемая для реализации ограничений нормы или значений для весов слоев). Функция должна принимать в качестве входных данных непроецированный тензор, представляющий значение переменной, и возвращать тензор для прогнозируемого значения (которое должно иметь ту же форму). Ограничения небезопасны для использования при проведении асинхронного распределенного обучения.