Skip to content

SahinErtan/Neural-Networks-from-Scratch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sıfırdan Yapay Sinir Ağı Modeli

Hazır kütüphane kullanmadan yapay sinir ağı modeli oluşturarak opencv ve mediapipe kütüphaneleri kullanılarak elde edilmiş olan insan postürüne ait el konum verilerinden sayı tahmini yapmak.

Bağımlılıklar

  • Numpy
  • Pandas
  • Matplotlib
  • OpenCv (Sadece örnek projede veri toplanması ve test edilmesi için)
  • Mediapipe (Sadece örnek projede veri toplanması ve test edilmesi için)

ysagif

Örnek Kullanım Training için:

from training import train
layers = [[42], [1200, "relu"], [600, "sigmoid"], [5, "softmax"]]
net = Net(layers)

data =pandas.read_csv(FILEPATH)
input_data = data.iloc[:,3:45].to_numpy()
output_data = data.iloc[:,45:50].to_numpy()

data = pandas.read_csv(FILEPATH)
validation_data_input = data.iloc[:,3:45].to_numpy()
validation_data_output = data.iloc[:,45:50].to_numpy()

net.train(input_data, output_data, validation_data_input, validation_data_output, 50, 32, learningRate=0.0003,regularization=("None",0), shuffledMode=True, optimizer="None")

net.train(training_input_data, training_output_data, validation_data_input, validation_data_output, epoch, minibatch, learningRate, regularization, shuffledMode, optimizer)

regularization = (Regularization_Name, Regularization_Rate) # Regularizasyon Seçenekleri "L1" ve "L2" shuffledMode: True ya da False # Eğitim sırasında input ve output verisinin her epok arasında karıştırılmasını sağlar optimizer = Optimizer_Name # Optimizasyon Seçenekleri "momentum", "rmsprob" ve "adam"

Test Verisi İçin Örnek Kullanım:

data = pandas.read_csv(FILEPATH)
test_data_input = data.iloc[:, 3:45].to_numpy()
test_data_output = data.iloc[:, 45:50].to_numpy()
net.test(test_data_input,test_data_output)

example1 example2

Eklenenler

  • ELUP, RELU, TANH, Sigmoid, Softmax Fonksiyonları
  • Regularization tek komut ile tüm katmanlara uygulanabiliyor
  • Momentum, RMSProb ve Adam optimizer'ler için kolay kullanılabilir tek fonksiyon
  • Matplotlib ile Training ve Validation dataları için hata ve başarım grafikleri için görselleştirme seçeneği
  • Parametreleri kaydetmek ve eğitilmiş modeli kullanabilmek için seçenek

Eksikler

  • ELUP ve TANH Fonksiyonları Bellekte Aşıma Sebep Oluyor
  • Katman Sayısının Değiştirilememesi
  • İlk rastgele parametre atamaları için seçilebilir randomize metodu (uniform,normal dağılım vs)
  • One Hot Encoding Eklentisi
  • Dropout

About

Multi Layer Perceptron from Scratch

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages