简述神经网络的基本概念,使用Python和深度学习框架实现一个简单的全连接神经网络,并对手写数字数据集minist进行分类或回归任务,输出测试精度。
时间: 2024-12-23 14:12:39 浏览: 15
神经网络是一种受生物神经元系统启发的人工智能模型,它由大量的节点(神经元)和层级结构组成,通过学习输入数据之间的复杂关系来进行预测或决策。每个神经元接受输入信号并通过加权求和和激活函数处理,形成对下一层的输出。
在Python中,我们可以使用深度学习库如TensorFlow或PyTorch来构建神经网络。以Keras库为例,这里是一个简单的全连接神经网络(Dense Neural Network)的实现:
```python
import tensorflow as tf
from tensorflow.keras import layers
# 定义简单全连接网络模型
model = tf.keras.models.Sequential([
layers.Dense(64, activation='relu', input_shape=(784,)), # 输入层到隐藏层
layers.Dense(64, activation='relu'), # 隐藏层到隐藏层
layers.Dense(10, activation='softmax') # 输出层,用于多分类,10表示手写数字有10种可能
])
# 编译模型,设置损失函数、优化器和评价指标
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# 加载MNIST数据集
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
# 数据预处理:归一化并转化为二维数组
x_train = x_train.reshape(-1, 784)
x_test = x_test.reshape(-1, 784)
# 训练模型
model.fit(x_train, y_train, epochs=10)
# 测试模型
test_loss, test_acc = model.evaluate(x_test, y_test)
print(f"Test accuracy: {test_acc}")
```
这个代码片段首先创建了一个包含两层隐层的神经网络,然后使用MNIST数据集对其进行训练,最后计算并在控制台上打印测试集的准确率。
阅读全文