nn.Sequential与tensorflow的Sequential对比

devtools/2024/9/23 10:29:49/

nn.Sequential() 是 PyTorch 深度学习框架中的一个类,用于按顺序容器化模块。nn.Sequential 是一个有序的容器,它包含多个网络层,数据会按照在构造函数中传入顺序依次通过每个层。在 nn.Sequential 中,不需要定义 forward 方法,因为当你调用它时,会按照顺序调用每个子模块。

python">import torch  
import torch.nn as nn  # 创建一个简单的神经网络  
model = nn.Sequential(  nn.Linear(784, 128),  # 输入层到隐藏层,784个输入节点,128个输出节点  nn.ReLU(),           # 激活函数  nn.Linear(128, 10)   # 隐藏层到输出层,128个输入节点,10个输出节点  
)  # 创建一个随机的输入张量  
input_tensor = torch.randn(1, 784)  # 将输入张量传递给模型  
output_tensor = model(input_tensor)  print(output_tensor.size())  # 输出应为 torch.Size([1, 10])
python">import tensorflow as tf  
from tensorflow.keras.datasets import mnist  
from tensorflow.keras.models import Sequential  
from tensorflow.keras.layers import Dense, Flatten  
from tensorflow.keras.losses import SparseCategoricalCrossentropy  
from tensorflow.keras.optimizers import Adam  # 加载MNIST数据集  
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()  # 归一化像素值到0-1之间  
train_images = train_images / 255.0  
test_images = test_images / 255.0  # 将图像的形状展平,以便可以输入到神经网络中  
train_images = train_images[..., tf.newaxis]  
test_images = test_images[..., tf.newaxis]  # 创建Sequential模型  
model = Sequential([  Flatten(input_shape=(28, 28, 1)),  # 将28x28像素的图像展平为一维张量  Dense(128, activation='relu'),      # 全连接层,128个神经元,使用ReLU激活函数  Dense(10)                           # 输出层,10个神经元(对应10个数字类别)  
])  # 编译模型  
model.compile(optimizer=Adam(),  loss=SparseCategoricalCrossentropy(from_logits=True),  metrics=['accuracy'])  # 训练模型  
model.fit(train_images, train_labels, epochs=5)  # 评估模型  
test_loss, test_acc = model.evaluate(test_images,  test_labels, verbose=2)  print('\nTest accuracy:', test_acc)

self.conv 通常指的是类的一个属性,这个属性通常是一个卷积层(Convolutional Layer)

python">import torch  
import torch.nn as nn  
import torch.nn.functional as F  class SimpleCNN(nn.Module):  def __init__(self):  super(SimpleCNN, self).__init__()  # 定义一个卷积层,输入通道数为3(例如RGB图像),输出通道数为16,卷积核大小为3x3  self.conv = nn.Conv2d(3, 16, kernel_size=3, stride=1, padding=1)  # 可以添加其他层...  def forward(self, x):  # 在前向传播中使用卷积层  x = self.conv(x)  # 可以添加其他操作,例如激活函数、池化等...  x = F.relu(x)  # 返回处理后的输出  return x  # 创建模型实例  
model = SimpleCNN()  # 假设我们有一个输入张量 input_tensor,其形状为 [batch_size, 3, height, width]  
# 我们可以将其传递给模型进行前向传播  
output_tensor = model(input_tensor)

http://www.ppmy.cn/devtools/13617.html

相关文章

Maven:配置与使用指南1

https://mvnrepository.com Maven 1.maven简介 不同模块的jar包以及同时设计的功能的微小变化版本; 真实的开发环境:我们将我们的源代码在服务器上重新编译重新打包,工程升级维护过程繁琐 1.Maven是一个项目管理工具,将项目开…

基于Python的图书借阅管理系统,附源码

博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#x1f3…

wordpress建网站主题案例推荐

wordpress企业网站主题案例 https://www.mymoban.com/wordpress/ wordpress公司官网主题案例 https://www.wowsoho.com/jianzhan wordpress外贸主题案例 https://www.wpniu.com/moban

【ensp】网关冗余vrrp实验

基础文字知识复习时,添加,下文仅拓扑以及核心配置以及结果分析 冗余路由器 核心代码: int g0/0/0 [R1-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 192.168.10.1 ###设置虚拟ip [R1-GigabitEthernet0/0/0]vrrp vrid 1 priority 120 …

【Spring Boot】掌握Spring Boot:深入解析配置文件的使用与管理

💓 博客主页:从零开始的-CodeNinja之路 ⏩ 收录文章:【Spring Boot】掌握Spring Boot:深入解析配置文件的使用与管理 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 Spring Boot 配置文件一. 配置文…

Linux下redis的安装过程与配置详细教程【5.0.5为例子】

Linux下redis的安装过程与配置方法【5.0.5为例子】 下载redis redis下载地址 https://download.redis.io/releases/ 也可以自行去官网下载 提示:此处安装的为redis-5.05的版本 上传redis安装包(我的安装目录为/data/tool/redis-5.0.5) 创建目录/data/local/tool并…

Redis篇:缓存击穿及解决方案

1.何为缓存击穿 缓存击穿问题也叫热点Key问题,就是一个被高并发访问并且缓存重建业务较复杂的key突然失效了(有可能是正好过期了),无数的请求访问会在瞬间给数据库带来巨大的冲击。 常见的解决方案有两种: 互斥锁 逻…

聚观早报 | 理想L6正式发布;Meta发布Llama 3

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 4月20日消息 理想L6正式发布 Meta发布Llama 3 比亚迪秦L内饰曝光 小米14 Ultra推送新版澎湃OS OPPO A3 Pro正式…