Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-11-2006, 12:02   #21
Syphilis
Junior Member
 
Iscritto dal: Nov 2006
Messaggi: 27
ognuno mette in mostra il proprio cavallo ma nessuno ci sale sopra...
Syphilis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 12:09   #22
dupa
Senior Member
 
L'Avatar di dupa
 
Iscritto dal: Jan 2002
Città: Napoli
Messaggi: 1727
Quote:
Originariamente inviato da Syphilis
ognuno mette in mostra il proprio cavallo ma nessuno ci sale sopra...
Eccoti la documentazione Java:
http://java.sun.com/j2se/1.5.0/docs/index.html

buon divertimento per la conversione del programma.
__________________
Se buttassimo in un cestino tutto ciò che in Italia non funziona cosa rimarrebbe? Il cestino.
dupa è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 12:23   #23
Syphilis
Junior Member
 
Iscritto dal: Nov 2006
Messaggi: 27
hahaahh
Syphilis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 12:37   #24
ekerazha
 
Messaggi: n/a
Quote:
Originariamente inviato da dupa
bè se è per questo allora un programma scritto in ASM potrebbe esser più veloce del rispettivo C++
Il fatto che come spiega anche l'articolo nel confronto Java VS C++, se il programmatore C++ non è molto bravo, allora probabilmente le ottimizzazione "automatiche" di Java avranno la meglio rispetto a una scarsa ottimizzazione manuale fatta dal coder C++

Allo stesso modo un codice assembler può essere in assoluto il più veloce, il fatto è che solo un super-guru potrebbe scrivere un codice asm per un programma molto complesso in modo completamente ottimizzato.. altrimenti rimane solo una gran confusione e difficoltà di mantenere il codice.
Questo è più che certo... ma a "parità di ottimizzazioni" C++ sembrerebbe più veloce.
  Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 14:57   #25
dupa
Senior Member
 
L'Avatar di dupa
 
Iscritto dal: Jan 2002
Città: Napoli
Messaggi: 1727
Quote:
Originariamente inviato da ekerazha
Questo è più che certo... ma a "parità di ottimizzazioni" C++ sembrerebbe più veloce.
sì certo, però l'articolo spiega anche che per "pareggiare le ottimizzazioni", in C++ devi far molto più cose a mano, mentre Java fa tutto in modo molto più automatico.
__________________
Se buttassimo in un cestino tutto ciò che in Italia non funziona cosa rimarrebbe? Il cestino.
dupa è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 15:04   #26
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
C'è qualcuno con un compilatore C++ sottomano che può controllare se il file cpp incollato da Syphilis compila?

Ho provato a fare una traslitterazione al volo ma ci sono alcuni pezzi che mi risultano non inizializzati. Sono quasi certo di aver tradotto tutto passo-passo ma, data la mia totale cecità in materia di reti neurali, potrei benissimo aver scritto il testo della vergine cuccia.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 15:18   #27
Syphilis
Junior Member
 
Iscritto dal: Nov 2006
Messaggi: 27
il testo della vergine cuccia. ahahhaha

dovrebbe esser alquanto giusto...io non lo capisco bene, ma dai commenti che ha messo quel ragazzo indiano che l'ha fatto sembra esserci tutto...non so...grazie mille pgi
Syphilis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 15:23   #28
ekerazha
 
Messaggi: n/a
Quote:
Originariamente inviato da dupa
sì certo, però l'articolo spiega anche che per "pareggiare le ottimizzazioni", in C++ devi far molto più cose a mano, mentre Java fa tutto in modo molto più automatico.
Nessuno lo mette in dubbio..
  Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 21:02   #29
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
1. Premesso che di quanto ho scritto non ho capito ma non dico una virgola, meno;

2. Appurato che "me pare d'avello fatto uguale";

3. Dimostrato che tanto più s'allena Network quanto più ci azzecca e premettendo che, non sapendo quello che ho scritto, potrebbe essere un mero caso;

4. Da ultimo evidenziato che quanto segue non è codice Java ma una mera traslitterazione da C++ a Java con quei due aggiustamenti unicamente introdotti perchè a un certo punto m'ero perso;

Tutto ciò premesso, ecco la versione java che negherò sulla tomba dei miei avi di aver mai scritto.

Codice:
//File Main.java
import java.util.*;
import java.io.*;

public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		PrintStream out = System.out;
		int inp = 2, hid = 2, outp = 1;
		int[] layers = { inp, hid, outp };
		out.println("Enter number of training iterations: ");
		int iter = in.nextInt();
		Network net = new Network(0.1, layers, 3);
		double[] input = {1, 0};
		double[] outputs;
		net.randomizeWeightAndBiases();
		double[][] trainingInputs = {
			{0, 0},
			{1, 0},
			{0, 1},
			{1, 1},
		};
		double[][] trainingOutputs = {
			{0},
			{1},
			{1},
			{0}
		};
		out.println("Starting train...");
		for(int i = 0; i < iter; i++) {
			for(int j = 0; j < 4; j++) {
				net.train(trainingInputs[j], trainingOutputs[j]);
			}
		}
		out.println("End of training.");
		out.println("Start test...");
		for(int j = 0; j < 4; j++) {
			out.println("Case number: " + (j+1));
			net.setInputs(trainingInputs[j]);
			outputs = net.getOutput();
			for(int i = 0; i < inp; i++) {
				out.println("Input: " + (i+1) + " : " + trainingInputs[j][i]);
			}
			for(int i = 0; i < outp; i++) {
				out.println("Output: " + (i+1) + " : " + outputs[i]);
			}
		}
	}
}

class Dendrite {
	private double weight;
	private int pointsTo;

	public Dendrite() {
		weight = 0;
		pointsTo = 0;
	}

	public void setWeight(double weight) {
		this.weight = weight;
	}

	public void setPointsTo(int pointsTo) {
		this.pointsTo = pointsTo;
	}

	public double getWeight() {
		return weight;
	}

	public int getPointsTo() {
		return pointsTo;
	}
}

class Neuron {
	private int id;
	private double value;
	private double bias;
	private double delta;
	private Dendrite[] dendrites;

	public Neuron(int dendritesCount) {
		dendrites = new Dendrite[dendritesCount];
		for(int i = 0; i < dendrites.length; i++) {
			dendrites[i] = new Dendrite();
			dendrites[i].setPointsTo(i);
		}
	}

	public void setDendrites(int dendritesCount) {
		dendrites = new Dendrite[dendritesCount];
		for(int i = 0; i < dendrites.length; i++) {
			dendrites[i] = new Dendrite();
			dendrites[i].setPointsTo(i);
		}
	}

	public Dendrite getDendrite(int index) {
		return dendrites[index];
	}

	public double getDelta() {
		return delta;
	}

	public void setDelta(double delta) {
		this.delta = delta;
	}

	public int getId() {
		return id;
	}

	public void setValue(double value) {
		this.value = value;
	}

	public double getValue() {
		return value;
	}

	public void setBias(double bias) {
		this.bias = bias;
	}

	public double getBias() {
		return bias;
	}
}

class Layer {
	private Neuron[] neurons;

	public Layer(int size) {
		neurons = new Neuron[size];
		for(int i = 0; i < size; i++) {
			neurons[i] = new Neuron(1);
		}
	}

	public Neuron getNeuron(int index) {
		return neurons[index];
	}

	public void setNeuron(Neuron neuron, int index) {
		neurons[index] = neuron;
	}
}

class Network {
	private Random random = new Random();
	private double learningRate;
	private Layer[] layers;
	private int totLayers;
	private int[] neuronInLayer;
	private double[] netInputs;
	private double[] netOutputs;

	public Network(double learningRate, int[] layers, int totLayers) {
		if(totLayers < 2) throw new IllegalArgumentException("layer's count cannot be less than 2");
		this.learningRate = learningRate;
		neuronInLayer = new int[totLayers];
		this.layers = new Layer[totLayers];
		for(int i = 0; i < totLayers; i++) {
			neuronInLayer[i] = layers[i];
			this.layers[i] = new Layer(layers[i]);
		}
		netInputs = new double[layers[0]];
		netOutputs = new double[layers[totLayers - 1]];
		this.totLayers = totLayers;
	}

	public void setInputs(double[] inputs) {
		for(int i = 0; i < neuronInLayer[0]; i++) {
			layers[0].getNeuron(i).setValue(inputs[i]);
		}
	}

	public void randomizeWeightAndBiases() {
		for(int i = 0; i < totLayers; i++) {
			for(int j = 0; j < neuronInLayer[i]; j++) {
				if(i != (totLayers - 1)) {
					layers[i].getNeuron(j).setDendrites(neuronInLayer[i + 1]);
					for(int k = 0; k < neuronInLayer[i + 1]; k++) {
						layers[i].getNeuron(j).getDendrite(k).setWeight(getRand());
					}
				}
				if(i != 0) {
					layers[i].getNeuron(j).setBias(getRand());
				}
			}
		}
	}

	public double[] getOutput() {
		double[] outputs = new double[neuronInLayer[totLayers - 1]];
		for(int i = 1; i < totLayers; i++) {
			for(int j = 0; j < neuronInLayer[i]; j++) {
				layers[i].getNeuron(j).setValue(0);
				for(int k = 0; k < neuronInLayer[i - 1]; k++) {
					layers[i].getNeuron(j).setValue(layers[i].getNeuron(j).getValue() + layers[i - 1].getNeuron(k).getValue() * layers[i - 1].getNeuron(k).getDendrite(j).getWeight());
				}
				layers[i].getNeuron(j).setValue(layers[i].getNeuron(j).getValue() + layers[i].getNeuron(j).getBias());
				layers[i].getNeuron(j).setValue(limiter(layers[i].getNeuron(j).getValue()));
			}
		}
		for(int i = 0; i < neuronInLayer[totLayers - 1]; i++) {
			outputs[i] = layers[totLayers - 1].getNeuron(i).getValue();
		}
		return outputs;
	}

	public void update() {
		getOutput();
	}

	public double limiter(double value) {
		return (1.0 / (1 + Math.exp(-value)));
	}

	public double getRand() {
		return 2 * random.nextDouble() - 1;
	}

	public double sigmaWeightDelta(int layerNumber, int neuronNumber) {
		double result = 0;
		for(int i = 0; i < neuronInLayer[layerNumber + 1]; i++) {
			result = result + layers[layerNumber].getNeuron(neuronNumber).getDendrite(i).getWeight() * layers[layerNumber + 1].getNeuron(i).getDelta();
		}
		return result;
	}

	public void train(double[] inputs, double[] outputs) {
		double target, actual, delta;
		setInputs(inputs);
		update();
		for(int i = totLayers - 1; i > 0; i--) {
			for(int j = 0; j < neuronInLayer[i]; j++) {
				if(i == totLayers - 1) {
					target = outputs[j];
					actual = layers[i].getNeuron(j).getValue();
					delta = (target - actual) * actual * (1 - actual);
					layers[i].getNeuron(j).setDelta(delta);
					for(int k = 0; k < neuronInLayer[i - 1]; k++) {
						double dendriteWeight = layers[i - 1].getNeuron(k).getDendrite(j).getWeight();
						dendriteWeight += delta * learningRate * layers[i - 1].getNeuron(k).getValue();
						layers[i - 1].getNeuron(k).getDendrite(j).setWeight(dendriteWeight);
					}
					layers[i].getNeuron(j).setBias(layers[i].getNeuron(j).getBias() + delta * learningRate * 1);
				} else {
					actual = layers[i].getNeuron(j).getValue();
					delta = actual * (1 - actual) * sigmaWeightDelta(i, j);
					for(int k = 0; k < neuronInLayer[i - 1]; k++) {
						double dendriteWeight = layers[i - 1].getNeuron(k).getDendrite(j).getWeight();
						dendriteWeight += delta * learningRate * layers[i - 1].getNeuron(k).getValue();
						layers[i - 1].getNeuron(k).getDendrite(j).setWeight(dendriteWeight);
					}
					if(i != 0) {
						layers[i].getNeuron(j).setBias(layers[i].getNeuron(j).getBias() + delta * learningRate * 1);
					}
				}
			}
		}
	}
}
Per l'amor di tutti i santi, stacci attento perchè veramente non so il senso di quello che ho scritto .

E' un blocco unico per cui se copi il codice, lo incolli in un file "Main.java" e dai un javac Main.java, il compilatore sfrugullia tutto senza chiedere altro.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 21:36   #30
Syphilis
Junior Member
 
Iscritto dal: Nov 2006
Messaggi: 27
porca puzzola che lavorone grazie mille!!!

mi da un errore qui:

Scanner in = new Scanner(System.in);

Proprio all'inizio del codice settima righa...mi dice cannot find symbol
ora provo a smanettar un pò...speriam di capire!

t'adoro
Syphilis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 21:41   #31
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Ho usato la versione 5 di java. Se non trova Scanner forse usi la 1.4.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 21:44   #32
Syphilis
Junior Member
 
Iscritto dal: Nov 2006
Messaggi: 27
sei aggiornato eh! uhm ed ora come fo?
Syphilis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 21:45   #33
Syphilis
Junior Member
 
Iscritto dal: Nov 2006
Messaggi: 27
direi che è ora di scaricarmi la 5 ahhaha sta su sun immagino ve?
Syphilis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 22:23   #34
Syphilis
Junior Member
 
Iscritto dal: Nov 2006
Messaggi: 27
ma qual'è che devo scaricar?? ho istallata ed ho provato a metterla in netbeans ma nulla...persiste...
Syphilis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 22:36   #35
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Da qui:

http://java.sun.com/javase/downloads/index.jsp

JDK 5.0 Update 9

se l'hai già scaricato e installato controlla che Netbeans lo usi. Dovrebbe esserci un pulsante sotto un tombino, dietro una pietra di fianco a un cespuglio che ti consente di farlo.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 22:39   #36
Syphilis
Junior Member
 
Iscritto dal: Nov 2006
Messaggi: 27
ok quella l'ho scaricata & installata ora tocca trovar il cescpuglio
Syphilis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 22:50   #37
Syphilis
Junior Member
 
Iscritto dal: Nov 2006
Messaggi: 27
niente uhm...non c'è una possibile sostituzione di Scanner?
Syphilis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 22:56   #38
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Puoi usare BufferedReader.

Codice:
	public static void main(String[] args) {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		PrintStream out = System.out;
		int inp = 2, hid = 2, outp = 1;
		int[] layers = { inp, hid, outp };
		out.println("Enter number of training iterations: ");
		int iter;
		try {
			iter = Integer.parseInt(in.readLine());
		} catch(IOException ex) {
			throw new RuntimeException(ex);
		}
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 22:59   #39
Syphilis
Junior Member
 
Iscritto dal: Nov 2006
Messaggi: 27
copio tutto questo al posto di quella righetta?
Syphilis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 23:02   #40
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
No.

Al posto di

Scanner in = new Scanner(System.in)

ci metti

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

e al posto di

int iter = in.nextInt();

ci metti:

Codice:
int iter;
try {
    iter = Integer.parseInt(in.readLine());
} catch(Exception ex) {
    throw new RuntimeException(ex);
}
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Lefant M330 da 6.000Pa a 139€ o ECOVACS ...
Tornano gli sconti anche sulle scope ele...
Le scope elettriche Dreame H12, H14 e H1...
Il nucleo della cometa interstellare 3I/...
La Russia potrebbe sviluppare un'arma pe...
Manda la RAM Corsair in assistenza, rice...
ASUS ROG G1000 con 'AniMe Holo': saranno...
Un test di longevità ha messo alla prova...
Incat inizia i test dell'incredibile tra...
LG Sound Suite: al CES il sistema audio ...
Avengers Doomsday, il primo trailer &egr...
La crisi delle memorie non farà sconti a...
Il trailer più atteso dell'anno &...
I gamer vogliono i monitor OLED: sopratt...
Samsung alza l’asticella dei televisori ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:58.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v