public class neurale extends JFrame implements NeuralNetListener {



Similar documents
Fondamenti di Java. Introduzione alla costruzione di GUI (graphic user interface)

CS506 Web Design and Development Solved Online Quiz No. 01

WRITING DATA TO A BINARY FILE

USERS MANUAL IN.TRA.NET PROJECT

INPUT AND OUTPUT STREAMS

The Java I/O System. Binary I/O streams (ascii, 8 bits) The decorator design pattern Character I/O streams (Unicode, 16 bits)

C.S.E. Nodi Tipici Parametrizzati al /04/2015 Copyright (c) Castalia srl

Nuovi domini di primo livello - Registra nuove estensioni con FabsWeb_HOST

Capitolo 14: Flussi. Capitolo 14. Flussi Apogeo srl Horstmann-Concetti di informatica e fondamenti di Java 2

Percorso Mcsa Managing and Mainting Windows 8

Passare a Sql Server Compact : come leggere dati da Mdb, Xls, Xml, Dbf, Csv, senza utilizzare Microsoft Jet Database Engine 4.0

D06 PROGRAMMING with JAVA

Advanced Network Programming Lab using Java. Angelos Stavrou

Homework/Program #5 Solutions

The New Luxury World: l identità digitale nel lusso fa la differenza

Chapter 20 Streams and Binary Input/Output. Big Java Early Objects by Cay Horstmann Copyright 2014 by John Wiley & Sons. All rights reserved.

LED Power. Power Supplies for constant current HI-POWER LEDs 350/700mA Alimentatori per LED in corrente costante HI-POWER 350/700mA 82206/700

Source code security testing

Questa versione del programma è da intendersi come provvisoria * da confermare Seguici sui Social Network e commenta con #forumt2s This version is

TP N 10 : Gestion des fichiers Langage JAVA

- ProFTPd: - ftp://ftp.proftpd.org/distrib/source/proftpd tar.gz

The New Luxury World: l identità digitale nel lusso fa la differenza

Java Network Programming. The java.net package contains the Socket class. This class speaks TCP (connection-oriented protocol).

What is an I/O Stream?

Primiano Tucci Università di Bologna

Corso: Supporting and Troubleshooting Windows 10 Codice PCSNET: MW10-3 Cod. Vendor: Durata: 5

CS 1302 Ch 19, Binary I/O

1 /*ora sincrinizzata con NTP. Inserendo codice OTP si attiva un servo che ruota di 95 grad. Per chiudere il servo premere 2 "*" mentre per azzerrare

RPS. Sanitary sampling valves SAMPLING

File I/O - Chapter 10. Many Stream Classes. Text Files vs Binary Files

Chulalongkorn University International School of Engineering Department of Computer Engineering Computer Programming Lab.

PROGRAMMA CORSO DI LOGIC PRO 9

Using Files as Input/Output in Java 5.0 Applications

Our analysis of the results of the experiment did not provide an explanation of its failure, because our data collection lacked the precision needed.

How to renew S&S Video Italian version IBM Corporation

Corso: Mastering Microsoft Project 2010 Codice PCSNET: MSPJ-11 Cod. Vendor: Durata: 3

ICT PSP: regole e consigli per la partecipazione

Technological enhancements in B2B integration introduced by the new IT platform to manage the Commercial Process Nomination and Balancing

Alberto Meneghini! Security Leader, IBM Italia! IBM Security IBM Corporation IBM Corporation

ITIL v3 - Overview. Claudio Tancini Marzo 2015 INTERNAL USE ONLY

Banners Broker è una. Compagnia di pubblicità online

JAVA - FILES AND I/O

CS108, Stanford Handout #33. Sockets

public class demo1swing extends JFrame implements ActionListener{

SCADA / Smart Grid Security Who is really in control of our Control Systems?

22/11/ :08:30 Pag. 1/10

n N e E 0 m A R sr S l /01

CAR AND THE CITY: ATTORI INNOVATIVI E SCENARI SOCIO-TECNOLOGICI. Gerardo Marletto TAT/Lab, Università di Sassari marletto@uniss.it

An Overview of Java. overview-1

8Q PRQGR GL FRQWHQLWRUL $ ZRUOG RI HQFORVXUHV

Rimaniamo a Vs. disposizione per eventuali chiarimenti o ulteriori informazioni. Cordiali saluti, Angelo Musaio Michela Parodi

DTI / Titolo principale della presentazione IPHONE ENCRYPTION. Litiano Piccin. 11 ottobre 2014

// Correntista. //Conta Corrente. package Banco; public class Correntista { String nome, sobrenome; int cpf;

Programmable Graphics Hardware

Your 2 nd best friend

! "# $%&'( ) * ).) "%&' 1* ( %&' ! "%&'2 (! ""$ 1! ""3($

GOLD EFFECT series MRK

Preet raj Core Java and Databases CS4PR. Time Allotted: 3 Hours. Final Exam: Total Possible Points 75

ipratico POS Quick Start Guide v. 1.0

INCISIONI & STAMPE.

c-pro nano RACK & c-pro micro RACK

Building a Multi-Threaded Web Server

The Economic Outlook Il quadro economico INTELLIGENCE ON THE WORLD, EUROPE, AND ITALY LO SCENARIO DI OGGI E DI DOMANI PER LE STRATEGIE COMPETITIVE

Colonna in estruso di alluminio leggera e di facile installazione Mast in aluminum very light and easy to install

ROSA ANTICO series MRK

CBC (EUROPE) Srl NOTA APPLICATIVA

How To Write A Program For The Web In Java (Java)

Controllo remoto degli apparecchi LOVATO (schemi di connessione) GB Remote control for LOVATO devices (connection drawing)

Files and input/output streams

Chapter 10. A stream is an object that enables the flow of data between a program and some I/O device or file. File I/O

Alzatine in alluminio e PVC Aluminium and PVC back-splashes

Cifratura Dati in Tabelle MySQL

Lösningsförslag till tentamen

ANTAREX. AutoTuning and Adaptivity approach for Energy efficient exascale HPC systems. Type of action: H2020: Research & Innovation Actions (RIA)

TDD da un capo all altro. Matteo Vaccari (cc) Alcuni diritti riservati

Ferramedia Network business center Berlin Dubai, Mumbai e Palermo. sister companies

Creating a Simple, Multithreaded Chat System with Java

TP1 : Correction. Rappels : Stream, Thread et Socket TCP

MADE IN ITALY. Sistemi di connessione per fotovoltaico Connection systems for photovoltaic. TÜV certification EN 50521:2008 SC3

Geo-Platform Introduction

RAPPORTO DI PROVA TEST REPORT

Stilografi ca media in metacrilato con veretta in argento Medium fountain pen - methacrylate - silver ring cod. PP0601

Main Points. File layout Directory layout

DIRECTORS AND OFFICERS PROPOSTA DI POLIZZA

СПбНИУ ИТМО Кафедра ВТ. Лабораторная работа 5 по дисциплине «Программирование интернет-приложений» Вариант Выполнил Широков О.И гр.

Certificates, Certification Authorities and Public-Key Infrastructures

Titoli delle qualifiche

Transcription:

/* questo file contiene le funzioni che permettono la gestione della rete neurale. In particolare qui si implementa la fase di apprendimento e di addestramento. */ package neurofuzzy; import org.joone.engine.*; import java.awt.gridlayout; import java.awt.*; import org.joone.io.*; import java.io.*; import java.beans.*; import org.joone.net.neuralnet; import org.joone.engine.learning.teachingsynapse; import org.joone.net.neuralnetloader; import javax.swing.*; import org.apache.xerces.parsers.saxparser; import org.xml.sax.*; import org.xml.sax.helpers.defaulthandler; public class neurale extends JFrame implements NeuralNetListener { JProgressBar progress = new JProgressBar(0, 5000); Thread esecutore; int avanza = 0; NeuralNet nnet = new NeuralNet(); // creazione dei tre strati LinearLayer input = new LinearLayer(); SigmoidLayer hidden = new SigmoidLayer(); SigmoidLayer output = new SigmoidLayer(); //definizione del componente trainer // riferimento all'oggetto monitor da parte dei vari strati TeachingSynapse trainer = new TeachingSynapse(); public neurale() { super(); settitle("addestramento rete in corso..."); JPanel panel = new JPanel(); panel.setlayout(new FlowLayout()); progress.setvalue(0); progress.setstringpainted(true); panel.add(progress); setcontentpane(panel); public void run() { while(avanza <= 5000){ progress.setvalue(avanza); try {

Thread.sleep(1000); catch (InterruptedException e) { avanza += 500; public void inizializza(string uri, String uri2, int num){ // settaggio dimensioni dei strati input.setrows(11); hidden.setrows(30); output.setrows(1); // settaggio nomi degli strati input.setlayername("strato.input"); hidden.setlayername("strato.hidden"); output.setlayername("strato.output"); // creazione due tipi di sinapsi FullSynapse sinapsi_ih = new FullSynapse(); /* input -> hidden */ FullSynapse sinapsi_ho = new FullSynapse(); /* hidden -> output */ // connessione strato input con strato nascosto input.addoutputsynapse(sinapsi_ih); hidden.addinputsynapse(sinapsi_ih); // connessione strato nascosto con strato output hidden.addoutputsynapse(sinapsi_ho); output.addinputsynapse(sinapsi_ho); //creazione sinapsi di input FileInputSynapse inputstream = new FileInputSynapse(); inputstream.setfilename(uri); inputstream.setadvancedcolumnselector("1-11"); input.addinputsynapse(inputstream); //collegamento file risultati con sinapsi di uscita FileOutputSynapse fileoutput = new FileOutputSynapse(); fileoutput.setfilename("risultati.xml"); output.addoutputsynapse(fileoutput); /* Definiamo il file contenente i valori desiderati */ FileInputSynapse samples = new FileInputSynapse(); samples.setfilename(uri); /* I valori di output desiderati sono nella terza colonna */

samples.setadvancedcolumnselector("12"); /* Ora attacchiamo il componente di input al trainer */ trainer.setdesired(samples); output.addoutputsynapse(trainer); nnet.addlayer(input, NeuralNet.INPUT_LAYER); nnet.addlayer(hidden, NeuralNet.HIDDEN_LAYER); nnet.addlayer(output, NeuralNet.OUTPUT_LAYER); //settaggio parametri monitor Monitor monitor = nnet.getmonitor(); monitor.setlearningrate(0.7); monitor.setmomentum(0.5); monitor.addneuralnetlistener(this); monitor.settrainingpatterns(num); /* num. di righe nel file di input */ monitor.settotcicles(1000); /* Num. totale di cicli di addestramento */ monitor.setlearning(true); //avvio della rete //nnet.start(); //nnet.getmonitor().go(); /* Partenza! */ interrogate(uri2); private void interrogate(string name) { // neuralnet is an instance of NeuralNet Monitor monitor=nnet.getmonitor(); monitor.settotcicles(1000); monitor.setlearning(true); FileOutputSynapse output=new FileOutputSynapse(); // set the output synapse to write the output of the net output.setfilename(name); // inject the input and get the output if(nnet!=null) { nnet.addoutputsynapse(output); nnet.start(); monitor.go(); nnet.join(); public void salvataggio(string nome_file, neurale nne){ //Monitor monitor = nnet.getmonitor(); //monitor.settotcicles(1); //monitor.setlearning(false);

/*FileOutputStream stream = new FileOutputStream(nome_file); ObjectOutputStream out = new ObjectOutputStream(stream); out.writeobject(input); out.writeobject(hidden); out.writeobject(output); out.writeobject(trainer); out.close();*/ public void caricamento(string nome_file) throws FileNotFoundException, IOException, ClassNotFoundException { FileInputStream stream = new FileInputStream(nome_file); ObjectInputStream inp = new ObjectInputStream(stream); Layer input = (Layer)inp.readObject(); Layer hidden = (Layer)inp.readObject(); Layer output = (Layer)inp.readObject(); TeachingSynapse trainer = (TeachingSynapse)inp.readObject(); Monitor monitor = input.getmonitor(); monitor.addneuralnetlistener(this); input.start(); hidden.start(); output.start(); monitor.go(); public void netstarted(neuralnetevent neuralnetevent) { //JOptionPane.showMessageDialog(null, "Addestramento rete in corso..."); public void cicleterminated(neuralnetevent neuralnetevent) { Monitor mon = (Monitor)neuralNetEvent.getSource(); long c = mon.getcurrentcicle(); long cl = c / 100; /*Vogliamo visualizzare l'errore ogni 500 cicli */ if ((cl * 100) == c){ System.out.println(""+c + " cicli rimasti - Errore = "+ mon.getglobalerror()); public void netstopped(neuralnetevent neuralnetevent) {

JOptionPane.showMessageDialog(null, "Rete neurale stoppata!!!"); public void errorchanged(neuralnetevent neuralnetevent) { public void netstoppederror(neuralnetevent neuralnetevent, String string) {