ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

3.多层感知机的简洁实现-代码详解

2021-09-03 22:00:25  阅读:213  来源: 互联网

标签:nn torch 多层 感知机 详解 d2l 维度 net 256


这里写自定义目录标题

代码

import torch  # 导入 torch 模块
from torch import nn  # 导入nn模块,很重要
from d2l import torch as d2l # 为了后续画图,报错请运行此代码(!pip install -U d2l)

net = nn.Sequential(
		   nn.Flatten(),# 展平一个连续范围的维度,输出类型为Tensor
		   nn.Linear(784,256), # 全连接层,相当于 Y = aX + b ;输入 维度 784 输出 维度 256
		   nn.ReLU(), # 激活函数 ReLU
		   nn.Linear(256,10))# 全连接层,相当于 Y = aX + b ;输入 维度 256 输出 维度 10

def init_weights(m): # 初始化 每个全连接层的权重 weight
	if type(m) == nn.linear: # 判断是否为连接层
		nn.init.normal_(m.weight,std=0.01)# 从正态分布N~(0,0.01)中随机抽取填充 m.weight

net.apply(net.weight)	# 网络层 初始化 网络权重

batch_size,lr,num_epochs = 256,0.1,10 # 设置大小,学习率,迭代次数

loss = nn.CrossEntropyLoss() # 设置 损失函数为交叉熵损失函数

trainer = torch.optim.SGD(net.parameters(),lr=lr)# 实例化优化器->随机梯度下降SGD

train_iter,test_iter = d2l.load_data_fishion_mnist(batch_size) # 读取数据并将图片转换成数据集dataloader

d2l.train_ch3(net,train_iter,test_iter,loss,num_epochs,trainer) # 训练数据,并可视化数据

2. 结果

在这里插入图片描述

3. 模块备注

3.1 nn.Flatten()

3.2 nn.Linear()

3.3 nn.ReLU()

3.4 nn.init.normal_()

标签:nn,torch,多层,感知机,详解,d2l,维度,net,256
来源: https://blog.csdn.net/scar2016/article/details/120090628

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有