Code Sélectionner import tensorflow as tf |
Code Sélectionner X = np.array([[0, 0], [0, 1], [1, 0], [1, 1]]) |
Code Sélectionner n_input = 2 |
Code Sélectionner weights = { |
Code Sélectionner def sigmoid(x): |
Code Sélectionner def forward_propagation(x): |
Code Sélectionner def cost(y_pred, y_true): |
Code Sélectionner learning_rate = 0.1 |
n_epochs = 10000
for epoch in range(n_epochs):
with tf.GradientTape() as tape:
y_pred = forward_propagation(X)
loss = cost(y_pred, y)
gradients = tape.gradient(loss, [weights['hidden'], weights['output'], biases['hidden'], biases['output']])
optimizer.apply_gradients(zip(gradients, [weights['hidden'], weights['output'], biases['hidden'], biases['output']]))
if epoch % 1000 == 0:
print("Epoch:", epoch, "loss:", loss.numpy())prediction = forward_propagation(np.array([[0, 1]]))
print(prediction.numpy())import tensorflow as tf
from tensorflow import keras
import numpy as npX = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
y = np.array([[0], [1], [1], [0]])model = keras.Sequential([
keras.layers.Dense(2, input_dim=2, activation='sigmoid'),
keras.layers.Dense(1, activation='sigmoid')
])model.compile(loss='mean_squared_error', optimizer='sgd')model.fit(X, y, epochs=10000, verbose=0)prediction = model.predict(np.array([[0, 1]]))
print(prediction)Sequential de Keras pour définir notre modèle, qui est constitué de deux couches denses avec une fonction d'activation sigmoïde. Nous avons ensuite compilé le modèle en utilisant une fonction de perte de moyenne des erreurs au carré (MSE) et un optimiseur stochastique de descente de gradient (SGD).