una tutorial redes neuronales neuronal libreria implementacion español convolucionales python neural-network xor keras

tutorial - redes neuronales convolucionales python



Cómo usar keras para XOR (2)

Si aumento el número de épocas en tu código a 50000, a menudo converge a la respuesta correcta para mí, solo toma un poco de tiempo :)

Sin embargo, a menudo se atasca. Obtengo mejores propiedades de convergencia si cambio su función de pérdida a ''mean_squared_error'', que es una función más suave.

Obtengo una convergencia aún más rápida si uso los optimizadores Adam o RMSProp. Mi línea de compilación final, que funciona:

model.compile(loss=''mse'', optimizer=''adam'') ... model.fit(train_data, label, nb_epoch = 10000,batch_size = 4,verbose = 1,shuffle=True,show_accuracy = True)

Quiero practicar keras por código a xor, pero el resultado no es correcto, el siguiente es mi código, gracias a todos por ayudarme.

from keras.models import Sequential from keras.layers.core import Dense,Activation from keras.optimizers import SGD import numpy as np model = Sequential()# two layers model.add(Dense(input_dim=2,output_dim=4,init="glorot_uniform")) model.add(Activation("sigmoid")) model.add(Dense(input_dim=4,output_dim=1,init="glorot_uniform")) model.add(Activation("sigmoid")) sgd = SGD(l2=0.0,lr=0.05, decay=1e-6, momentum=0.11, nesterov=True) model.compile(loss=''mean_absolute_error'', optimizer=sgd) print "begin to train" list1 = [1,1] label1 = [0] list2 = [1,0] label2 = [1] list3 = [0,0] label3 = [0] list4 = [0,1] label4 = [1] train_data = np.array((list1,list2,list3,list4)) #four samples for epoch = 1000 label = np.array((label1,label2,label3,label4)) model.fit(train_data,label,nb_epoch = 1000,batch_size = 4,verbose = 1,shuffle=True,show_accuracy = True) list_test = [0,1] test = np.array((list_test,list1)) classes = model.predict(test) print classes

Salida

[[ 0.31851079] [ 0.34130159]] [[ 0.49635666] [0.51274764]]


Utilicé una única capa oculta con 4 nodos ocultos, y casi siempre converge a la respuesta correcta dentro de las 500 épocas. Usé activaciones sigmoideas.