import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
# Create an 8x3x8 neural network
model = Sequential([
Dense(3, activation='relu', input_shape=(8,)), # Hidden layer: 3 neurons, input: 8 features
Dense(8, activation='sigmoid') # Output layer: 8 neurons
])
# Compile the model
model.compile(optimizer='adam',
loss='mse',
metrics=['accuracy'])
# Display the model summary
model.summary()
Loading...
import numpy as np
# 创建训练数据 - 每个输入是一个8维的one-hot向量
X_train = np.array([
[1, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 0, 0, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 0],
[0, 0, 0, 0, 0, 0, 0, 1]
])
# 输出数据与输入相同(恒等函数)
y_train = X_train.copy()
# 训练模型
history = model.fit(X_train, y_train, epochs=5000, verbose=0)
# 评估模型性能
loss, accuracy = model.evaluate(X_train, y_train, verbose=0)
print(f"最终损失:{loss:.4f}, 准确率:{accuracy:.4f}")
# 测试模型
predictions = model.predict(X_train)
print("\n预测结果:")
for i in range(len(X_train)):
print(f"输入:{X_train[i]} -> 预测输出:{predictions[i]},期望: {y_train[i]}")
print("-" * 50)
最终损失:0.0071, 准确率:1.0000
1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 51ms/step
预测结果:
输入:[1 0 0 0 0 0 0 0] -> 预测输出:[9.2577147e-01 5.7714365e-02 7.4742109e-02 1.0296753e-04 8.9346786e-10
8.2633733e-07 2.2613886e-03 1.0556280e-08],期望: [1 0 0 0 0 0 0 0]
--------------------------------------------------
输入:[0 1 0 0 0 0 0 0] -> 预测输出:[3.7367728e-02 8.9660180e-01 2.0267822e-05 1.5253406e-09 1.5430405e-13
2.3795031e-02 9.3219034e-02 3.1131356e-07],期望: [0 1 0 0 0 0 0 0]
--------------------------------------------------
输入:[0 0 1 0 0 0 0 0] -> 预测输出:[4.5491610e-02 5.3926635e-07 8.7110466e-01 9.5668957e-02 3.8766715e-04
3.2805449e-11 4.5333408e-07 5.1628692e-08],期望: [0 0 1 0 0 0 0 0]
--------------------------------------------------
输入:[0 0 0 1 0 0 0 0] -> 预测输出:[0.06740076 0.00540375 0.22860244 0.7322235 0.13317005 0.00154369
0.11327291 0.06145734],期望: [0 0 0 1 0 0 0 0]
--------------------------------------------------
输入:[0 0 0 0 1 0 0 0] -> 预测输出:[7.1940246e-07 7.2183674e-08 5.0002713e-02 6.4332657e-02 9.1740215e-01
8.7818398e-07 6.0648845e-06 7.4361175e-02],期望: [0 0 0 0 1 0 0 0]
--------------------------------------------------
输入:[0 0 0 0 0 1 0 0] -> 预测输出:[1.9005135e-07 4.8370376e-02 3.9104600e-07 1.1594949e-09 9.1642702e-09
9.1615963e-01 5.1663473e-02 6.5725654e-02],期望: [0 0 0 0 0 1 0 0]
--------------------------------------------------
输入:[0 0 0 0 0 0 1 0] -> 预测输出:[0.0915658 0.19535722 0.02338143 0.08358394 0.00204446 0.13150252
0.71407956 0.10572055],期望: [0 0 0 0 0 0 1 0]
--------------------------------------------------
输入:[0 0 0 0 0 0 0 1] -> 预测输出:[9.2947386e-07 2.2997831e-04 3.7641299e-04 4.9418467e-04 4.2626675e-02
8.0010280e-02 1.1371913e-02 8.6001396e-01],期望: [0 0 0 0 0 0 0 1]
--------------------------------------------------