є «вихід» мережі на подаваний тестовий екземпляр. А конкретно він обчислює і поміщає «реакцію» нейронної мережі - число від 0 до 1, в полі output кожного вихідного нейрона..getOutput (i);
Наведена вище конструкція, зчитує значення поля output.
. 4.2 Опис проекту NetApproximationпроект, що здійснює отримання, обробку даних, виклик методів нейронної мережі і формування матриці апроксимації.
Проект володіє наступною структурою пакетів:
netapproximation.dao.domain.errors.log.service- складається з одного класу Main, що містить крапку в входу в додаток - метод main (). Не містить в собі який-небудь іншої функціональності.
Перед тим як описувати пакет netapproximation.dao напишемо про те, що означає абревіатура DAO:
У програмному забезпеченні data access object (DAO) - це об'єкт, який надає абстрактний інтерфейс до якого-небудь типу бази даних або механізму зберігання. Певні можливості надаються незалежно від того, який механізм зберігання використовується і без необхідності спеціальним чином відповідати цьому механізму зберігання. Цей шаблон проектування застосуємо до безлічі мов програмування, більшості програмних забезпечень, нужденному в зберіганні інформації і до більшої частини баз даних, але традиційно цей шаблон пов'язують з додатками на платформі Java Enterprise Edition, взаємодіючими з реляційними базами даних через інтерфейс JDBC, бо він з'явився в рекомендаціях від фірми Sun Microsystems.
Таким чином netapproximation.dao містить клас для взаємодії з джерелами зберігання інформації. У моєму випадку в якості таких виступають файли. Клас називається CommonDao. Всі його методи статичні. Вони реалізують приміщення списків, множин і хеш-таблиць в файл, а також витяг списків і хеш-таблиць з файлів.
netapproximation.domain - мета цього пакету - містити в собі класи представляють об'єкти розглянутої предметної області. Містить один клас Coordinates, відповідний об'єкту «географічні координати».
netapproximation.errors - містить певні мною класи винятків. Тобто визначивши ці винятки я можу деінде в коді викликати їх. Наприклад можна обробити якесь загальне виняток і взамін нього викликати своє, точно поясняющее що сталося:
try {
//код розбору JSON об'єкта
} catch (ParseException e) {
throw new JSONParseError ( Помилка розбору JSON об'єкта: + e.toString (), e);
}
Замість досить загального ParseException буде отримано JSONParseError, що може полегшити пошук і усунення неполадок.
netapproximation.log - відповідає за логирование. Містить клас Log.
netapproximation.service - цей пакет володіє основною функціональністю пакета. Містить 4 класу:
GetDataService
NormalizeMinMaxService
NormalizeMxDxService
TeachService
GetDataService - містить методи для отримання даних з сервісу OpenWeatherMap і їх обробку.
NormalizeMinMaxService - відповідає за нормалізацію даних для подачі на вхід нейронної мережі з використанням мінімаксної функції.
NormalizeMxDxService - відповідає за нормалізацію даних для подачі на вхід нейронної мережі з використанням математичного очікування і дісперсіі.- містить методи для запуску навчання, тестування, ініціалізації нейронної мережі. Також відповідає за формування матриці апроксимації на основі навченої нейромережі.
. 4.3 Опис проекту WebWeatherView
JavaServer Faces проект реалізує веб уявлення температурних даних.
За допомогою можливостей Javascript бібліотеки Leaflet отрісовивается карта. За допомогою неї ж організована можливість отримання температурних даних в деякій точці шляхом клацання по карті. Відбувається звернення до сервера, він за координатами обчислює результат і повертає його клієнту. Відбувається отрисовка маркера з апроксимувати температурою в цій точці.
Також з використанням JSF компонент, організована можливість пошуку температури в конкретному місті або по конкретних координатах. Після введення даних і натискання кнопки «Пошук» відбувається звернення до сервера за температурою. Отримавши дані програма отрісовиваєт маркер використовуючи Leaflet API.
4 графічного інтерфейсу користувача
Для відображення температурних даних отриманих шляхом апроксимації нейронною мережею було розроблено веб-виставу.
Малюнок 4.1 - Графічний інтерфейс