Шаблоны Платформы GUI? [закрытый]

Вам следует изменить активацию на выходном слое на сигмовидную, что даст вам значения в диапазоне [0, 1]. Затем вы можете применить порог, чтобы получить двоичные значения.

model.add(tf.keras.layers.Dense(80, activation=keras.activations.sigmoid))

Обратите внимание, что keras вычисляет двоичную точность, установив пороговое значение выходных данных на 0,5, и вычисляет точность каждого выходного сигнала отдельно.

7
задан Hortitude 25 November 2008 в 19:11
поделиться

6 ответов

Изучите XAML, особенно привязка.

Microsoft сделала действительно хорошее задание на чистом языке XML для описания расположения GUI и если Вы будете использовать упрощенную версию XAML для Вашего описания UI, то Вы сможете использовать их инструменты для разработчиков к макету UI.

1
ответ дан 6 December 2019 в 10:55
поделиться

Всего несколько указателей на классических шаблонах разработки; я думаю, что они связаны со зданием GUI:

  • Шаблон MVC obvisously.
  • Шаблон "наблюдатель"; например, Представление должно наблюдать Модель (для знания, когда ее изменения состояния), и Контроллер должен наблюдать Представление (для знания, когда кнопка нажата).
  • Стратегическая модель; в некотором смысле, использование контроллера как связующее звено между Представлением и Моделью выбор Strategy. В теории необходимо смочь переключить Контроллер прозрачно.
  • Составной шаблон; Ваше представление похоже на дерево областей, виджеты и так далее. Наличие единого интерфейса и способа выполнить итерации по этому набору полезно, когда необходимо назвать что-то как "view.paint ()".

Я знаю, что Вы спросили о шаблонах для платформ, но тем не менее необходимо полагаться на эти шаблоны, так как разработчики будут, вероятно, использовать платформу с этими понятиями в памяти.

У Вас есть потребности требований / определенные потребности в Вашей платформе? Вы, вероятно, захотите освободить несколько "хороших принципов", если Ваша целевая платформа будет ограничена в памяти/ЦП.

4
ответ дан 6 December 2019 в 10:55
поделиться

Я имею два для Вас, обратного вызова или уведомления, возможно, это - то, что Вы называете "командами присоединения к виджетам", так или иначе Вы хотите реагировать на изменения в состоянии в Вашем элементе UI. Контроллеру нужно сообщить, что изменение произошло.

Cocoa/UIKit имеет шаблон, который называют "Делегацией" и уведомлениями для выполнения этого, другие используют функции обратного вызова или объекты (Java Swing) или "сигналы и слоты" (QT).

Я очень полезный шаблон, который не происходит в дикой природе очень часто, является способностью предотвратить изменение состояния, самый легкий вариант использования для этого, являюсь контролем ввода, Вы хотите предотвратить потерю фокуса от виджета, когда текст в виджете не соглашается с тем, что Вы ожидали бы. Windows Forms раньше имели это на некоторых элементах, не всех, Какао может сделать это. Это может быть выполнено при помощи возвращаемых значений или параметров ссылки (или указатели) в обратных вызовах, куда вызываемый может связаться назад с инициирующим виджетом

В эти дни применение стилей к ui элементам, т.е. изменение взгляда, не изменяя функциональность также стали очень популярным QT, может сделать это, и я уверен много других библиотек

Банда Четырех Шаблонов "декоратор" также иногда используется для улучшения возможностей виджета, делание чего-то с возможностью прокрутки могло быть сделано через декоратора. Все это зависит от того, как далеко необходимо будет пойти с элементами UI. Удачи, это не легкая задача

EDT: Примените MVC везде, где Вы можете. Первые кандидаты являются любым видом дисплеев списка, не делайте их ответственными за хранение объектов, которые они отображают. Это определенно идет для поля комбинированного списка, поля списка, таблиц и деревьев, Вы могли реализовать это для вводов текста, но это не могло бы стоить издержек.

5
ответ дан 6 December 2019 в 10:55
поделиться

Некоторые вещи я учился, помогая разработать SingStar PS3

  • Это помогает сохранить Вашу логику компонента (как кнопка работает), и Ваша визуальная логика (как представить изображение), отдельный. Это особенно хорошо, когда Вы придумываете полностью новый способ представить что-то, и он работает с Вашими старыми кнопочными управлениями прозрачно.
  • Настройте гибкий способ связать источник данных в Вашем приложении к странице, полной компонентов, таким образом, те же компоненты могут показать все песни на одной странице или все фотографии на другом. Это - то, где MVC натолкнулся на SingStar
  • Отправка события / модели получения события (т.е. Вы подписываетесь на щелчок кнопки) является довольно хорошим способом связать макет страницы с Вашим кодом. Это может стать спагетти, если Вы не осторожны.
  • Не изобретайте другой язык программирования для описания логики, текущий язык программирования прекрасен, вероятно.
  • Рассмотрите шаги при изменении от одной страницы до другого. Многое из этого сводится к Вашему использованию памяти, но мог бы быть момент, где или две страницы загружаются или никакие страницы, загружаются. Думайте о коммуникации межстраницы здесь.
  • Диск данных расположение Вашей страницы. Позвольте заменять в горячем режиме расположения (нажмите клавишу для перезагрузки его от ПК), поскольку Вы выполните итерации на нем в большой степени.
3
ответ дан 6 December 2019 в 10:55
поделиться

Цепочка командования .

Пример в контексте 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 год.

3
ответ дан 6 December 2019 в 10:55
поделиться

Когда-то... Энди :

enter image description here

-121--1536580-

В python:

>>> 1.0 / 10
0.10000000000000001

Объясните, как некоторые дроби не могут быть представлены точно в двоичном формате. Точно так же, как некоторые фракции (как 1/3) не могут быть представлены точно в основании 10.

-121--1358921-

Инъекция зависимостей иногда может быть полезной.

2
ответ дан 6 December 2019 в 10:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: