Вам следует изменить активацию на выходном слое на сигмовидную, что даст вам значения в диапазоне [0, 1]. Затем вы можете применить порог, чтобы получить двоичные значения.
model.add(tf.keras.layers.Dense(80, activation=keras.activations.sigmoid))
Обратите внимание, что keras вычисляет двоичную точность, установив пороговое значение выходных данных на 0,5, и вычисляет точность каждого выходного сигнала отдельно.
Изучите XAML, особенно привязка.
Microsoft сделала действительно хорошее задание на чистом языке XML для описания расположения GUI и если Вы будете использовать упрощенную версию XAML для Вашего описания UI, то Вы сможете использовать их инструменты для разработчиков к макету UI.
Всего несколько указателей на классических шаблонах разработки; я думаю, что они связаны со зданием GUI:
Я знаю, что Вы спросили о шаблонах для платформ, но тем не менее необходимо полагаться на эти шаблоны, так как разработчики будут, вероятно, использовать платформу с этими понятиями в памяти.
У Вас есть потребности требований / определенные потребности в Вашей платформе? Вы, вероятно, захотите освободить несколько "хороших принципов", если Ваша целевая платформа будет ограничена в памяти/ЦП.
Я имею два для Вас, обратного вызова или уведомления, возможно, это - то, что Вы называете "командами присоединения к виджетам", так или иначе Вы хотите реагировать на изменения в состоянии в Вашем элементе UI. Контроллеру нужно сообщить, что изменение произошло.
Cocoa/UIKit имеет шаблон, который называют "Делегацией" и уведомлениями для выполнения этого, другие используют функции обратного вызова или объекты (Java Swing) или "сигналы и слоты" (QT).
Я очень полезный шаблон, который не происходит в дикой природе очень часто, является способностью предотвратить изменение состояния, самый легкий вариант использования для этого, являюсь контролем ввода, Вы хотите предотвратить потерю фокуса от виджета, когда текст в виджете не соглашается с тем, что Вы ожидали бы. Windows Forms раньше имели это на некоторых элементах, не всех, Какао может сделать это. Это может быть выполнено при помощи возвращаемых значений или параметров ссылки (или указатели) в обратных вызовах, куда вызываемый может связаться назад с инициирующим виджетом
В эти дни применение стилей к ui элементам, т.е. изменение взгляда, не изменяя функциональность также стали очень популярным QT, может сделать это, и я уверен много других библиотек
Банда Четырех Шаблонов "декоратор" также иногда используется для улучшения возможностей виджета, делание чего-то с возможностью прокрутки могло быть сделано через декоратора. Все это зависит от того, как далеко необходимо будет пойти с элементами UI. Удачи, это не легкая задача
EDT: Примените MVC везде, где Вы можете. Первые кандидаты являются любым видом дисплеев списка, не делайте их ответственными за хранение объектов, которые они отображают. Это определенно идет для поля комбинированного списка, поля списка, таблиц и деревьев, Вы могли реализовать это для вводов текста, но это не могло бы стоить издержек.
Некоторые вещи я учился, помогая разработать SingStar PS3
Цепочка командования .
Пример в контексте GUI:
interface IWidget
{
bool HandleEvent(Event event); // returns true if event was handled
// or false if event was ignored
}
class Button : IWidget
{
public override bool HandleEvent(Event event)
{
switch(event.Type)
{
case EventType.MousePressed: DoStuff(); return true;
case EventType.MouseScrolled: return false;
}
}
}
Здесь кнопки не заботятся о событиях прокрутки, поэтому они позволяют своим родителям (цепочку команды ) обрабатывать их. Итак, если у вас есть кнопка в E.g. HTML-страница и пользователь прокручивает кнопку, это обрабатывается родительским виджетом (HTML View) и всей прокрутки страницы.
Для примера использования реального мира в рамках QT см. Bool Qwidget :: Event (Qevent *) и Документация на фильтрах событий .
также см.: Шаблоны дизайна в KDE . KDE - это кроссплатформенная коллекция открытых источников объекта ориентированных на объект C ++ библиотек и программного обеспечения, очень популярна как среда настольных компьютеров Linux. Это слайды с конференции по 2003 год.
Когда-то... Энди :
-121--1536580-В python:
>>> 1.0 / 10
0.10000000000000001
Объясните, как некоторые дроби не могут быть представлены точно в двоичном формате. Точно так же, как некоторые фракции (как 1/3) не могут быть представлены точно в основании 10.
-121--1358921-Инъекция зависимостей иногда может быть полезной.