1 Star 0 Fork 0

郭鸿凯/AI_DataProcess_Study

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
MLP_normal.py 1.14 KB
一键复制 编辑 原始数据 按行查看 历史
郭鸿凯 提交于 2023-04-12 11:14 . good
import torch
from torch import nn
from d2l import torch as d2l
import matplotlib.pyplot as plt
batch_size = 256
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)
# 实现一个具有但隐藏层的多层感知机,它包含256个隐藏单元
num_inputs, num_outputs, num_hiddens = 784, 10, 256
W1 = nn.Parameter(torch.randn(num_inputs, num_hiddens, requires_grad=True))
b1 = nn.Parameter(torch.zeros(num_hiddens, requires_grad=True))
W2 = nn.Parameter(torch.randn(num_hiddens, num_outputs, requires_grad=True))
b2 = nn.Parameter(torch.zeros(num_outputs, requires_grad=True))
params = [W1, b1, W2, b2]
# 实现ReLU激活函数
def relu(X):
"""
ReLU函数
:param X:一个tensor
:return: 如果对应的X值小于0,返回0,反之返回X的值
"""
a = torch.zeros_like(X)
return torch.max(X, a)
# 实现模型
def net(X):
X = X.reshape((-1, num_inputs))
H = relu(X @ W1 + b1)
return (H @ W2 + b2)
loss = nn.CrossEntropyLoss()
# 多层感知机训练
num_epochs, lr = 10, 0.1
updater = torch.optim.SGD(params, lr=lr)
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, updater)
plt.show()
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/guo-honkai/AI_DataProcess_Study.git
git@gitee.com:guo-honkai/AI_DataProcess_Study.git
guo-honkai
AI_DataProcess_Study
AI_DataProcess_Study
master

搜索帮助