搭建神经网络在Python中通常需要使用深度学习框架,如TensorFlow、Keras或PyTorch。以下是使用这些框架搭建神经网络的基本步骤:
使用TensorFlow搭建神经网络
安装TensorFlow:
pip install tensorflow
编写模型:
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
创建模型
model = Sequential()
添加输入层和第一个隐藏层
model.add(Dense(64, input_dim=784, activation='relu'))
添加第二个隐藏层
model.add(Dense(64, activation='relu'))
添加输出层
model.add(Dense(10, activation='softmax'))
编译模型
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
准备数据:
from tensorflow.keras.datasets import mnist
加载数据
(x_train, y_train), (x_test, y_test) = mnist.load_data()
数据预处理
x_train = x_train.reshape(60000, 784)
x_test = x_test.reshape(10000, 784)
x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
x_train /= 255
x_test /= 255
将标签转换为one-hot编码
y_train = tf.keras.utils.to_categorical(y_train, 10)
y_test = tf.keras.utils.to_categorical(y_test, 10)
训练模型:
训练模型
model.fit(x_train, y_train, epochs=5, batch_size=32, validation_data=(x_test, y_test))
评估模型:
评估模型
score = model.evaluate(x_test, y_test, verbose=0)
print('Test loss:', score)
print('Test accuracy:', score)
使用Keras搭建神经网络
Keras是TensorFlow的高级API,使用起来更简单。
安装Keras(TensorFlow 2.x自带Keras):
pip install tensorflow
编写模型:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
创建模型
model = Sequential()
添加输入层和第一个隐藏层
model.add(Dense(64, input_dim=784, activation='relu'))
添加第二个隐藏层
model.add(Dense(64, activation='relu'))
添加输出层
model.add(Dense(10, activation='softmax'))
编译模型
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
准备数据:
from tensorflow.keras.datasets import mnist
加载数据
(x_train, y_train), (x_test, y_test) = mnist.load_data()
数据预处理
x_train = x_train.reshape(60000, 784)
x_test = x_test.reshape(10000, 784)
x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
x_train /= 255
x_test /= 255
将标签转换为one-hot编码
y_train = tf.keras.utils.to_categorical(y_train, 10)
y_test = tf.keras.utils.to_categorical(y_test, 10)
训练模型:
训练模型
model.fit(x_train, y_train, epochs=5, batch_size=32, validation_data=(x_test, y_test))
评估模型: