Gracias de nuevo por el ejemplo.
El ejercicio me corrió correctamente en jupytrt. Quería consultarte acerca de una duda al inicio de la programación. Cuando creas las arrays para las 4 entradas de la función XOR y sus 4 salidas, estos es:
cargamos las 4 combinaciones de las compuertas XOR
training_data = np.array([[0,0],[0,1],[1,0],[1,1]], "float32")
y estos son los resultados que se obtienen, en el mismo orden
target_data = np.array([[0],[1],[1],[0]], "float32")
Después creas la red, la compilas, la entrenas y la evaluas.
model = Sequential()
model.add(Dense(16, input_dim=2, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='mean_squared_error',
optimizer='adam',
metrics=['binary_accuracy'])
model.fit(training_data, target_data, epochs=1000)
evaluamos el modelo
scores = model.evaluate(training_data, target_data)
En donde se especifica o como hace la red para saber que cada elemento del array de la función XOR corresponde a cada elemento del array de la salida?. Esto es, como sabe que el primer elemento del array de de XOR corresponde al primer elemento del array de salida:
training_data = np.array([[0,0] --> target_data = np.array([[0]
training_data = np.array([[0,1] --> target_data = np.array([[1]
training_data = np.array([[1,0] --> target_data = np.array([[1]
training_data = np.array([[1,1] --> target_data = np.array([[0]
Gracias y saludos.