当前位置: 首页 > news >正文

深度学习(3):全连接神经网络构建

前馈神经网络(Feedforward Neural Network,FNN)是一种最基本的神经网络结构,其特点是信息从输入层经过隐藏层单向传递到输出层,没有反馈或循环连接

全连接神经网络(Fully Connected Neural Network,FCNN)是前馈神经网络的一种,每一层的神经元与上一层的所有神经元全连接,常用于图像分类、文本分类等任务。

一、构建连接神经网络

 (1)自定义网络类继承nn.Module

 (2)实现__init__方法,定义线性层组件

 (3)实现forward方法,实现前向传播

import torch
from torch import nnclass MyNet(nn.Module):#继承父类nn.Moduledef __init__(self,input_featrues,out_features):super().__init__()self.fc1 = nn.Linear(input_features, 64)self.fc2 = nn.Linear(64, 32)self.fc3 = nn.Linear(32, output_features)def forward(self, x):x = self.fc1(x)x = self.fc2(x)x = self.fc3(x)return x
model = MyNet(10, 1)
print(model)
"""
MyNet((fc1): Linear(in_features=10, out_features=64, bias=True)(fc2): Linear(in_features=64, out_features=32, bias=True)(fc3): Linear(in_features=32, out_features=1, bias=True)
)
"""

1、单层网络直接使用Linear构建

model = nn.Linear(10, 1)
print(model)
#Linear(in_features=10, out_features=1, bias=True)

2、Sequential顺序容器,默认从上到下一次加载实现forward

model = nn.Sequential(nn.Linear(10, 64),nn.Linear(64, 32),nn.Linear(32, 10),
)
print(model)
"""
Sequential((0): Linear(in_features=10, out_features=64, bias=True)(1): Linear(in_features=64, out_features=32, bias=True)(2): Linear(in_features=32, out_features=10, bias=True)
)
"""

二、全连接基本组件认知

import torch
from torch import nn,optimdef test01():#单层网络model = nn.Linear(128,10)#定义损失函数criterion = nn.MSELoss()#定义优化器opt = optim.SGD(model.parameters(),lr=0.01)# 数据准备x = torch.randn(1000, 128)y = torch.randn(1000, 10)for epoch in range(10):#得到预测值y_pred = model(x)#计算lossloss = criterion(y_pred,y)# 梯度清零opt.zero_grad()# 反向传播,计算梯度loss.backward()# 模型参数更新opt.step()print(f'epoch:{epoch}, loss:{loss.item()}')
"""
epoch:0, loss:1.3215197324752808
epoch:1, loss:1.3195496797561646
epoch:2, loss:1.3175891637802124
epoch:3, loss:1.3156381845474243
epoch:4, loss:1.3136966228485107
epoch:5, loss:1.3117645978927612
epoch:6, loss:1.3098417520523071
epoch:7, loss:1.3079285621643066
epoch:8, loss:1.306024432182312
epoch:9, loss:1.304129719734192
"""if __name__ == '__main__':test01()

http://www.dtcms.com/a/328932.html

相关文章:

  • mysql的快照读与当前读的区别
  • 11G RAC数据文件创建到本地如何处理
  • 【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day3
  • 《算法导论》第 22 章 - 基本的图算法
  • [AXI5]AXI协议中的Scalar atomic和Vector atomic有什么区别?
  • 【算法】位运算经典例题
  • BM25:概率检索框架下的经典相关性评分算法
  • ADB 无线调试连接(Windows + WSL 环境)
  • 如何在VS里使用MySQL提供的mysql Connector/C++的debug版本
  • C++ 优选算法 力扣 209.长度最小的子数组 滑动窗口 (同向双指针)优化 每日一题 详细题解
  • Java Spring框架最新版本及发展史详解(截至2025年8月)-优雅草卓伊凡
  • graphql接口快速使用postman添加接口以及输入返回参数
  • 超越相似名称:Elasticsearch semantic text 如何在简洁、高效、集成方面超越 OpenSearch semantic 字段
  • 5.语句几个分类
  • 自建知识库,向量数据库 体系建设(四)之文本向量与相似度计算——仙盟创梦IDE
  • 药房智能盘库系统的Python编程分析与实现—基于计算机视觉与时间序列预测的智能库存管理方案
  • Ubuntu下快速安装Tomcat教程
  • ubuntu24.04安装 bpftool 以及生成 vmlinux.h 文件
  • 4 种方法将联系人从 iPhone 传输到 realme
  • java中在多线程的情况下安全的修改list
  • 【C++ STL】list详解和模拟
  • 冒泡排序专栏
  • Java研学-RabbitMQ(七)
  • LeetCode_二叉树
  • Python 中使用多进程编程的“三两”问题
  • 如何记录日常笔记?
  • AAT Bioquest 细胞凋亡检测方法集锦
  • 数组和矩阵的核心关系及关键区别
  • C# xml UI格式化字符串
  • Java -- Vector底层结构-- ArrayList和LinkedList的比较