李沐《动手学深度学习》课程笔记:10 多层感知机 + 代码实现

news/2024/11/22 14:31:39/

目录

10 多层感知机 + 代码实现

1.感知机

​​​2.多层感知机

​​​3.多层感知机的从零开始实现

4.多层感知机的简洁实现


10 多层感知机 + 代码实现

1.感知机

2.多层感知机

3.多层感知机的从零开始实现

# 多层感知机的从零开始实现
import torch
from torch import nn
from d2l import torch as d2l
import os
import matplotlib.pyplot as plt
os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"batch_size = 256
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)# 实现一个具有单隐藏层的多层感知机,它包含256个隐藏单元
num_inputs, num_outputs, num_hiddens = 784, 10, 256W1 = nn.Parameter(torch.randn(num_inputs, num_hiddens, requires_grad=True) * 0.01)
b1 = nn.Parameter(torch.zeros(num_hiddens, requires_grad=True))
W2 = nn.Parameter(torch.randn(num_hiddens, num_outputs, requires_grad=True) * 0.01)
b2 = nn.Parameter(torch.zeros(num_outputs, requires_grad=True))params = [W1, b1, W2, b2]# 实现ReLU激活函数
def relu(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 + b2loss = nn.CrossEntropyLoss()# 多层感知机的训练过程与softmax回归的训练过程完全相同
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()
<Figure size 350x250 with 1 Axes>
<Figure size 350x250 with 1 Axes>
<Figure size 350x250 with 1 Axes>
<Figure size 350x250 with 1 Axes>
<Figure size 350x250 with 1 Axes>
<Figure size 350x250 with 1 Axes>
<Figure size 350x250 with 1 Axes>
<Figure size 350x250 with 1 Axes>
<Figure size 350x250 with 1 Axes>
<Figure size 350x250 with 1 Axes>

4.多层感知机的简洁实现

# 我们可以通过高级API更简洁地实现多层感知机
import torch
from torch import nn
from d2l import torch as d2l
import os
import matplotlib.pyplot as plt
os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"# 与softmax回归的简洁实现相比,唯一的区别是我们添加了2个全连接层(之前我们只添加了1个全连接层)。第一层是隐藏层,它包含256个隐藏单元,并使用了ReLU激活函数。第二层是输出层。
net = nn.Sequential(nn.Flatten(),nn.Linear(784, 256),nn.ReLU(),nn.Linear(256, 10))def init_weights(m):if type(m) == nn.Linear:nn.init.normal_(m.weight, std=0.01)net.apply(init_weights)# 训练过程的实现与我们实现softmax回归时完全相同,这种模块化设计使我们能够将和模型架构有关的内容独立出来。
batch_size, lr, num_epochs = 256, 0.1, 10
loss = nn.CrossEntropyLoss()
trainer = torch.optim.SGD(net.parameters(), lr=lr)train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, trainer)plt.show()
<Figure size 350x250 with 1 Axes>
<Figure size 350x250 with 1 Axes>
<Figure size 350x250 with 1 Axes>
<Figure size 350x250 with 1 Axes>
<Figure size 350x250 with 1 Axes>
<Figure size 350x250 with 1 Axes>
<Figure size 350x250 with 1 Axes>
<Figure size 350x250 with 1 Axes>
<Figure size 350x250 with 1 Axes>
<Figure size 350x250 with 1 Axes>


http://www.ppmy.cn/news/186601.html

相关文章

李沐《动手学深度学习》课程笔记:11 模型选择 + 过拟合和欠拟合

目录 11 模型选择 过拟合和欠拟合 1.模型选择 2.过拟合和欠拟合 ​​​​​3.代码 11 模型选择 过拟合和欠拟合 1.模型选择 2.过拟合和欠拟合 3.代码 # 模型选择、欠拟合和过拟合 # 通过多项式拟合来交互地探索这些概念 import math import numpy as np import torch…

华为matebook鸿蒙,16寸专业大屏+满血Zen3!华为MateBook 16评测:鸿蒙加持 平板变身新外设...

一、前言&#xff1a;屏幕更大 性能更强 这次还有更多智慧化新体验的“惊喜” 今年5月&#xff0c;华为笔记本迎来了一位新成员——华为MateBook 16&#xff0c;在华为MateBook系列产品中&#xff0c;首次采用了16寸全面屏的设计&#xff0c;不仅有更大的屏幕尺寸&#xff0c;其…

大屏幕的展示 借助的华为的数据

zhangti的作业 (huaweicloud.com) Python脚本模拟数据&#xff0c;由FlumeKafka完成数据采集&#xff0c;DLI中的Flink作业进行数据分析&#xff0c;分析结果存入RDS中&#xff0c;最后DLV读取RDS中的数据通过大屏完成可视化。

android 沉浸式 华为,华为沉浸式智真

全球首款MAX PRESENCE 华为智真&#xff0c;适用于大型会议室&#xff0c;可实现超宽幅全景显示&#xff0c;畅享影院级会议体验&#xff0c;可与视讯、监控、数据信息系统多业务融合&#xff0c;纵观全局&#xff0c;智慧决策。 l 全球首款MAX PRESENCE 华为智真&#xff0c;超…

华为智慧屏怎么使用

在连接智慧屏后长按电源键开机&#xff0c;配对遥控器&#xff1b;使用手机扫描或者手动输入登录到华为账号&#xff1b;进入智慧屏主界面后&#xff0c;使用遥控器触摸板或者语音唤起YOYO选择栏目&#xff1b;手机与智慧屏连接到同一个WiFi之后可以实现投屏&#xff1b;在更新…

华为鸿蒙大屏电视,大屏手机还是智能电视?华为用鸿蒙系统增智慧

[PConline 资讯]7月26日&#xff0c;华为手机官方微博表示&#xff1a;【华为智慧屏 让智慧更大】华为将持续推动产业升级&#xff0c;实现生态共赢&#xff0c;与业界广泛合作&#xff0c;开放生态赋能产业&#xff0c;推动标准化实现产业贡献&#xff1b;2019年9月&#xff0…

华为鸿蒙系统大屏,华为将推出鸿蒙2.0系统 打通手机、大屏电视等全平台

华为将推出鸿蒙2.0系统 打通手机、大屏电视等全平台 来源&#xff1a;快科技 2020-07-08 15:38:05 按照惯例&#xff0c;华为9月份的秋季发布会上将会正式推出Mate 40系列手机&#xff0c;除了5nm麒麟处理器之外&#xff0c;Mate 40还会使用新的EMUI 11系统。与此同时&#xff…

华为计算机变色,华为新机子大换血,大屏而且还能变色!

华为几乎每一段时间都要来一次大换血。今年他出来的新机子真是特别多&#xff0c;就像是母鸡下蛋一样。但是这些手机没有什么特别大的变化&#xff0c;从外表上来看&#xff0c;也就是可能屏幕会有一点不一样&#xff0c;然后这些小物件的摆放位置也可能会不一样。因为华为他在…