import numpy as np
import keras as k
from keras.layers import Input, Dense
from keras.models import Model
#
xData = np.full((4, 2), 0, dtype=np.float32)
yTrainData = np.full((4, 2), 0, dtype=np.float32)
#
xData[0][0] = 0
xData[0][1] = 0
xData[1][0] = 1
xData[1][1] = 0
xData[2][0] = 0
xData[2][1] = 1
xData[3][0] = 1
xData[3][1] = 1
yTrainData[0][0] = 1
yTrainData[0][1] = 0
yTrainData[1][0] = 0
yTrainData[1][1] = 1
yTrainData[2][0] = 0
yTrainData[2][1] = 1
yTrainData[3][0] = 1
yTrainData[3][1] = 0
inputs = Input(shape=(2,))
x = Dense(2, input_dim=2, activation='sigmoid')(inputs)
predictions = Dense(2, input_dim=2, activation='softmax')(x)
model = Model(inputs=inputs, outputs=predictions)
#
#
model.compile(optimizer='Adam',
loss='binary_crossentropy',
metrics=['accuracy'])
# training
model.fit(xData, yTrainData,
epochs=5000,
batch_size=4,
verbose=2)
print("saving...")
model.save("model.h5")
model.save_weights("modelweights.h5")
model = k.models.load_model("model.h5")
model.load_weights("modelweights.h5")
for i in range(0, 4):
res = model.predict(np.reshape(xData[i], (1, 2)))
if res[0][0] > res[0][1]:
y = 0
else:
y = 1
print("%d xor %d = %s" % (xData[i][0], xData[i][1], y))
import keras as k
from keras.layers import Input, Dense
from keras.models import Model
#
xData = np.full((4, 2), 0, dtype=np.float32)
yTrainData = np.full((4, 2), 0, dtype=np.float32)
#
xData[0][0] = 0
xData[0][1] = 0
xData[1][0] = 1
xData[1][1] = 0
xData[2][0] = 0
xData[2][1] = 1
xData[3][0] = 1
xData[3][1] = 1
yTrainData[0][0] = 1
yTrainData[0][1] = 0
yTrainData[1][0] = 0
yTrainData[1][1] = 1
yTrainData[2][0] = 0
yTrainData[2][1] = 1
yTrainData[3][0] = 1
yTrainData[3][1] = 0
inputs = Input(shape=(2,))
x = Dense(2, input_dim=2, activation='sigmoid')(inputs)
predictions = Dense(2, input_dim=2, activation='softmax')(x)
model = Model(inputs=inputs, outputs=predictions)
#
#
model.compile(optimizer='Adam',
loss='binary_crossentropy',
metrics=['accuracy'])
# training
model.fit(xData, yTrainData,
epochs=5000,
batch_size=4,
verbose=2)
print("saving...")
model.save("model.h5")
model.save_weights("modelweights.h5")
model = k.models.load_model("model.h5")
model.load_weights("modelweights.h5")
for i in range(0, 4):
res = model.predict(np.reshape(xData[i], (1, 2)))
if res[0][0] > res[0][1]:
y = 0
else:
y = 1
print("%d xor %d = %s" % (xData[i][0], xData[i][1], y))