paddle模型定义

python 复制代码
import paddle
import paddle.nn as nn
# #方法1、内置的模型
# print('飞桨框架内置模型:', paddle.vision.models.__all__)
# # 模型组网并初始化网络
# lenet = paddle.vision.models.LeNet(num_classes=10)
# print(type(lenet))
# # 可视化模型组网结构和参数
# paddle.summary(lenet,(1, 1, 28, 28))


##方法2、paddle.nn.Sequential
# from paddle import nn
# # 使用 paddle.nn.Sequential 构建 LeNet 模型
# lenet_Sequential = nn.Sequential(
#     nn.Conv2D(1, 6, 3, stride=1, padding=1),
#     nn.ReLU(),
#     nn.MaxPool2D(2, 2),
#     nn.Conv2D(6, 16, 5, stride=1, padding=0),
#     nn.ReLU(),
#     nn.MaxPool2D(2, 2),
#     nn.Flatten(),
#     nn.Linear(400, 120),
#     nn.Linear(120, 84),
#     nn.Linear(84, 10)
# )
# print(type(lenet_Sequential))
# # 可视化模型组网结构和参数
# paddle.summary(lenet_Sequential,(1, 1, 28, 28))

##方法3
# 使用 Subclass 方式构建 LeNet 模型
class LeNet(nn.Layer):
    def __init__(self, num_classes=10):
        super().__init__()
        self.num_classes = num_classes
        # 构建 features 子网,用于对输入图像进行特征提取
        self.features = nn.Sequential(
            nn.Conv2D(
                1, 6, 3, stride=1, padding=1),
            nn.ReLU(),
            nn.MaxPool2D(2, 2),
            nn.Conv2D(
                6, 16, 5, stride=1, padding=0),
            nn.ReLU(),
            nn.MaxPool2D(2, 2))
        # 构建 linear 子网,用于分类
        if num_classes > 0:
            self.linear = nn.Sequential(
                nn.Linear(400, 120),
                nn.Linear(120, 84),
                nn.Linear(84, num_classes)
            )
    # 执行前向计算
    def forward(self, inputs):
        x = self.features(inputs)

        if self.num_classes > 0:
            x = paddle.flatten(x, 1)
            x = self.linear(x)
        return x
lenet_SubClass = LeNet()
print(type(lenet_SubClass))
# 可视化模型组网结构和参数
params_info = paddle.summary(lenet_SubClass,(1, 1, 28, 28))
print(params_info)

#打印模型参数
for name,param in lenet_SubClass.named_parameters():
    print(f"Layer: {name} | Size: {param.shape}")
python 复制代码
import paddle

x=paddle.uniform((2,3,8,8),dtype='float32')
print(x.shape)
conv=paddle.nn.Conv2D(3,6,(3,3),2,1)
y=conv(x)
print('卷积之后的结果',y.shape)
pool=paddle.nn.MaxPool2D(3,2,padding=1)
y=pool(x)
print('池化后的结果',y.shape)
linear=paddle.nn.Linear(6,4)
x=paddle.rand((2,6),dtype='float32')
print(x.shape)
y=linear(x)
print('线性层之后的结果',y.shape)
# for _ in dir(paddle.nn):
#     print(_)
相关推荐
卷无止境21 分钟前
独立开发者的"富矿地带":哪些垂直领域值得你押注一辈子?
后端·python
Java后端的Ai之路27 分钟前
Python进阶探索29_eval内置函数
开发语言·python·探索·eval·内置函数
计算机毕业编程指导师28 分钟前
计算机毕设选题推荐:基于Hadoop与Spark的Steam游戏数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·steam游戏
计算机毕业编程指导师33 分钟前
【计算机毕设选题推荐】基于Hadoop+Spark的白鹿抖音评论大数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·抖音评论
EchoMind-Henry38 分钟前
Muse外设两条接入路,成本该怎么算
人工智能·ai
Zootopia62644 分钟前
飞行力学知识梳理1|飞行性能与稳定性
人工智能·python·算法·机器学习·无人机·学习方法·信息与通信
Y3815326621 小时前
搜索 API 延迟优化:并发数、超时与超时的真实代价
python·搜索引擎
wangqiaowq1 小时前
PII 脱敏指的是:把个人身份信息(PII)中能识别到具体个人的敏感部分,用替换、遮蔽、变形等方式处理掉,使得数据在保留可用性的同时,不再直接暴露个人身份。
python
阿部多瑞 ABU2 小时前
空能指的再生产:一个符号政治经济学的分析框架
人工智能·ai写作
风早爽太2 小时前
Python 学习笔记:SQLModel 使用外键关联查询数据
python·fastapi·sqlmodel