神经网络 —— 搭建神经网络(实例)

一、搭建神经网络

本案例

搭建神经网络,这里是一个简单的全连接神经网络

这里的全连接神经网络组成:

隐藏层1:nn.Linear(3,3),权重初始化采用标准化的xavier初始化 激活函数使用sigmoid

隐藏层2:nn.Linear(3,2),权重初始化采用标准化的He初始化 激活函数采用relu

输出层: nn.Linear(2,2),采用softmax做数据归一化,权重初始化采用标准化的xavier初始化

二、实现

自定义模型类,搭建自己的神经网络

1.继承 nn.Module 基础模型

python 复制代码
class MyModel(nn.Module)

2.定义__init__方法,定义网络层

python 复制代码
def __init__(self):
    super().__init__()
    self.layer1 = nn.Linear(3, 3)
    self.layer2 = nn.Linear(3, 2)
    self.layer3 = nn.Linear(2, 2)

    # 参数 初始化  (一般不需要)
    # nn.init.xavier_normal_(self.layer1.weight)
    # nn.init.zeros_(self.layer1.bias)
    #
    # nn.init.kaiming_normal_(self.layer2.weight)
    # nn.init.zeros_(self.layer2.bias)
    #
    # nn.init.xavier_normal_(self.layer3.weight)
    # nn.init.zeros_(self.layer3.bias)

3.重新forward方法,实现前向传播 (基类 方法)

python 复制代码
def forward(self, x):
    # x:  2D:(batch_size, 3)

    x = torch.sigmoid(self.layer1(x))          # 隐藏层1:Sigmoid激活
    x = torch.relu(self.layer2(x))             # 隐藏层2:ReLU激活
    x = torch.softmax(self.layer3(x), dim=-1)  # 输出层:Softmax激活
    '''
    输出层用 Softmax (dim=-1)
    dim=-1 = 对 ** 最后一个维度(特征维度)** 做归一化
    Softmax 输出总和 = 1,代表2 个类别的预测概率分布
    '''

    #输出2个 
    print(x)  
    return x

主函数入口

python 复制代码
if __name__ == "__main__":
    model = MyModel()
    # model = model.to(device)
    # 查看模型的参数数量
    summary(model, input_size=(3,), device="cpu")

终端打印:

print(x)

因为最后一个用softmax,结果集 是概率分布,累加和为1

即下图. 0.3285 + 0.6715 = 1

  • -1 代表 batch_size(样本数量),任意大小都可以
  • 后面数字是特征维度,完全对应每层输出维度
  1. 输入:(batch, 3)
  2. layer1 输出:(batch, 3)
  3. layer2 输出:(batch, 2)
  4. layer3 输出:(batch, 2)

总参数量求和

12+8+6=26

++全连接层输入最后一维 = 第一层 in_features++

相关推荐
三声三视1 分钟前
一个卡片入场动画我返工 4 次:tri-lottie 规格单落地到 ArkTS 的踩坑记录
人工智能·ai·skillhub·tri-skills·tri-lottie
南京兴帝文化传媒有限公司3 分钟前
AI大模型如何抓取和推荐无锡本地商户?GEO技术链路与POI权重算法拆解
大数据·人工智能·生活·geo 优化·ai搜索获客·无锡geo优化·长三角geo优化
是枚小菜鸡儿吖5 分钟前
Windows 和 iPhone 怎么互传文件?用 PairDrop 搭一个自己的浏览器传输入口
服务器·人工智能·大模型
小刘快学习6 分钟前
高并发下的优雅降级:企业AI网关的流量整形与过载保护
人工智能
知几蜗牛8 分钟前
语义相近却总找错资料?从Embedding看懂向量检索
人工智能
知几蜗牛8 分钟前
AI算力开始听电网指挥:比换GPU更现实的增产方法
人工智能
智慧医养结合软件开源8 分钟前
【源码交付】智慧养老系统 · Java + Vue3-技术架构
大数据·人工智能·信息可视化·云计算
知几蜗牛9 分钟前
票据抽取不一定要上最大模型:先看版式是否真的变化
人工智能
QXWZ_IA9 分钟前
化工园区安全风险智能化管控平台怎么建?千寻位置对标路径
人工智能·科技·安全
湘美书院--湘美谈教育9 分钟前
湘美书院夜谈录:AI时代的体验感与选择价值观念
人工智能·深度学习·学习·安全·生活