Ich versuche, ein einfaches neuronales Feed-Forward-Netzwerk zu betreiben und meine Trainings- und Testgenauigkeit scheint in allen Epochen gleich zu sein.Verlust und Genauigkeit bleibt gleich durch mein Training
from keras.models import Sequential
from keras.layers import Dense
from keras.utils import plot_model
from IPython import embed
from keras import optimizers
from keras import backend as K
import keras
import numpy as np
import glob
import pre_process_data as dataProc
def network():
path = '/home/RD*'
files = glob.glob(path)
model = Sequential()
model.add(Dense(2048, input_shape=(10030,),name="dense_one"))
model.add(Dense(2048,activation='softmax',name = "dense_two"))
model.add(Dense(4,activation='tanh',name = "dense_three"))
#model.add(Dense(4,activation = 'relu',name = "dense_four"))
for l in model.layers:
print l.name, l.input_shape , "=======>", l.output_shape
print model.summary()
model.compile(loss = 'categorical_crossentropy',
optimizer = "adam",
metrics = ['accuracy'])
#Reads data from text files
pre_proc_data = dataProc.OnlyBestuData()
data = pre_proc_data[:,0:-1]
labels = pre_proc_data[:, -1]
labels = np.random.randint(0,4,32) #Generate random lables
one_hot_labels = keras.utils.to_categorical(labels, num_classes=4)
model.fit(x = data,y = one_hot_labels ,epochs = 10, batch_size = 2, verbose = 2)
#embed()
def main():
with K.get_session():
network()
main()
Meine Ausgabe ist unten eingefügt. Ich versuche zu lernen, wie neuronale Netzwerke funktionieren und daher habe ich ein sehr einfaches Feed-Forward-Netzwerk geschrieben. Ich habe versucht, den Optimierer von "Adam" zu "SGD" mit Lernraten von 0,01 zu ändern. Doch mein Netzwerk gibt mir den ständigen Verlust und die Genauigkeit. Da es sich um ein kleines Netzwerk handelt, beträgt die Größe des gesamten Eingangs 32x10030, wobei jede Zeile eine Menge von gemeinsamen Positionen darstellt.
Können Sie mir sagen, was hier schief gehen könnte?
Ausgang:
Epoch 1/10
5s - loss: 9.6919 - acc: 0.4375
Epoch 2/10
5s - loss: 9.5701 - acc: 0.4688
Epoch 3/10
5s - loss: 9.5701 - acc: 0.4688
Epoch 4/10
5s - loss: 9.5701 - acc: 0.4688
Epoch 5/10
5s - loss: 9.5701 - acc: 0.4688
Epoch 6/10
5s - loss: 9.5701 - acc: 0.4688
Epoch 7/10
5s - loss: 9.5701 - acc: 0.4688
Epoch 8/10
5s - loss: 9.5701 - acc: 0.4688
Epoch 9/10
5s - loss: 9.5701 - acc: 0.4688
Epoch 10/10
5s - loss: 9.5701 - acc: 0.4688
Warum generieren Sie zufällig Ihre Etiketten? Und wenn es nur zum Testen ist - warum halten Sie sich nicht an einen gemeinsamen Datensatz, um eine Basislinie zu erhalten? – petezurich
Ja, das macht mehr Sinn. Ich werde das auf einer gemeinsamen Basis versuchen. Ich wollte nur sicherstellen, dass das Skelett meines Codes richtig ist. – deeplearning
Noch eine Sache, die ich bemerke: Ihre letzte Schicht sollte mit Softmax-Aktivierung eingestellt werden. ReLu macht da keinen Sinn, weil es die «entscheidende» Ebene ist. – petezurich