PCkurier - poradnik menedżera IT  
Szukaj:
    
Pomoc
 w Archiwum  w Wiadomościach
 
  Akademia   IT.Forum   IT Track
 
Strona główna
Wiadomości
Nowy numer
Archiwum
Prenumerata
Kurs HTML
Redakcja
REKLAMA
Zasoby WWW
Info
Pytamy
Czy korzystasz z komunikatorów do celów służbowych?
Tak Nie
Polecamy
Konfiguracja i zarządzanie
Urządzenia pamięci masowej
Koniec ery faksów
Środowisko drukowania iPrint
Komponenty i obiekty
Środowisko drukowania NDPS
Czekając na walec
Globalna gmina
Informatyzacja w parterze
Globalna gmina
Łódzki początek...
Globalna gmina
Wielki przekręt
Fałszerstwa księgowe
Krucjata KPWiG
Fałszerstwa księgowe
Dystans do distance learning
E-szkolenia
Wielość w jednym
Routery wielofunkcyjne
Wydajemy
AEC Forum
Cad/Cam forum
CRN
Enter
Tele.Net Forum
 
/*
 * Neuron.cpp
 * Copyright (C) 2000 Janusz Gregorczyk
 * jgregor@kki.net.pl
 */

#include <cstdlib>
#include <cmath>
#include <string>
using namespace std;

#include "

Neuron.h"

/* ====================================================== */
/* zwraca losową liczbę z danego zakresu */
inline double RAND(double lo, double hi) {
  return (double(rand()) / RAND_MAX) * (hi - lo) + lo;
}

Neuron::Neuron(int n) {
  input.resize(n); weight.resize(n); dWeight.resize(n);

  /* wagi inicjalizujemy niewielką wartością losową */
  for (int i = 0; i < inputs(); i++) {
    weight[i] = RAND(-0.5, 0.5);
    dWeight[i] = 0.0;
  }

  activation = 0.0; threshold = 1.0;
}

void Neuron::propagate() {
  activation = 0.0;

  /* oblicz ważoną sumę wejść... */
  for (int i = 0; i < inputs(); i++) {
    activation += weight[i] * input[i];
  }
  /* ... i uwzględnij próg */
  activation += threshold;

  /* oblicz wartość funkcji przejścia */
  /* i jej pierwszej pochodnej */
  switch (activationFunction) {
    case Linear:
      output = activation;
      dOutput = 1.0;
      break;

    case Sigmoid:
    default:
      output = 1.0 / (1.0 + exp(-activation));
      dOutput = output * (1.0 - output);
  }
}

void Neuron::setInput(const std::vector<double>& x) {
  for (int i = 0; i < inputs(); i++) {
    input[i] = x[i];
  }
}

/* ====================================================== */
Proponujemy
Dla AMD architektura x86-64 ma stanowić trampolinę do skoku na obszary zajmowane dotychczas przez Intela i byłych potentatów serwerowych. Samo opanowanie luki, jaką obecnie stanowi klasa stacji roboczych, byłoby już ogromnym sukcesem, firma z Sunnyvale mierzy jednak znacznie wyżej. Zdecydowana większość skoków z trampoliny to, pomimo wysokiego odbicia i efektownych ewolucji, skoki w dół. Jak może to wyglądać w przypadku AMD? - zainteresowanych odsyłamy do tekstu "Trampolina na 64 bity".
Organizujemy
Internet dla firm
Warszawa, 5 XII 2002 r.
Patronujemy
Profesjonalne szkolenia informatyczne
PCkurier patronuje organizowanym przez CE EduSoft szkoleniom informatycznym. Dla naszych prenumeratorów przewidziane są 10-procentowe zniżki na wybrane kursy
Wiadomości | Nowy numer | Archiwum | Akademia | IT.Forum | IT Track
Prenumerata | Redakcja | Reklama | Zasoby WWW | Kurs HTML
Lupus sp. z o.o. | Polityka prywatności | Wszelkie prawa zastrzeżone | Info | webmaster@pckurier.pl