Вы можете попробовать этот код. Это адаптировано из исходного кода Keras. Я не проверял это сам.
class AdamLearningRateTracker(Callback):
def on_epoch_end(self, logs={}):
beta_1 = self.beta_1,
beta_2 = self.beta_2
optimizer = self.model.optimizer
if optimizer.decay > 0:
lr = K.eval(optimizer.lr * (1. / (1. + optimizer.decay * optimizer.iterations)))
t = K.cast(optimizer.iterations, K.floatx()) + 1
lr_t = lr * (K.sqrt(1. - K.pow(beta_2, t)) /(1. - K.pow(beta_1, t)))
print('lr: {:.6f}\n'.format(lr_t))
Перезапись чего-то является почти универсально плохой идеей - Вы проводите месяцы, работая ни с чем для показа для нее, пока Вы не закончили. И это предполагает, что Вы не становитесь жертвой эффекта второй системы, и что Вы на самом деле заканчиваете.
Рефакторинг является почти наверняка правильным ответом. У меня нет опыта при рефакторинге PHP (я делаю C++ и C#), таким образом, я не могу дать определенный совет. Необходимо продолжить двигаться маленькими шажками.
Но: не отбрасывайте все для перезаписи кода. Осуществляйте рефакторинг постепенно. Это замедлит Вас немного, но Вы будете все еще поставлять значение, как Вы продвигаетесь.
См. эту статью, которая поможет Вам объяснить Технический Долг своему управлению. Это также объяснит, почему они, кажется, не заботятся.
На небольшом уровне, да: обеспечьте новую версию функции, проверьте, что она работает с новым, а также со старым, удалите старое. Это достаточно часто быстрее, чем рефакторинг самого funciton. Но на том уровне, это осуществляет рефакторинг :)
Стратегическая стоимость переписывания фактически всегда превышает рефакторинг.
Вы не можете поставить. Необходимо поддержать старую версию при разработке нового. Если финансы говорят, что необходимо уничтожить переписать проект, Вы ничего не достигли - Ваша рабочая кодовая база находится в плохой форме, как будто ничто никогда не делалось. Вероятно, еще хуже, так как все изменения были kluged на том, потому что "мы выбросим это когда переписать концы так или иначе".
Да сценарии, где переписыванием является более дешевый CAN быть созданным:
Однако, опыт показывает, что код плох по причине, и это - не всегда кодеры, и когда Вы не определите и изменяете причины, переписывание будет упражнением в повторяющейся истории.
Преимущество переписывает, то, что можно взять в учетной записи весь новый материал в фазе анализа, создать модель, более адаптированную к текущим потребностям. С другой стороны, если это только плохо кодировало, не плохо разработанный, нет никакого смысла в выполнении завершенного, переписывают. Просто санируйте/осуществите рефакторинг код.
это - очень твердое решение сделать...
проблема, которую я вижу здесь, что платформа используется и фиксируется в течение долгого времени так там, большое знание вошло в нее, и качество для под управлением проектов очевидно приемлемо. таким образом, при перезаписи его с нуля со всеми требованиями, Вы знаете - можно быть уверены, что Вы забудете что-то, что уже работало (трудно один, чтобы объяснить это клиенту - или Ваш босс ;))
при рефакторинге его - он думает - также трудная задача, так как существует только один парень, который действительно знает соединения в рамках кода - кто не хочет изменять его...
существует три опции:
так или иначе Вы помещаете его - это - плохая ситуация для всех... с тех пор со временем, передавая, одно ответственное за платформу должно будет иметь дело с ним самих, и затем, вероятно, слишком поздно.
Перезапись очень опасна. Вы замените старый хорошо отлаженный код новым кодом, который должен быть отлажен все же. Это представит большую ошибки, и необходимо будет зафиксировать их. Лучше осуществить рефакторинг постепенно - сначала понимают в очень деталях, для чего некоторая часть, затем осуществите рефакторинг его. Таким образом, Вы заменяете меньше кода и понижаете риск представления слишком многих новых ошибок.
Для добавления к тому, что было уже сказано: Попытайтесь получить закрытие сделки управления. Существуют преимущества для нижней строки, когда Вы осуществите рефакторинг - человеко-часы для программирования новых возможностей будут понижаться со временем, а не, ведя к уменьшенной стоимости в зарплате и возможно затратам сервера также. Если ни одно из Вашего управления не понимает, почему рефакторинг стоит, и движение должно сделать Вас более счастливым выполнением Вашего задания, Вы работаете в правильном месте?