写一段paddlepaddle的代码
时间: 2023-12-01 21:12:40 浏览: 27
import paddle
# 创建一个全连接的神经网络
model = paddle.nn.Sequential(
paddle.nn.Linear(784, 256),
paddle.nn.ReLU(),
paddle.nn.Linear(256, 128),
paddle.nn.ReLU(),
paddle.nn.Linear(128, 10)
)
# 定义损失函数和优化器
loss_fn = paddle.nn.CrossEntropyLoss()
optimizer = paddle.optimizer.Adam(learning_rate=0.001, parameters=model.parameters())
# 加载数据集
train_dataset = paddle.vision.datasets.MNIST(mode='train')
test_dataset = paddle.vision.datasets.MNIST(mode='test')
# 定义数据读取器
train_loader = paddle.io.DataLoader(train_dataset, batch_size=64, shuffle=True)
test_loader = paddle.io.DataLoader(test_dataset, batch_size=64, shuffle=False)
# 训练模型
epochs = 10
for epoch in range(epochs):
for batch_id, data in enumerate(train_loader):
x, y = data
y_hat = model(x)
loss = loss_fn(y_hat, y)
loss.backward()
optimizer.step()
optimizer.clear_grad()
if batch_id % 100 == 0:
print('epoch: {}, batch_id: {}, loss is: {}'.format(epoch, batch_id, loss.numpy()))
# 评估模型
model.eval()
total_correct = 0
for data in test_loader:
x, y = data
y_hat = model(x)
pred = paddle.argmax(y_hat, axis=1)
total_correct += paddle.sum(pred == y).numpy()
print('Test Accuracy: {}'.format(total_correct / len(test_dataset)))