IIUC, вы обучили модель с точностью, равной конкретному значению, скажем, 30%. Когда вы перезагрузите и обучите эту модель, она сохранит модели с точностью ниже 30%, и вы не хотите, чтобы это произошло.
Я проверил исходный код keras и обнаружил, что ModelCheckpoint
имеет атрибут с именем best
, который служит эталоном.
if mode == 'min':
self.monitor_op = np.less
self.best = np.Inf
elif mode == 'max':
self.monitor_op = np.greater
self.best = -np.Inf
else:
if 'acc' in self.monitor or self.monitor.startswith('fmeasure'):
self.monitor_op = np.greater
self.best = -np.Inf
else:
self.monitor_op = np.less
self.best = np.Inf
Но его инициализатор не принимает этот параметр:
def __init__(self, filepath, monitor='val_loss', verbose=0,
save_best_only=False, save_weights_only=False,
mode='auto', period=1):
Так что вы можете установить его вручную после создания ModelCheckpoint
объект, подобный этому:
mcp = ModelCheckpoint(create_save_path(), monitor='val_acc', verbose=2,
save_best_only=True, save_weights_only=False,
mode='auto', period=1)
mcp.best = 0.3
Можно использовать установку SHOWPLAN_ALL и проанализировать вывод.
Не конкретное решение - а ход мыслей.
Рассмотренный sysdepends как потенциальное решение - но это известно ненадежно при содержании всей зависимой информации об объекте.
но как насчет чего-то полученный Lex/Yacc? Существует несколько коммерческих синтаксических анализаторов, например.
Не искал реализацию с открытым исходным кодом, но я думаю, что искал бы тот маршрут. Вот то, как я запустил свой поиск:
Синтаксис BNF для ANSI SQL может быть найден здесь:
С предпочтительной реализацией закона это кажется относительно прямой технической проблемой отсюда. (хотя с некоторым heavylifting, если Вы хотите поддерживать MS расширения SQL),
Решенный для создания использования небольшого приложения Regex для удовлетворения моих текущих потребностей.
Спасибо всем за Ваши ответы.
Вы могли назвать хранимые процедуры программно (в среде разработки) и получить получающиеся столбцы. Возможно, у Вас есть соглашение о присвоении имен, чтобы не звонить, вставляют и обновляют процедуру. Необходимо будет найти способ установить правильные параметры также.
Примечание: Я думаю, что 100%-е надежное решение технически невозможно из-за способа, которым (может) работать хранимая процедура.
Взгляд на этот пример:
[...]
@MyDate datetime
AS
IF (day(@MyDate) = 1)
BEGIN
SELECT * FROM MyFirstTable
RETURN
END
IF (@MyDate > getdate())
SELECT MyID, MyText FROM MySecondTable WHERE ADate > @MyDate
ELSE
EXEC Other_StoredProcedure @MyType, @MyDate
Таким образом, существует две проблемы: получающиеся столбцы могли отличаться, и необходимо будет следовать рекурсивно другим хранимым процедурам.